rfkill ロック解除 Bluetooth タイムアウト

rfkill ロック解除 Bluetooth タイムアウト

私はヘッドフォンのBluetooth体験のさまざまな側面を制御するBluetoothスクリプトを作成しています。

その一環として、Bluetoothアダプタをリセットしたいと思います。私は以下を使用しています:

rfkill block bluetooth
rfkill unblock bluetooth

これは切り替える必要があり、動作しますが、毎回そのようなものではありません。うまくいかないときもパターンはありません。時々(通常約60%)タイムアウトが発生します。

ログを確認すると、以下が表示されます。

良い例:

Product: Bluetooth USB Host Controller
Manufacturer: Atheros Communications
SerialNumber: Alaska Day 2006
Adapter /org/bluez/4100/hci0 has been enabled
Endpoint registered: sender=:1.25 path=/MediaEndpoint/HFPAG
Endpoint registered: sender=:1.25 path=/MediaEndpoint/HFPHS
Endpoint registered: sender=:1.25 path=/MediaEndpoint/A2DPSource
Endpoint registered: sender=:1.25 path=/MediaEndpoint/A2DPSink

悪い場合(タイムアウト):

Product: Bluetooth USB Host Controller
Manufacturer: Atheros Communications
SerialNumber: Alaska Day 2006
Bluetooth: hci0 command 0x1003 tx timeout
Bluetooth: hci0 command 0x1001 tx timeout

このタイムアウトを増やす方法はありますか? BASHを使用して失敗し、タイムアウトを確認してループを実行します。動作するまで再試行してください。なぜなら、rfkillブロックを使用してアダプタが完全にリセットされると、最終的に動作するからです。

答え1

これら2つのコマンドrfkillの間にsleepステートメントを追加してみてはいかがでしょうか?

rfkill block bluetooth
sleep 5
rfkill unblock bluetooth

これには数秒しかかかりません。調整して役立つことを確認してください。

関連情報