Posted at

Raspberry PI 3 で Bluetooth(A2DP)

More than 3 years have passed since last update.


概要

Raspberry PI 3でBluetooth(A2DP)スピーカ(もしくはヘッドセットなど)で音を鳴らす。

※ A2DPのみです。HSP/HFPでは接続できていません。


環境


  • Raspberry PI 3

  • Raspbian Jessie Lite (May 2016)

  • Bluetooth(A2DP)スピーカ(もしくはヘッドセットなど)


前準備


  • 以下のコマンドを実行し、必要なパッケージをインストールする。

sudo apt install pulseaudio-module-bluetooth


  • 以下の内容で「/etc/systemd/system/pulseaudio.service」ファイルを作成する。

[Unit]

Description=Pulse Audio

[Service]
Type=simple
ExecStart=/usr/bin/pulseaudio --system --disallow-exit --disable-shm

[Install]
WantedBy=multi-user.target


  • 以下の内容で「/etc/dbus-1/system.d/pulseaudio-bluetooth.conf」ファイルを作成する。

<busconfig>

<policy user="pulse">
<allow send_destination="org.bluez"/>
</policy>

</busconfig>


  • 「/etc/pulse/system.pa」ファイルの最後に以下の内容を追加する。

### Automatically load driver modules for Bluetooth hardware

.ifexists module-bluetooth-policy.so
load-module module-bluetooth-policy
.endif

.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
.endif


  • 以下のコマンドを実行し、pulseaudioサービスを起動する。

sudo systemctl start pulseaudio.service


  • 以下のコマンドを実行し、pulseaudioサービスが自動起動するようにする。

sudo systemctl enable pulseaudio.service


接続


  • 以下のコマンドを実行する。

sudo bluetoothctl


  • [bluetooth]# シェルが起動する。

  • 以下のコマンドを実行し、デバイスのスキャンを行う。

[bluetooth]# scan on

Discovery started
[CHG] Controller XX:XX:XX:XX:XX:XX Discovering: yes


  • スピーカの電源を入れてペアリングモードにすると以下の通り発見される。

[NEW] Device XX:XX:XX:XX:XX:XX 機器の名前


  • 以下のコマンドを実行し、デバイスのスキャンの停止をする。

[bluetooth]# scan off

[CHG] Device XX:XX:XX:XX:XX:XX RSSI is nil
Discovery stopped
[CHG] Controller XX:XX:XX:XX:XX:XX Discovering: no


  • 以下のコマンドを実行し、デバイスのペアリングを行う。

[bluetooth]# pair XX:XX:XX:XX:XX:XX

Attempting to pair with XX:XX:XX:XX:XX:XX
[CHG] Device XX:XX:XX:XX:XX:XX Connected: yes
[CHG] Device XX:XX:XX:XX:XX:XX Name: 機器の名前
[CHG] Device XX:XX:XX:XX:XX:XX Alias: 機器のエイリアス
[CHG] Device XX:XX:XX:XX:XX:XX UUIDs:
00001108-0000-1000-8000-00805f9b34fb
0000110b-0000-1000-8000-00805f9b34fb
0000111e-0000-1000-8000-00805f9b34fb
[CHG] Device XX:XX:XX:XX:XX:XX Paired: yes
Pairing successful
[CHG] Device XX:XX:XX:XX:XX:XX Connected: no


  • なぜか切断されてしまったので、もう一度接続を行う。(切断されなければ再接続は不要だと思います。)

[bluetooth]# connect XX:XX:XX:XX:XX:XX

Attempting to connect to XX:XX:XX:XX:XX:XX
[CHG] Device XX:XX:XX:XX:XX:XX Connected: yes
Connection successful


  • 以下のコマンドを実行し、ペアリングしたデバイスを信頼する。(次回以降自動的に接続する?)

[bluetooth]# trust XX:XX:XX:XX:XX:XX

[CHG] Device XX:XX:XX:XX:XX:XX Trusted: yes
Changing XX:XX:XX:XX:XX:XX trust succeeded


  • 以下のコマンドを実行し、[bluetooth]# シェルを終了する。

[bluetooth]# quit

[DEL] Controller XX:XX:XX:XX:XX:XX raspberrypi [default]


参考サイト

https://github.com/ev3dev/ev3dev/issues/198