ฉันพยายามทำให้งานกำหนดค่าอุปกรณ์บลูทู ธ โดยอัตโนมัติเมื่อมันเชื่อมต่อกับราสเบอร์รี่ pi 3 ของฉันกำลังรันราสเบียน
ทะลึ่ง $x
เป็นที่อยู่ของอุปกรณ์ฉันต้องดำเนินการคำสั่งต่อไปนี้หลังจากเชื่อมต่อ:
hcitool enc $x off
hcitool sr $x slave
ข้อมูลการเชื่อมต่อบลูทู ธ เริ่มต้น (จากการทำงาน hcitool con
) มีลักษณะเช่นนี้:
Connections:
> ACL $x handle 11 state 1 1m MASTER AUTH ENCRYPT
และหลังจากรันสองคำสั่งข้างต้น hcitool con
แสดงสถานะที่ต้องการ:
Connections:
> ACL $x handle 11 state 1 1m SLAVE AUTH
ฉันสามารถรับ udev rule พื้นฐานเพื่อรันสคริปต์ได้
นี่คือกฎ udev ที่ /etc/udev/rules.d/99-slave.rules
SUBSYSTEM=="hidraw", RUN+="/home/pi/fix-bluetooth.bash"
และสคริปต์:
#!/bin/bash
hcitool con >> /tmp/hello_world
แล้วฉัน tail -f /tmp/hello_world
และเสียบ / ถอดปลั๊กอุปกรณ์บลูทู ธ ของฉันและนี่คือสิ่งที่ฉันเห็น:
Connections:
Connections:
Connections:
...
เป็นต้น
ฉันพยายามเพิ่ม sleep
สองสามวินาที ฉันลองเพิ่ม sudo แล้ว ฉันลองด้วยอุปกรณ์บลูทู ธ หลายตัว ฉันไม่เคยได้รับ hcitool con
เพื่อเอาท์พุทอะไรเมื่อดำเนินการเป็นส่วนหนึ่งของกฎ udev