Arch-Linux
插入時藍牙加密狗未通電,僅在啟動時
執行時
sudo hcitool lescan
我得到:Set scan parameters failed: Input/output error
執行
bluetoothctl
和使用show
針對加密狗控制器的命令,我注意到它是“Powered: no”。打開電源可以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
有沒有辦法修復即插即用並在插入時使藍牙控制器供電?(如果我讓它插上電源,它會在啟動後按預期工作,而不會斷開連接)
當設備連接到電腦時,您可以自動化 bluetoothctl 程序為您打開設備電源。
更好的選擇是使用更容易編寫腳本的東西。Bluetoothctl 要求您將命令回顯到標準輸入,這有點奇怪。
檢測所插入設備的 udev 規則應該能夠處理此問題。
請注意,在帶有內置藍牙無線電的機器上,很可能
hci0
不是指外部藍牙適配器,而是指內置藍牙適配器。 在這種情況下,請在以下文件內容中hci0
替換為。hci1
創建這個文件:
/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
資料來源: