Beaglebone Black(BBB)の使い道としてインターネットラジオプレイヤーを考えてらっしゃる方は多いかと思いますが、BBBには音声出力はHDMIしかなく、USBのオーディオアダプターを使ってアナログ出力される方が一般的ではないでしょうか。
かくいう私もUSBオーディオアダプターを使おうかと思っていたのですが、Bluetoothで出力するっていう方法もあるじゃん、と気づいてチャレンジすることにしました。
はまること2日間、やっとBluetoothヘッドホンへの音声出力が出来ましたので、備忘録を兼ねて記録しておきたいと思います。
OSはAngstromを使いました。デフォルトでeMMCに入っているものではなく、
[URL]にある「Angstrom Distribution (BeagleBone, BeagleBone Black - 4GB SD) 2013-06-20」をSDカードに焼いて使いました。
BluetoothドングルはBuffalo製ですが、型番は失念してしまいました。
まず、パッケージを追加します。
opkg install connman-plugin-bluetooth
opkg install libasound-module-bluez
connman-plugin-bluetoothは既に入ってるよ、ってなるかもしれません。
これによって、/usr/lib/alsa-lib/の下にlibasound_module_ctl_bluetooth.soとlibasound_module_pcm_bluetooth.soが作成されます。
次に、AngstromはデフォルトでBluetoothが無効になっているので、有効にします。
/var/lib/connman/settingsをエディタで開いて、
[Bluetooth]
Enable=false
となっているところを、
[Bluetooth]
Enable=true
にします。保存したら、コマンドラインに戻って以下のように入力します
systemctl enable bluetooth.service
systemctl start bluetooth.service
次に、/etc/bluetooth/audio.confをエディタで開いて、以下のように編集します。
[General]
Enable=Source,Sink,Headset,Gateway,Control,Socket,Media ※この行追加
...
SCORouting=PCM ※コメントを外す
...
AutoConnect=true ※コメントを外す
...
[A2DP] ※コメントを外す
SBCSources=1 ※コメントを外す
MPEG12Sources=0 ※コメントを外す
次にホームディレクトリ(多分rootユーザでログインしてると思うので/home/root)に.asoundrcファイルを以下の内容で作成します。
pcm.bluetooth {
type bluetooth
device XX:XX:XX:XX:XX:XX
profile "auto"
}
XX〜XXにはBluetoothヘッドホンのBluetoothアドレスを記述して下さい。調べ方は...いったんWindowsパソコンにつないで調べるとか(^_^;)
次にBeaglebone BlackとBluetoothヘッドホンをペアリングします。HDMIモニタを使っているなら、右上にBluetoothのアイコンが表示されていると思うので、左クリックして「Set up new device...」を実行してください。詳しい説明は省きます。
動作確認ですが、mplayerユーティリティを使って行います(shoutcastを利用しています)。
mplayer -ao alsa:device=bluetooth -playlist http://yp.shoutcast.com/sbin/tunein-station.pls?id=157204
無事にBluetoothヘッドホンから音が鳴ったでしょうか?
なお、他に気づいた点として:
・Angstrom用のbluez-alsaパッケージは無い(必要無い)みたい。opkgでインストールしようとしましたが、unknownになってしまいましたし、それでも音が鳴ってますので。
・/proc/asound/cardsにBluetoothのインタフェースが表示されることは無いみたいです。HDMIのものと思しきものが表示されているのみです。
セコメントをする