Raspberry PI 3 で Bluetooth(A2DP)

  • 26
    いいね
  • 2
    コメント

概要

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