Edited at

Raspberry Pi上のVolumioをBluetoothスピーカーで再生する

More than 1 year has passed since last update.


まえがき

Volumioと言えば、ラズベリーパイの代表的なデジタルオーディオプレーヤーのディストリビューションであり、多くの人がDACボードを接続し、AVコンポ等で楽しんでいることと思う。

しかし、AVコンポを持っていない私は、何とかBluetoothスピーカーで再生できないかと考えた。

Volumioの設定にひととおり目を通したがBluethoothの設定は無し。

プラグインの一覧にもBluetoothの文字は無し。

ネットで「volumio bluetooth スピーカー」で検索しても有効な情報が見つからない。

日本語サイトではだめそうなので、検索キーワードを「volumio bluetooth plugin」としてみた。

すると、Volumioのフォーラムに「BLUETOOTH SPEAKER PLUGIN」という投稿(トピック)があるのを発見した。

奇特なお方がプラグインを作って下さっていた。

英語による投稿なので、Google Chromeで日本語に翻訳して投稿の内容を読んだ。

 BLUETOOTH SPEAKER PLUGIN

 https://volumio.org/forum/bluetooth-speaker-plugin-t7432.html


環境


  • 本体:Raspberry Pi 3 model B

  • Bluetoothスピーカー:Logicool X300

  • Volumio:VERSION: 2.389


手順

手順をまとめると以下のとおりである。

この手順は「BLUETOOTH SPEAKER PLUGIN」内の以下の投稿を参考にした。

 https://volumio.org/forum/bluetooth-speaker-plugin-t7432-70.html#p45596

1.以下のサイトからプラグインとUI(ユーザーインターフェース)を作業用PCにダウンロードする。

2.ui.zipを解凍する。以下のフォルダとファイルが解凍される。


  • フォルダ


    • app

    • fonts

    • scripts

    • styles



  • ファイル


    • index.html



3.ターミナルソフトでssh接続し、/volumio/http/www フォルダへ移動する。

 $ cd /volumio/http/www

このフォルダ内には以下のフォルダとファイルが存在する。


  • フォルダ


    • app

    • fonts

    • scripts

    • styles



  • ファイル


    • index.html



4./volumio/http/www フォルダ内のフォルダとファイルを全て削除する。

$ rm -rf *

5.手順[2.]で解凍したフォルダとファイルをWinSCP等のソフトで、/volumio/http/www フォルダ内にコピーする。

6.Volumioを再起動する。

7.Chrome等のブラウザからVolumioにアクセスする。

8.歯車アイコン(設定の表示)→プラグインを選択し、プラグイン管理画面を表示する。この画面に「プラグインのアップロード」タブがあることを確認する。

もしなければ、ブラウザの再読み込みボタンを押して、「プラグインのアップロード」タブを表示する。

9.「プラグインのアップロード」タブをクリックする。

10.「クリックしてプラグインを選択するか、ここにドロップ」欄に手順[1.]でダウンロードしたbluetooth_controller.zipをzipファイルままドラッグ&ドロップする。

11.プラグインのインストールが実行される。インストール完了まで約5分かかる。

12.「プラグイン済みのプラグイン」タブに「Bluetooth Manager」が表示される。

13.Volumioを再起動する。

14.ターミナルソフトでssh接続し、以下のコマンドを実行し、bluetooth関連のサービス状況を確認する。

  $ systemctl | grep blue

 結果は以下の様に bluezalsa.service が「loaded failed」となる。

volumio@volumio:~$ systemctl | grep blue

sys-subsystem-bluetooth-devices-hci0.device
loaded active plugged /sys/subsystem/bluetooth/devices/hci0
bluetooth.service
loaded active running Bluetooth service
● bluezalsa.service
loaded failed failed BluezAlsa proxy
bluetooth.target
loaded active active Bluetooth

 bluezalsa.service の詳細な状態を確認すると、以下の様に「Active: failed」となる。

 $ systemctl status bluezalsa

【実行結果】

volumio@volumio:~$ systemctl status bluezalsa
● bluezalsa.service - BluezAlsa proxy
Loaded: loaded (/lib/systemd/system/bluezalsa.service; enabled)
Active: failed (Result: exit-code) since 土 2018-04-28 00:09:19 JST; 7min ago
Process: 711 ExecStart=/usr/bin/bluealsa --disable-hfp (code=exited, status=1/FAILURE)
Main PID: 711 (code=exited, status=1/FAILURE)

