如何在树莓派OS中为指定蓝牙适配器固定分配hci设备标识符
树莓派固定蓝牙适配器hci标识符解决方案
可以通过配置udev规则,基于蓝牙适配器的唯一MAC地址固定分配对应的hci标识符,解决拔插后编号漂移的问题,具体操作步骤如下:
操作步骤
- 第一步:获取两个蓝牙适配器的MAC地址
执行命令bluetoothctl list,输出结果中会列出所有已识别的蓝牙适配器的MAC地址、名称信息,分别记录下需要绑定为hci0、hci1的两个适配器的MAC值,格式为XX:XX:XX:XX:XX:XX。 - 第二步:编写udev固定命名规则
用编辑器打开规则文件/etc/udev/rules.d/10-local-bluetooth.rules(如果文件不存在直接新建即可),写入如下规则:
替换完成后保存退出。SUBSYSTEM=="bluetooth", KERNEL=="hci*", ATTR{address}=="替换为要绑定为hci0的适配器MAC", NAME="hci0" SUBSYSTEM=="bluetooth", KERNEL=="hci*", ATTR{address}=="替换为要绑定为hci1的适配器MAC", NAME="hci1" - 第三步:重载udev规则使配置生效
依次执行以下命令重载规则:
也可以直接重启树莓派让配置完全生效。udevadm control --reload-rules udevadm trigger
注意事项
- 配置规则前建议先停止正在运行的蓝牙相关业务,避免设备节点占用导致规则不生效
- 若拔插适配器后需要立即刷新节点,可以执行
systemctl restart bluetooth重启蓝牙服务 - 规则不生效时可执行
udevadm info /sys/class/bluetooth/hci*查看适配器的属性值,确认MAC地址匹配是否正确
内容的提问来源于stack exchange,提问作者Balo
相关产品推荐
相关产品推荐

