Debian GNU/Linux (jessie/stretch/buster) MEMO - Bluetooth Headset

Dec 2015
At your own risk.


VoIPで打合せが多くなる。で、Bluetooth Headset(MBH20/SONY)を購入した。
2015年11月現在、debian jessieでは、「Bluez 5」「pulseaudio 5.0」だ。 購入したHeadsetを接続してみた。接続はできたが、 音の再生も、マイクも使えない....。
調べてみると、 pulseaudio 5.0では、bluez 4の時はサポートしていたHFP/HSPがbluez 5でDropしたら しい...。

さらに知らべると、pulseaudio 6.0では、Bluez5の native HSPとoFono経由のHFPをサポートしている。
さて、今現在、debianのパッケージで、jessie-backports なら pulseaudio 7.1だ! では、pulseaudio 7にupgradeすべし。
/etc/apt/sources.listに下記をを追加し、jessie-backports から pulseaudioをインストールしましょう。
deb http://ftp.jp.debian.org/debian/ jessie-backports main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ jessie-backports main contrib non-free
$ sudo apt-get update
$ sudo apt-get install pulseaudio=7.1-2~bpo8+1 pulseaudio-utils=7.1-2~bpo8+1 \
    pulseaudio-module-x11=7.1-2~bpo8+1 pulseaudio-module-bluetooth=7.1-2~bpo8+1 \
    libpulse-mainloop-glib0=7.1-2~bpo8+1 libpulsedsp=7.1-2~bpo8+1 libpulse0=7.1-2~bpo8+1 \
    libpulse0:i386=7.1-2~bpo8+1
しかし、これだけだと、何やらうまく行かない(接続までいくが、音が聞こえない...)。 ググッテみた結果1 ググッテみた結果2 から、
どうやら、gdmが「pulseaudio」を使用していて、ユーザと衝突してうまくいかないと言うことらしい...。
対策は、
「/var/lib/gdm3/.config/pulse/client.conf」を作成し、下記内容にする。
autospawn = no
daemon-binary = /bin/true
(尚、作成したディレクトリとファイルをchownでDebian-gdm.Debian-gdm にしておきましょう)
また、pulseaudio開始を禁止する為に、下記のようにsocketへのシンボリックリンクを削除。
  $ sudo rm /var/lib/gdm3/.config/systemd/user/sockets.target.wants/pulseaudio.socket
念の為 /dev/nullをシンボリックリンクする。
  $ sudo ln -s /dev/null /var/lib/gdm3/.config/systemd/user/sockets.target.wants/pulseaudio.socket

これで、ユーザ権限でpulseaudioが起動して、うまくいくようだ。 後は、「サウンド設定」で"Headset"をセレクトしよう。
(2017年10月23日現在) busterで、HSP/HFPが動作がうまくいかない...。 HSPに切替は可能だが、音が出ないしマイクも拾えない...。MBH20の問題かな? bluezは5.47だ。