4月 28 00:09:19 volumio systemd[1]: Starting BluezAlsa proxy...
4月 28 00:09:19 volumio systemd[1]: Started BluezAlsa proxy.
4月 28 00:09:19 volumio bluealsa[711]: /usr/bin/bluealsa: unrecognized opt...'
4月 28 00:09:19 volumio bluealsa[711]: Try '/usr/bin/bluealsa --help' for ....
4月 28 00:09:19 volumio systemd[1]: bluezalsa.service: main process exite...RE
4月 28 00:09:19 volumio systemd[1]: Unit bluezalsa.service entered failed...e.
Hint: Some lines were ellipsized, use -l to show in full.

15.bluezalsa.serviceを修正する。

 ★ここがポイント★

$ sudo vim /lib/systemd/system/bluezalsa.service

修正前:
ExecStart=/usr/bin/bluealsa --disable-hfp

修正後:
ExecStart=/usr/bin/bluealsa --a2dp-force-audio-cd

16.Volumioを再起動する。

17.ターミナルソフトでssh接続し、以下のコマンドを実行し、bluetooth関連のサービス状況を確認する。

$ systemctl | grep blue

 結果は以下の様になっていればOKである。

volumio@volumio:~$ systemctl | grep blue

sys-subsystem-bluetooth-devices-hci0.device
loaded active plugged /sys/subsystem/bluetooth/devices/hci0
bluetooth.service
loaded active running Bluetooth service
bluezalsa.service
loaded active running BluezAlsa proxy
bluetooth.target
loaded active active Bluetooth

 念のためbluezalsa.service の詳細な状態を確認する。

 $ systemctl status bluezalsa

 結果は以下の様に「Active: active (running)」となっていればOKである。

volumio@volumio:~$ systemctl status bluezalsa

● bluezalsa.service - BluezAlsa proxy
Loaded: loaded (/lib/systemd/system/bluezalsa.service; enabled)
Active: active (running) since 土 2018-04-28 00:29:35 JST; 3min 10s ago
Main PID: 717 (bluealsa)
CGroup: /system.slice/bluezalsa.service
mq717 /usr/bin/bluealsa --a2dp-force-audio-cd

4月 28 00:29:35 volumio systemd[1]: Starting BluezAlsa proxy...
4月 28 00:29:35 volumio systemd[1]: Started BluezAlsa proxy.

18.Chrome等のブラウザからVolumioにアクセスする。

19.歯車アイコン(設定の表示)→プラグインを選択し、「Bluetooth Manager」が「On」で「アクティブ」となっていることを確認する。

20.「Settings」ボタンをクリックする。

21.「Discoverable」を「On」にした後、「Seve」ボタンをクリックする。

22.Bluethoothスピーカーをペアリングできる状態にする。

23.「Refresh」ボタンを何度かクリックし、Bluethoothスピーカーを検出する。

24.Bluethoothスピーカーを検出するとスピーカーの名称が表示されるので、「Connect」ボタンをクリックし、接続する。

25.Volumioで音楽を再生し、スピーカーから音が出ればOK。


参考情報


bluealsaのヘルプ

bluezalsa.serviceで実行しているbluealsaのヘルプを掲載する。

バージョンは1.2.0である。

このバージョン(?)では --disable-hfp オプションは無いようなので、bluezalsa.serviceの起動は失敗したと考えられる。

volumio@volumio:~$ bluealsa -V

1.2.0

volumio@volumio:~$ bluealsa -h
Usage:
bluealsa [OPTION]...

Options:
-h, --help print this help and exit
-V, --version print version and exit
-S, --syslog send output to syslog
-i, --device=hciX HCI device to use
-p, --profile=NAME enable BT profile
--a2dp-force-mono force monophonic sound
--a2dp-force-audio-cd force 44.1 kHz sampling
--a2dp-volume control volume natively

Available BT profiles:
- a2dp-source Advanced Audio Source
- a2dp-sink Advanced Audio Sink
- hsp-hs Headset
- hsp-ag Headset Audio Gateway
- hfp-hf Hands-Free
- hfp-ag Hands-Free Audio Gateway

By default only output profiles are enabled, which includes A2DP Source and
HSP/HFP Audio Gateways. If one wants to enable other set of profiles, it is
required to explicitly specify all of them using `-p NAME` options.