bluetooth on linux

メインのデスクトップ環境をLinuxにして数年。まあ、色々な問題が発生しつつもやっていけている。中でも bluetooth 関連は問題に多く直面したのでそろそろメモしておく。

複数のbluetoothスピーカーについて。これは、ubuntuのメジャーアップデートの影響もあると思う。ちょっと記憶があやふやなのだが、以前はbluetoothのペアリングはしておいて、サウンドバイス設定側で使用するスピーカーを切り替えていたような気がする。

それが、bluetooth設定側で切り替えるようなイメージに変わった気がする。この認識はおそらく正確ではないのだが、結果的にこのように運用している。バージョンアップ後にまず戸惑ったのが、2つ目のスピーカーが接続できないことだった。接続できるスピーカーもあったのだが、そちらはいわゆるヘッドセット音質でしか接続できない状態だった。

この仕様にとまどったということはおそらく以前は違ったということだろう。答えは単純で、スピーカーを切り替えるには、接続されているスピーカーを切断して、新しく使う方を接続すればいいだけだった。ヘッドセット音質で接続できていた件は、推測だが対応しているプロファイルが多かった為だろう。

マウスやキーボードなどのデバイスが再接続できなくなる件。これは、どこかのカーネル更新のタイミングで発生した(5.4.0.65.68 → 5.4.0.66.69 のタイミングだった気がする)。Ubuntu 20.04 だったのだが、generic から hwe カーネルに切り替えても症状は殆ど変わらなかった。発生すると、bluetoothを一度offにしてonに戻すと復帰する。発生する条件はランダムな感じだった。

まず試したのがカーネルオプションやモジュールオプションで btusb.enable_autosuspend=0 を設定する、というものだが変化なし。

うまくいったのは、bluetooth の userspace HID を有効にする設定、 /etc/bluetooth/input.conf の UserspaceHID=true だった。しかしこれも暫くしたら接続が定期的に切れたりして、なかなか安定せず。

結局今は、一度ペアリングを解除して再ペアリングを行い、設定も元に戻した状態で、ちょっと安定している。この辺は内部構造をちゃんと調べて適切な対策を取りたいところだ。