NanoPi NEO で ミュージックサーバ(失敗編)

投稿者: | 2017年8月18日

NanoPi NEO は、HDMIやコンポジットなどのディスプレイ出力端子を搭載していないため、通常は有線LAN経由で操作します。
ミュージックサーバとしてAndroidタブレットなどから操作したいので、先日「NanoPi NEO 無線LAN化」でWi-Fi化しています。

今回、サーバソフトウェアとして白羽の矢を立てたのは”Volumio“です。
MP3、FLAC、WAV、AAC、ALAC、DSDなどの音源を再生できるDAP(デジタルオーディオプレーヤ)になります。

なお、Volumioは”MPD(Music Player Daemon)クライアント”を内包していないので、Volumio自体を音楽再生ソフトとして利用することはできませんが、今回は元々ディスプレイ出力を持たないNanoPi NEOがターゲットなので、問題ありません。
(再生はAndroidなどのMPDクライアントアプリを使用する予定)。

対象の NanoPi NEO には、Armbianを導入しています。
Volumio のダウンロードページ」を確認すると、NanoPi 関連のイメージファイルやバイナリは無く Volumio のバージョン自体は以下のようになっているようです。

対象SBC 最新バージョン
Raspberry Pi 2.246
ASUS Tinkerboard 2.17
PC版 2.201

イメージファイルやバイナリがないので、「VolumioのGitHub」からVolumioのソースファイルをダウンロードしておきます。

ソースファイルなので、ソースコードを実行ファイルに変換するビルド作業が必要になります。

  • ビルドオプション
./build.sh -b <architecture> -d <device> -v <version>
where switches are :

-b <arch> Build a full system image with Multistrap. Options for the target architecture are arm (Raspbian), armv7 (Debian 32bit), armv8 (Debian 64bit) or x86 (Debian 32bit).
-d <dev> Create Image for Specific Devices. Supported device names: pi, odroidc1/2/xu4/x2, udooneo, udooqdl, cuboxi, pine64, sparky, bbb, bpipro, bpim2u, cubietruck, compulab, x86
-l <repo> Create docker layer. Give a Docker Repository name as the argument.
-v <vers> Version

なお、「VOLUMIO 2 ON NANOPI NEO」には、導入例が掲載されていました。

Volumio 2 on NanoPi NEO
Postby rez0n » Tue May 30 2017 17:13

Hello! I'm trying to build volumio based on armbian for NanoPi NEO board.
CODE: SELECT ALL
sudo ./build.sh -b arm -d armbian_nanopineo_legacy -v 2.17
:: or
sudo ./build.sh -b arm -d armbian_nanopineo_legacy -v 2.0
:: and
sudo ./build.sh -b arm -d armbian_nanopineo_vanilla -v 2.0

最新版の2.246は「upgrade_armbian.sh」が無くエラーになるので(「upgrade_armbian.sh」の”/root/device.sh”実行部分をコメントアウトするなど)試行錯誤をしたのですが、2.17や2.0でも
結局、”/root/device.sh” がないと後続がエラーになるので”upgrade_armbian.sh”自体をコメントアウトして実行してみました。

結果は、見事にエラーになりました...。

気になること

今回用意した NanoPi NEO に導入しているOSは”Debian 8″です。
Armbian Downloadサイトには、Stable版は”Legacy Kernel”の”Ubuntu Server”しかありませんが、”official download archive”から「Debian_jessie_default.7z」をダウンロードして導入しているからです。
(詳細はNanoPi NEO 初期設定まとめをご参照ください)。

ビルドの際、導入例を参考に”armbian_nanopineo_legacy”を選択しているのは、「linux for ARM development boards の Getting Started」によると対象のSBCは”Kernel 3.4.x for Allwinner H3(sun8i)”のため、「Legacy kernels」が該当するからです。
しかし、同様に「Mainline and development kernels」も該当します。

結局、導入例に則って”armbian_nanopineo_legacy”を選択したのですが、もしかしたら”Mainline”を選べばうまくいくのかもしれません。

時間がないので、そこまで試せていませんが、後日テストしてみたいと思います。