本記事はラズパイオーディオ Advent Calendar 2017の3日目の記事でもあります。
概要
ラズパイオーディオ用ディストリビューションの有名どころはVolumio、moOde audio1、symphonic-mpdでしょう。僕も最近までmoOdeを使っていましたが「バージョンアップ→再インストール→自分の環境に合わせて再設定」のコンボが段々と煩わしく感じてきました。その解決策として、自分の環境用の設定をRaspbian上に自動で展開するスクリプトを作成したので公開した次第です。別のモチベーションとしては、ラズパイ3向けに最適化してビルドされた、最新のソフトウェアを使いたかったというのもあります。
自分のビルドレシピがそのまま他人の環境で使えるとは思っていませんが、ラズパイ設定に関する情報をまとめた点には意義があると思います。設定の詳細は、ビルドレシピに記載してある参考文献を見てください。
想定する環境
- Raspberry Pi 3(最適化オプションの関係で3専用)
- OS: Raspbian Stretch Lite (2017-11-29)
- 音楽フォーマット:mp3, m4a, flac (DSDなし)
- NAS中の音楽をラズパイ上のMPD経由でI2S DACから出力(USBは使用しない)
- last.fmに再生履歴を保存
- MPDクライアントでMPDをコントロール(DLNA機能なし)
- I2S DAC: Hifiberry DAC+ Pro 互換ボード (msberrydac)
- ネットワーク:有線LAN接続、DHCP使用
- WindowsでRaspbianの書き込み
Windows上での前処理
Raspbian Liteダウンロード
日本のミラーサイト
- http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian_lite/images/
- https://www.raspbian.org/RaspbianMirrors
Raspbian書き込み
etcherを使う
ssh有効化
SDのルートフォルダにssh
ファイルを配置する
sshログイン情報:
- user: pi
- pass: raspberry
ビルドレシピ
設定概要
本ビルドレシピでは以下の設定を行います
- ラズパイ3向けの最適化オプションを付与して、最新のalsa-lib, libflac, mpg123, FFmpeg, MPDをソースからビルド
- MPDの処理の優先度を変更
- 起動完了後に赤色LEDを消灯
- MPDクライアントがhttp経由でカバーアートを取得できるようにnginxを導入
- mpdasで再生情報をlast.fmに送信
- スワップ、HDMI、Wi-Fi、Bluetooth、UART、オンボードサウンド、USBの電源、不必要なサービスを無効化
- 一時ファイル、ログファイルをRAM diskに配置
- GPUに割り当てるメモリを削減
- rsyslogとnginxのログ出力を削減
- 日本人向けにNTPサーバー、タイムゾーン、言語を設定
- NASの接続設定
CPUのクロックはいじっていません。
デフォルトの設定通り、負荷に応じて600 or 1200 MHzで動作します。
ビルドレシピDL&インストール
次のスクリプトでビルドレシピがDLできます。
mkdir ~/setup
cd ~/setup
wget https://raw.githubusercontent.com/estshorter/raspi-autosetup/master/setup.sh -O ./setup.sh
chmod u+x ./setup.sh
リポジトリ: https://github.com/estshorter/raspi-autosetup
DL完了後、ビルドレシピを順に実行すれば終了です。
apt
関連・FFmpeg・MPDのビルドに時間がかかるので、所要時間は1時間程度です。
setup.sh
の3度目の実行前にはNAS_USER, NAS_PASS, NAS_ADDR, LAST_FM_USER, LAST_FM_PASS
を自分の環境に合わせて設定してください。
cd ~/setup
./setup.sh
sudo reboot
cd ~/setup
./setup.sh
sudo reboot
export NAS_USER=user
export NAS_PASS='pass'
export NAS_ADDR=addr
export LAST_FM_USER=user
export LAST_FM_PASS='pass'
cd ~/setup
./setup.sh
sudo reboot
補遺
- wav専用のデコーダが欲しい場合には
libsndfile
などをインストールしてください。ffmpegでも再生できますが、そちらのほうが精神衛生上よいでしょう。 - DLNAで再生したい場合には
--enable-curl
オプションとともにMPDを再度ビルドし、upmpdcli
をインストールしてください。 - アクセスランプを消灯する方法はここに書いてあります。
upmpdcli
のインストール法も載せてあります。
まとめ
自分の環境向けの設定を、Raspbian上に自動展開するスクリプトを紹介しました。
最適化された最新のソフトウェアで音楽を楽しめます。
謝辞
参考文献の方々のおかげで、自分用ビルドレシピが完成に至りました。ありがとうございました。
-
自分のバグ報告が元で一時公開停止&ビルドレシピ配布方式に変更になったりしました。。迷惑かけた人がいたら申し訳ないです。。 ↩