はじめに
以前は問題なかったんですが、いつのまにかUbuntuにBluetoothで接続しているヘッドセットがA2DPプロファイルでなくHSP/HFPプロファイルしか適用できなくなっていました。いろいろと調べた結果、A2DPプロファイルが適用できるようになった設定です。
環境
Ubuntu 16.04です。ちなみに、それまで14.04でしたが、もしかしたら16.04に上げれば直るかも、と期待してバージョンアップしましたが変わらなかったので、少し真面目に調べました。
現象
「すべての設定」から「サウンド」を選択して「出力」タブで「サウンド出力デバイスの選択」からBluetoothで接続しているデバイスを選択すると、「プロファイル」のメニューで以下の2つを選択できるようになります。
- High Fidelity Playback(A2DP Sink)
- Headset Head Unit (HSP/HFP)
HSP/HFPが設定されていたので、これをA2DP Sinkに変更して「スピーカーのテスト」をしてもステレオになりませんし、「サウンド」画面を閉じてから開くとHSP/HFPに戻っていました。
Bluetoothマネージャーを起動してBluetoothで接続しているデバイスを右クリックして「オーディオプロファイル」からHigh Fidelity Playback(A2DP Sink)を選択すると、
Failed to change profile to a2dp_sink
というエラーメッセージが画面の下に表示されてプロファイルが変更されませんでした。
変更点
いろいろと検索した結果、以下のリンク先に書かれていたコメントを見つけました。
Bluetooth Speaker not doing A2DP Ubuntu Gnome 17.04
どうやらGnome Display Manager(GDM)がpulseaudioのBluetooth接続を有効にしているのが問題で、それを無効にすればいい、ということのようです。
GDMのpulseaudioを無効にする設定が以下の通りです。
-
/var/lib/gdm3/.config/pulse/default.paをテキストエディタでオープンします。私の環境には、そもそも該当するファイルがなかったので作成しました。ファイルの作成およびオープンにはroot権限が必要です。
-
以下の内容を追加します。
#!/usr/bin/pulseaudio -nF
#
# load system wide configuration
.include /etc/pulse/default.pa
### unload driver modules for Bluetooth hardware
.ifexists module-bluetooth-policy.so
unload-module module-bluetooth-policy
.endif
.ifexists module-bluetooth-discover.so
unload-module module-bluetooth-discover
.endif
エディタを閉じてOSを再起動するとA2DPプロファイルに切り替えられるようになりました。