Configure HS-210D as an MPD box

本来 NAS である QNAP HS-210D をミュージックプレイヤー (MPD box) にしてしまおうというネタです。USB-DAC に直接つないでしまうのです。IO DATA HFAS1 と同じジャンルですね。なぜ素直に HFAS1 にしないか。HFAS1、作り込みよさそうですね。でもこれは完全にブラックボックス家電品。中身は全く触れなくて、今 1TB 程度たまった音楽や写真、ビデオなどを同じ ext4 ファイルのまま nfs mount してお引越しなんて不可能。いやまずお値段が桁違いという大人の事情が…

January 14
Added English summary at the end

遠回り
今まで母艦サーバーにメディアプレイヤーのための NAS の仕事をさせていました。ツレアイは毎日 U2 を鳴らすし、これでもう5年近く稼働している母艦サーバーの仕事を分散することを考えました。同時にプレイヤーの音を良くするための投資の結論が HFAS1 のようなコンセプトでした。調べてみると、QNAP では SSH できて linux box として使える、Optware というシステムがあって、ソフトウェアのパッケージを導入できる、そしてパッケージのなかに MPD があることまでわかり、HS-210D を購入したのでした。ところが購入していざ取り掛かってみると、Optware は OpenSSH issue やらでサポート中止!仕方ないので怪しい全くわからない中国語サイトから dropbox して何とか Optware_0.99.163.qpkg をゲットしてインストール、続いて MPD をインストール、起動・終了スクリプトも書いて動くようにしました。で、この MPD が古い (ver 0.15.15)!ALSA も非対応で OSS から鳴らします。dsd はもちろん、PCM ハイレゾもだめ。仕方ないので開発環境も整えて MPD をソースからコンパイルし始めました。最新の ver 0.19.12 は開発環境が!古くて玉砕。dsd 対応に定評のある ver. 0.17.6 の方はコンパイルできて、ハイレゾも dsd も ALSA で鳴らすことができました。どうにもならなかったのが ffmpeg のライブラリが古くて mp3 が再生できないことでした。子供たちがダウンロード購入したものに mp3 も少しありますし、またいろいろ調べ始めてみると、そもそも Optware 自体が 2012 年頃で開発が止まっていて、いま開発が行われているのは Entware の方でした。
Optware is obsolete.

Entware の導入と MPD のインストール
やっと本題です。スミマセン。Linux 中級以上の方が対象です。
このパッケージをとってきて、Web 管理画面の App Center を起動。右上の方の小さなボタンで manually install します。Entware に Web UI はありません。SSH で入り、コンソールを叩きます。Entware では ipkg ではなく opkg コマンドです。
# opkg update
# opkg install mpd
インストールは以上。
# opkg install nano diffutils
などもほぼ必須でしょうか。Emacs がなかったのですが、joe があるようですね。
作業環境のコンソールですが、これは本物 sh や bash ではなく BusyBox です。コマンドのパラメータなどが若干異なるのでこちらが役に立ちます。Optware も Entware も、環境が chroot /opt していると思うと良いです。
次に /opt/etc/mpd.conf の編集。管理人の環境ではこのようになりました。コメント行を剥ぎ取ってみると

[~] # grep ^[^#] /opt/etc/mpd.conf
music_directory "/opt/var/lib/mpd/music"
playlist_directory "/opt/var/lib/mpd/playlists"
db_file "/opt/var/lib/mpd/database"
user "mpd"
group "audio"
gapless_mp3_playback "yes"
input {
plugin "curl"
}
audio_output {
type "alsa"
name "ALSA Card 1"
device "hw:1,0"
dsd_usb "yes"
}

