Raspberry Pi zero wとBluetoothイヤホンを接続しようとして,ペアリング(pair)まではできるけど接続(connect)できないエラーに出会ったのでそのときの記録です.
エラーメッセージを下記に示します.機器のアドレスはxxで隠してます.
1
2
3
[bluetooth]# connect xx:xx:xx:xx:xx:xx
Attempting to connect to xx:xx:xx:xx:xx:xx
Failed to connect: org.bluez.Error.Failed
動作環境
1
2
3
4
5
6
7
8
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.19.66+ #1253 Thu Aug 15 11:37:30 BST 2019 armv6l GNU/Linux
pi@raspberrypi:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 9.13 (stretch)
Release: 9.13
Codename: stretch
解決策
systemctl
コマンドでbluetooth
の状態を確認すると以下のようなエラーメッセージが出ていました.
1
2
3
4
pi@raspberrypi:~ $ sudo systemctl status bluetooth
(省略)
May 30 14:36:23 raspberrypi bluetoothd[402]: a2dp-sink profile connect failed for xx:xx:xx:xx:xx:xx: Protocol not available
May 30 14:36:23 raspberrypi bluetoothd[402]: a2dp-source profile connect failed for xx:xx:xx:xx:xx:xx: Protocol not available
エラーメッセージをもとにこちらのissueを見つけて解決しました. bluealsa
において,バージョン0.7まで有効だったa2dp-source
とa2dp-sink
が現バージョンでは無効になっているみたいです. ~/.asoundrc
に以下の内容を記載して有効化してあげると機器にconnectできました.
1
2
3
4
5
6
pi@raspberrypi:~ $ cat ~/.asoundrc
defaults.bluealsa.interface "hci0"
defaults.bluealsa.device "xx:xx:xx:xx:xx:xx"
defaults.bluealsa.profile "a2dp-source"
defaults.bluealsa.profile "a2dp-sink"
defaults.bluealsa.delay 10000
音を再生する
wavファイルを再生すると「Front Center」と発音する女性の声が聞こえます.
1
2
pi@raspberrypi:~ $ aplay -D bluealsa:HCI=hci0,DEV=xx:xx:xx:xx:xx:xx,PROFILE=a2dp /usr/share/sounds/alsa/Front_Center.wav
Playing WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono