在 udev 脚本上下文中运行时,“hcitool con”找不到任何设备

在 udev 脚本上下文中运行时,“hcitool con”找不到任何设备

当蓝牙设备连接到运行 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 规则的一部分执行时,我永远无法输出任何内容。

相关内容