BBB の Volumio に Botic kernel をインストール
BeagleBone Black Rev.C に Botic Linux Driver と BBB ブリッジ基板 B2R-5100 で I2S DAC を接続してネットワークオーディオプレーヤーを構築しました。音楽ファイルを再生するには TeraTerm などのターミナルエミュレータから ssh でログインして play コマンドで行うか MPD クライアントを使って再生できますが、ネットワークの設定なども WebUI でできる Volumio が使えるといいですね。
BeagleBone Black(以下BBB)の Volumio に Boitc kernel をインストールする方法が Botic HOWTOs for driver & tools に記載されていますのでこの通りにすればインストールできます。
BBB のマイクロ SD カードに Volumio 1.5 をインストール
BBB 用の Voluimo 1.5 を https://volumio.org/get-started からダウンロードし展開します。ターミナルを開き以下のコマンドを実行します。
$ unzip ./Downloads/Volumio1.5BBB.img.zip Archive: ./Downloads/Volumio1.5BBB.img.zip inflating: Volumio1.5BBB.img
FAT32 でフォーマットしたマイクロ SD カードに展開したイメージファイルを書き込みます。まず以下のコマンド実行します。
$ df -h
次に SD カードを挿入して再度以下のコマンドを実行します。
$ df -h
SD カードが追加されていますのでデバイス名(例えば /dev/sdb1)をメモしておきます。
SD カードをアンマウントします。
$ umount /dev/sdb1
イメージファイルを SD カードに書き込みます。SD カード名は sdb1 ですが出力ファイルの指定では番号 1 は必要ありません。なお書き込みの実行には十分注意をしてください。出力ファイルにハードディスクを指定した場合ハードディスクの内容を全て失うことになります。
$ sudo dd if=Volumio1.5BBB.img of=/dev/sdb
これでインストールは完了です。
SD カードから Volumio 1.5 の起動
LAN ケーブルを挿してBBB の電源を入れますが、今回の Botic kernel のインストール作業で一番手間取ったのが Voumio のブートです。SD カードからブートするにはブートスイッチ(S2)を押しながら電源をいれるものと思っていました(BBB のユーザーズマニュアルにもそのように書かれている)が何度やっても SD カードの Volumio が起動せず eMMC の Debian が起動してしまいます。
Volumio のフォーラムを検索したらリセットスイッチ(S1)を押しながら電源をいれ数秒間リセットスイッチを長押しし放したら SD カードの Volumio が起動したとの書き込みがあったので同じようにしたら上手くいきました。
Botic kernel のインストール
ssh で BBB にログインします。user 名は "root"でパスワードは "volumio" です。
$ ssh root@192.168.xxx.xxx
以下の5行をコピペで実行します。
cat > /etc/apt/sources.list <<EOT deb http://http.debian.net/debian wheezy main non-free deb http://http.debian.net/debian wheezy-backports main non-free #deb-src http://http.debian.net/debian wheezy main non-free EOT
Botic4 をダウンロードしてファイルの展開をします。
root@volumio:~# cd / root@volumio:/# wget http://bbb.ieero.com/botic4/botic4-beta.tar.gz root@volumio:/# tar xvfz botic4-beta.tar.gz
以下の3つのスクリプトを実行します。
全てのパッケージをアップデートするスクリプトです。今回はアップデートをしないので途中で継続するかどうかの問い合わせに対して"n"をタイプします。
root@volumio:/# /source/boticize/01-addrepos.sh
Botic リポジトリから必要なパッケージをインストールします。途中でいくつか問い合わせがありますがデフォルトを指定しました。
root@volumio:/# /source/boticize/02-install.sh
パワーマネジメントを有効にするスクリプト。line 7: systemctl: command not found といったメッセージが表示されますが気にせず続行。
root@volumio:/# /source/boticize/03-enablepm.sh
ネイティブ DSD をサポートした MPD のインストール。
root@volumio:/# apt-get install mpd=0.18.22-dsd-rt-4
ALSA をインストール。
root@volumio:/# apt-get install libasound2=1.0.27.2-102 libasound2-data=1.0.27.2-102 libasound2-dev=1.0.27.2-102
Botic V5 のカーネルイメージのインストール。Botic V4 カーネルは USB メモリのサポートがされていないようなので Botic V5 にしました。
root@volumio:/# apt-get install linux-image-4.0.0-botic5 root@volumio:/# cp -f /boot/vmlinuz-4.0.0-botic5 /boot/zImage root@volumio:/# cp -f /boot/dtbs/4.0.0-botic5/am335x-boneblack.dtb /boot/dtbs/am335x-boneblack.dtb
Botic kernel オプションを変更します。BBB ブリッジ基板 B2R-5100 を使う場合はここが重要です。SD カードをマウント。
root@volumio:/# mount /dev/mmcblk0p1 /boot/uboot
nano で uEnv.txt を開き optargs=fixrtc の後にスペースを入れて snd_soc_botic.ext_masterclk=3 snd_soc_botic.serconfig=MMMM snd_soc_botic.dsd_format_switch=3 を追加します。
root@volumio:/# nano /boot/uboot/uEnv.txt
SD カードをアンマウントしてリブートします。
root@volumio:/# umount /boot/uboot/ root@volumio:/# reboot
再度ログインして Botic kernel が起動したことを確認します。
root@volumio:/# uname -r 4.0.0-botic5
Botic カーネルオプションが変更されているのを確認します。外部マスタークロックの指定で snd_soc_botic.ext_masterclk=3 としていますので 3 が表示されます。
root@volumio:/# cat /sys/module/snd_soc_botic/parameters/ext_masterclk 3
Volumio 1.5 用に MPD music directory を変更します。nano で /etc/mpd.conf を開いて music_directory が "/data" となっているのを "/var/lib/mpd/music"に修正します。
root@volumio:/# nano /etc/mpd.conf
Volumio の起動
ブラウザで volumio.local と指定すると Volumio が起動します。「MENU」-「Playback」で開く MPD Configuration 画面の Audio Output に Botic が指定されているのが確認できます。

これで BBB に B2R-5100 で接続された I2S DAC でも Volumio が使えるようになります。ネットワークの設定や NAS の設定も GUI で行うことができます。