当蓝牙设备连接到运行 raspbian 的 raspberry 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 规则来执行脚本,但它没有达到预期的效果。
这是 /etc/udev/rules.d/99-slave.rules 中的 udev 规则
SUBSYSTEM=="hidraw", RUN+="/home/pi/fix-bluetooth.bash"
脚本如下:
#!/bin/bash
hcitool con >> /tmp/hello_world
然后我tail -f /tmp/hello_world
插入/拔下我的蓝牙设备,我看到的是:
Connections:
Connections:
Connections:
...
ETC。
我尝试添加sleep
几秒钟。我尝试添加 sudo。我尝试连接多个蓝牙设备。hcitool con
当作为 udev 规则的一部分执行时,我永远无法输出任何内容。