Raspberry Pi Zero moOde audio 640

前回はmoOde audio 630をインストール、設定してきましたがmoOde audio 640がリリースされています。
変更の内容は以下に紹介されています。
http://moodeaudio.org/forum/showthread.php?tid=1929
UIは531あたりからほとんど変わってないと思います。
630ではカーネルもアップデートしているので枯れたデバイスでは敢えて640にする必要も無いのですが手を加えた設定をアップデートに適用する方法として試してみます。

アップデート

630から640にアップデートする手法もあるようですが640の新規カードを作成して追加したファイル、設定をコピー、必要なパッケージをクリーンインストールしていきたいと思います。
現在のOs(630)は正常に稼働しているものとして新たにカードを用意します。

カード作成

moode-r640-iso.zipをダウンロード、展開してカードに焼いておきます。

テキストファイル作成
ファイル名は(適当に)テキストファイルを作成して新たに焼いたカードのルートディレクトリ(/)にコピーしておきます。現稼働中の(630)から必要なファイルを新しいカードにコピーします。
パスワード関連のファイルをコピーすることでwww-dataの面倒な設定は一切不要になります。
www-data(pulseaudio)は/var/www/htmlに纏めています。
ユーザーが実行するファイル(/home/pi)は全てホームディレクトリにあります。
moode-r640-config.txt

#!/bin/sh
cp /etc/passwd ./etc
cp /etc/shadow ./etc
cp /etc/group ./etc
cp /etc/gshadow ./etc
cp /etc/sudoers ./etc
cp -rp /var/www/html ./var/www
cp /etc/dhcpcd.conf ./etc
#cp /etc/wpa_supplicant/wpa_supplicant.conf ./etc/wpa_supplicant
cp /etc/pulse/default.pa ./etc/pulse

cp /etc/default/locale ./etc/default
cp /etc/locale.gen ./etc
cp /etc/init.d/vncboot ./etc/init.d
cp /usr/local/bin/dwm ./usr/local/bin
cp /etc/dphys-swapfile ./etc
cp -r /etc/mplayer ./etc
cp -r /etc/fonts ./etc

mv ./home/pi ./home/pi.def
cp -rp /home/pi ./home

下記のファイルは新たなカード(640)で起動したら必要なパッケージをインストールします。
moode-r640-setup.txt

#!/bin/sh
# ssh pi@moode "moodeaudio"
# locale
locale-gen
# Timazone
timedatectl set-timezone Asia/Tokyo
apt update && apt -y upgrade
apt -y install tightvncserver autocutsel
apt -y install ranger highlight
apt -y install pulseaudio pavucontrol ncmpcpp
apt -y install surf xbindkeys python3-tk
apt -y install mpv mplayer swftools libxml2-utils rtmpdump
apt -y remove youtube-dl
curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
chmod a+rx /usr/local/bin/youtube-dl
apt install -y fonts-ipafont fonts-ricty-diminished uim uim-anthy uim-xim uim-gtk2.0
apt -y autoremove
echo "--- systemctl ---"
systemctl enable vncboot
systemctl enable dphys-swapfile

sh -c 'echo -n "Hit Enter key to reboot..."; read x'
reboot

設定コピー

Pi ZeroではマイクロUSB端子1個しかないので仮にハブを取り付けています。

nfsやsambaを利用する方法やカードを外して別マシンから手動でコピーすることも可能ですがいずれもパーミッションを維持してコピーする必要があります。

新しいカード(640)をハブにセット、マウントしたらマウント先に移動してmoode-r640-config.txtを実行、必要なファイルをコピーします。

$ lsblk
$ sudo mount /dev/sda2 /media
$ cd /media
$ sudo sh moode-r640-config.txt

moOde audio 640起動

カードを入れ替えてmoOde audio 640を起動、sshで接続します。

$ ssh-keygen -R moode
$ ssh pi@moode
$ sudo raspi-config


raspi-configを実行してSDカードの拡張だけ実行しておきます。
7 Advanced Options
A1 Expand Filesystem Ensures that all of the SD card storage is available
raspi-configを終了してリブート

再度sshで接続 moode-r640-setup.txtを実行

$ ssh pi@moode
$ cd /
$ sudo sh moode-r640-setup.txt

locale,Timazoneを設定してパッケージをインストールします。
途中コピーした設定ファイル関連で確認ダイアログが出ますが全て[デフォルト=N] ?(現在のファイルを使用)エンター vimなど必要なものがあれば追記
Hit Enter key to reboot… リブート
moode player以外の前回まで設定した内容は全て640で復元されているはずです。

moOde audio 設定

moOde Playerはクライアントのブラウザから通常通り設定し直します。

I2Sドライバーをセットして再起動
Music Sources(Library)をセット
当サイトではほかはほとんどデフォルト

Uiは特に変更は無いように見えます。


前回の補足です。
pulse.phpの音量表示はリアルタイムに反映しません。再読込するかmoOdeZのロゴをクリックすると再読込します。pulse.phpは5分で再読込します。(変更可)
simulラジオ再生中radikoに切り替えるとタイトル(ラベル)にはラジオ局表示が残っていますがON AIRボタンでデフォルトラベルを表示、現在の情報を表示します。(例外あり)

USB2.0ハブ経由の動画再生時のpulseaudioはcpu使用率100%近くなり音声が乱れます。Zeroのスペック、イーサネットアダプタなど環境に依存するようです。
またPi1BのMPDは問題なく再生可能ですがRadikoはやはりcpu使用率100%近くなってしまいます。
シングルコアのBCM2835ではこの辺が限度と思います。

当サイトのZero moOde audioは常時稼働しておりRadikoの再生開始に多少時間を要する以外は特に不足なく運用しています。
必要に応じて起動するような環境ではPi2以降で構築すれば快適と思います。