Help us understand the problem. What is going on with this article?

Raspbianを音楽サーバ化するビルドレシピ

More than 1 year has passed since last update.

本記事はラズパイオーディオ Advent Calendar 2017の3日目の記事でもあります。

概要

ラズパイオーディオ用ディストリビューションの有名どころはVolumiomoOde audio1symphonic-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ダウンロード

日本のミラーサイト

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できます。

download.sh
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を自分の環境に合わせて設定してください。

install.sh
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上に自動展開するスクリプトを紹介しました。
最適化された最新のソフトウェアで音楽を楽しめます。

謝辞

参考文献の方々のおかげで、自分用ビルドレシピが完成に至りました。ありがとうございました。


  1. 自分のバグ報告が元で一時公開停止&ビルドレシピ配布方式に変更になったりしました。。迷惑かけた人がいたら申し訳ないです。。 

estshorter
エンジニア寄りの研究者
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした