【ラズパイ】ラズパイとBluetooth接続が切れる.~ラズパイでスピーカーを作る~
ラズパイを使って,Bluetoothスピーカーを作りたいと思っていたら,初歩で詰みました.Bluetoothで接続するとペアリングは成功しますが,すぐに接続が切れます.Macなどの他の機器で接続しても同じ問題が出たので,原因はラズパイ側にあるようです.
1.環境
私が使っている環境は以下の通りです.
サーバー : Raspberry Pi model B+ (Raspbian Stretch with desktop 2018-04-18 4.14)
クライアント : Xperia XZ1
2.症状
今回の症状はこうです.まず,bluetoothctlからscanで,Xperiaを見つけます.pairでペアリングを行います.ここで,一瞬はペアリングは成功しますが,すぐにconnected noとなってしまいます.connectを何度試しても,同じ結果です.trustするとできるとネットで見たので,試しましたが,やはりダメでした.
3.解決方法
1.bluezとpulseaudio-module-bluetoothをインストール
以下のコマンドでインストールします.bluezはすでに入っているかもしれません.
$sudo apt-get install bluez pulseaudio-module-bluetooth
2.再起動
インストールしたものを有効化するため,以下のコマンドで再起動させます.
$sudo reboot
3.bluetoothctlを確認
bluetoothctlを開き,pulseaudioが有効化されているか確認します.
$sudo bluetoothctl
showでAudio Sinkがあるか確認します.
結果は以下のようになるかもしれません.
[bluetooth]# show
Controller XX:XX:XX:XX:XX:XX
Name: raspberrypi
Alias: raspberrypi
Class: 0x000000
Powered: yes
Discoverable: no
Pairable: yes
UUID: Headset AG (00000000-0000-0000-0000-XXXXXXXXXXXX)
UUID: Generic Attribute Profile (00000000-0000-0000-0000-XXXXXXXXXXXX)
UUID: A/V Remote Control (0000000e-0000-0000-0000-XXXXXXXXXXXX)
UUID: Generic Access Profile (00000000-0000-0000-0000-XXXXXXXXXXXX)
UUID: PnP Information (00000000-0000-0000-0000-XXXXXXXXXXXX)
UUID: A/V Remote Control Target (0000000c-0000-0000-0000-XXXXXXXXXXXX)
UUID: Audio Sink (0000000b-0000-0000-0000-XXXXXXXXXXXX)
UUID: Audio Source (0000000a-0000-0000-0000-XXXXXXXXXXXX)
UUID: Handsfree (0000000e-0000-0000-0000-XXXXXXXXXXXX)
UUID: Handsfree Audio Gateway (0000000e-0000-0000-0000-XXXXXXXXXXXX)
UUID: Headset (00000000-0000-0000-0000-XXXXXXXXXXXX)
Discovering: no
UUID: Audio Sinkがありますね.自分の場合は,再起動しないと出ませんでした.表示がない人は再起動を試してみてください.
3.接続
それでは,実際に接続していきます.
以下のコマンドを実行してください.
[bluetooth]# scan on
すると,近くのデバイスが検索されます.目的のデバイスのmacアドレスを覚えてください.以下,そのアドレスをXX:XX:XX:XX:XX:XXとします.
[bluetooth]# discoverable on
[bluetooth]# pair XX:XX:XX:XX:XX:XX
クライアント側(Xperia)にペアリング申請が届きます.承認してください.おそらく,一瞬で接続が切れますが問題ありません.続けて,以下のコマンドを実行してください.
[bluetooth]# trust XX:XX:XX:XX:XX:XX
[bluetooth]# connect XX:XX:XX:XX:XX:XX
これで接続が確立すると思います.今後は,クライアント側から登録申請を行うだけでラズパイと接続できると思います.