となりました(タブは再現されていない様子)。ALSA Card 番号は環境と言うか USB-DAC によって変わるようです。
# cat /proc/asound/cards
してご自分の環境をお確かめください。
次に作業ディレクトリの用意。上記の例では
# mkdir -p /opt/var/lib/mpd/music
# touch /opt/var/lib/mpd/{database,playlists}
してあるということです。
またこの様なデーモンが root 権限で走るのはヤバイので、上記の例ではあらかじめ group audio, user mpd が作ってあるということです。Web UI でやると、平ユーザースペースに GID, UID を割り当てられてしまうのでだめです。コンソールから addgroup, adduser しましょう。
# chown -R mpd:audio /opt/var/lib/mpd
も忘れずに。
楽曲データはもちろん /opt/var/lib/mpd/music 以下に配置します(たいがいシンボリックリンク?)。mpd がデータのパーミッションで跳ねられないように確認を忘れずに。
ところで Entware のサイトはルーマニアでしょうか。管理人の環境では全然つながらないのです。上記の作業は日曜日にブツを職場に持ち込んで行いました。上記のパッケージをダウンロードできない環境では作業不可能です。機会があればまたブツを持ち込んで joe を入れようっと。
ネットワークコンピューター (SAMBA server) としては挙動不審です。エクスプローラからすぐ見えなくなります。運良く見えたときネットワークドライブに割り当ててしまうと良いようです。または強制的に
\\サーバー名\\homes\ユーザー名
などを割り当てるしかないでしょう。

なんだかなあ。HS0210D、コストパフォーマンスは抜群ですが、汎用コンピューターにすればこんな苦労は全くありませんでしたね。でもなかなか思うようなベアボーンが見つからないのも事実です。
肝心な音はなかなか良いと思います。高音の分解が良くなって、音がほぐれてステレオイメージがきれいに展開されるようになりました。Mubox のときと同じで、鳴らし始めとフォーマットが変わったときに必ず文字化けならぬ音化けしてビンビンとなります。pause すると直るところも Mubox と同じ。でもこれは USB-DAC (AV center) との相性問題もあると思います。鳴らせるだけでも良しとしましょう。

SUMMARY
Here’s how I installed MPD to QNAP NAS model HS-210D.

1. Get Entware and install MPD
QNAP used to support the package management system Optware, but it’s obsolete. Entware is the successor, although it’s NOT officially supported yet. And hence you’ve got to get this package, open App Center and evoke “install manually”. It then connects to its own site and does the rest of the job. Entware does NOT have WEB interface and you next get connected via SSH and proceed. Log in as admin and install mpd.
# opkg update
# opkg install mpd
That’s it. You would also want to install mpc and nano (editor). Emacs was not out there.

2. Preparation of user and group
If you don’t want to run mpd with root privilege, prepare the dedicated user and group and define them as the above /opt/etc/mpd.conf. The example above shows it runs with mpd:audio privilege. WEB UI prepares user/group in the plain user space. If you don’t want to let it mess up the plain user space, addgroup and adduser manually and assign GID and UID in the system user space (GID < 100, UID < 500).

3. Preparation of the working directory and files
If you follow mpd.conf the above, prepare as follows
# mkdir -p /opt/var/lib/mpd/music
# touch /opt/var/lib/mpd/{database,playlists}
# chown -R mpd:audio /opt/var/lib/mpd
Put your library under /opt/var/lib/mpd/music or make symlinks there. Make sure that mpd has the privilege to read your library. Directories must have x (drwxr-xr-x) and files must have r (rw-r–r–) bit.

4. Check out your ALSA card
audio_output {} part in mpd.conf depends on your USB device. Check out the card number by;
# cat /proc/asound/cards
and configure
device “hw:X,0”
line where X is your USB card number.

5. Start/Stop script
When you’ve done
# /opt/etc/init.d/S89mpd restart
or simply reboot the whole system.

That’s it. Good luck.

コメント

  1. […] (MPD) が馴染まないことです。そういえば当家のシステムの紹介がここで止まっていた。今は Khadas VIM3L HTPC Kit に MPD […]

タイトルとURLをコピーしました