実行すると、sudo hcitool lescan
次のようになります。
Set scan parameters failed: Input/output error
ドングルコントローラのコマンドを実行しbluetoothctl
、使用時に「Powered:No」であることを確認しました。show
電源を入れるとsudo hcitool lescan
期待どおりに動作します。
ArchLinuxでは、次のBluetoothスタックを使用しています。
~ ❯❯❯ 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
プラグアンドプレイを修正し、接続時にBluetoothコントローラに電力を供給する方法はありますか? (接続されたままにしておくと、起動後に期待どおりに機能するため、切断する必要はありません。)
答え1
デバイスがコンピュータに接続されたら、自動的にbluetoothctlプログラムを使用してデバイスの電源を入れることができます。
より良いオプションは、スクリプトが簡単なものを使用することです。 Bluetoothctlでは、コマンドを標準入力としてエコーする必要がありますが、これは少し奇妙です。
接続されたデバイスを検出するためのudevルールはそれを処理できる必要があります。
Bluetoothワイヤレス機能を備えたマシンでは、hci0
外部Bluetoothアダプタではなく内蔵Bluetoothアダプタを意味する可能性が高くなります。
その場合は、次のファイルの内容を
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
源泉: