蓝牙适配器插入时不供电,仅在启动时供电

蓝牙适配器插入时不供电,仅在启动时供电

执行时sudo hcitool lescan我得到:

Set scan parameters failed: Input/output error

执行bluetoothctl并使用show针对加密狗控制器的命令时,我注意到它是“已通电:否”。打开电源即可sudo hcitool lescan按预期工作。

我在 ArchLinux 上使用以下蓝牙堆栈:

~ ❯❯❯ pacman -Qs bluetooth
extra/bluez 5.43-2
    Daemons for the bluetooth protocol stack
extra/bluez-firmware 1.2-8
    Firmwares for Broadcom BCM203x and STLC2300 Bluetooth chips
extra/bluez-libs 5.43-2
    Deprecated libraries for the bluetooth protocol stack
extra/bluez-utils 5.43-2
    Development and debugging utilities for the bluetooth protocol stack
extra/gnome-bluetooth 3.20.0+6+g3bac4f9-1
    The GNOME Bluetooth Subsystem
extra/pulseaudio-bluetooth 10.0-2
    Bluetooth support for PulseAudio
community/python2-pybluez 0.22-2
    Python wrapper for the BlueZ Bluetooth stack
extra/sbc 1.3-1
    Bluetooth Subband Codec (SBC) library

有没有办法修复即插即用并使蓝牙控制器在插入时供电? (如果我让它插入,它在启动后按预期工作,无需断开连接)

电源控制器开启

答案1

当设备连接到计算机时,您可以自动使用 bluetoothctl 程序来为您打开设备电源。

更好的选择是使用更容易编写脚本的东西。 Bluetoothctl 要求您将命令回显到标准输入,有点奇怪。

用于检测正在插入的设备的 udev 规则应该能够处理这个问题。

请注意,在具有内置蓝牙无线电的机器上,很可能hci0不是指外部蓝牙适配器,而是指内置蓝牙适配器。

在这种情况下,请hci0hci1以下文件内容替换。

创建这个文件:/etc/udev/rules.d/10-local.rules

内容:

ACTION=="add", KERNEL=="hci0", RUN+="/usr/bin/hciconfig %k up"



如果这不起作用,您可以尝试编写 bluetoothctl 脚本。

udev 规则看起来像这样:

ACTION=="add", KERNEL=="hci0", RUN+="/usr/local/bin/PowerOnBluetooth"

创建这个文件:/usr/local/bin/PowerOnBluetooth

内容:

#!/bin/bash
echo -e 'power on\nquit\n' | bluetoothctl

不要忘记将文件标记为可执行:

chmod +x /usr/local/bin/PowerOnBluetooth



资料来源:

建筑维基百科

Archlinux用户有同样的问题

相关内容