Home Raspberry Pi zero wでBluetooth接続したときの話
Post
Cancel

Raspberry Pi zero wでBluetooth接続したときの話

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-sourcea2dp-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
This post is licensed under CC BY 4.0 by the author.

STMマイコンでOV7670を使う(2)

HANAZAWA KANA Showcase Live 2021 “Moonlight Magic”に行ってきました!