TinyCore linuxを試してみる(3)~MPDのインストールと設定

前回は鬼門とも言うべき「NASのマウント」までたどり着きましたので、後はMPDのインストールと設定を済ませれば音出しが可能となります。もう一息です。

MPDのインストール

「TinyCore linux」はミニマムの状態で構成されていますので、必要とするものは全て自前でインストールする必要があります。
「MPD」がインストールされていないのは当然ですが、「ALSA」も組み込まれていません。

ですから、少なくともこの二つはインストールしておく必要があります。
ただし、インストールは実に簡単です。
「ミミズ工房」さんの方では「tce」コマンドだといろいろ難しいことを聞かれて、それにたして適切に選択していかないといけないので、以下のような「インストール用のコマンド」を示してくれています。

私の環境では、このやり方で何も問題もなくインストールされましたので、一般的にはこれを使うのが一番簡単かと思います。

(1)alsaのインストール

tc@box:~$ tce-load -wi alsa-config.tcz alsa-plugins-dev.tcz alsaconf.tcz alsa-dev.tcz

(2)mpdのインストール

tc@box:~$ tce-load -wi mpd-minimal

「ミミズ工房」さんも触れておられますが、「mpd-minimal」と言う割には機能が豊富できちんと「DSD」にも対応しています。
それから、MPDのヴァージョンは「Music Player Daemon 0.18.7」です。当然のことながら「最新版」ではありません。

tc@box:~$ mpd -V
Music Player Daemon 0.18.7

Copyright (C) 2003-2007 Warren Dukes
Copyright (C) 2008-2013 Max Kellermann
This is free software; see the source for copying conditions. There is NO
warranty; not even MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Decoders plugins:
[mad] mp3 mp2
[mpg123] mp3
[vorbis] ogg oga
[oggflac] ogg oga
[flac] flac
[sndfile] wav aiff aif au snd paf iff svx sf voc w64 pvf xi htk caf sd2
[audiofile] wav au aiff aif
[dsdiff] dff
[dsf] dsf
[faad] aac
[wavpack] wv
[pcm]

みたいな感じです。(--v
最後に、おそらく不要とは思うのですが、念のために「filetool.sh -b」をしておきましょう。

MPDの設定

さて、このあたりで起動用に使うUSBメモリもしくはSDカードを実運用で使う「APU1C」に差しこんで起動させてみます。

もしも上手く起動しないようだったら、「ヘッドレス化」のあたりでミスっている可能性があります。
NASのマウントは開発用のPCで大丈夫だったら、おそらく大丈夫なはずです。

ここでは、「APU1C」でも無事に「Tiny Core」が起動し、NASもマントできたという前提で話を進めます。
ただし、ここでもう一つ不安要素がありました。
それは、もしもメインシステムに組み込むならば、「hiFac Evo」を認識させないと意味がないと言うことです。
ところが、実際に組み込んで起動させてみると、デフォルトで「hiFac Evo」は認識されます。

tc@box:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: hiFace [hiFace], device 0: USB-SPDIF Audio [USB-SPDIF Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0

これは、かなり大きなアドバンテージです。
カーネルのヴァージョンを確認します。

tc@box:~$ uname -a
Linux box 3.16.6-tinycore #777 SMP Thu Oct 16 09:42:42 UTC 2014 i686 GNU/Linux

「kernel 3.12.x」以降ならばM2TECH社のドライバーが正式に組み込まれているので、「3.16.6」ならば大丈夫なのでした。(^^v
しかし、「i686」なので、32ビットカーネルです。ですから、メモリが4Gb積まれている「APU1D」に使用するのはちょっと勿体ないので、メモリ2Gb「APU1C」専用にした方がいいのかもしれません。

ここまで確認して、最終コーナーとも言うべき「MPDの設定」を行います。
「MPDの設定」は言うまでもなく、「mpd.conf」を編集することで行います。

ただし、今後のことを考えると、ホームディレクトリに関連するファイルやディレクトリは集めておいた方が管理がしやすいと「ミミズ工房」さんも言われていますので、基本はそれで行きたいと思います。

(1)ホームディレクトリ(/home/tc)に「mpd.conf」をコピーする。

tc@box:~$ cp /usr/local/etc/mpd.conf.sample ./mpd.conf

(2)「mpd.conf」を編集する。

コピーしてきた「mpd.conf.sample」は全てがコメントアウトされていますから、「ミミズ工房」さんが示してくれている記述を参考にして必要な記述をファイルの最初に追記します。
なお、私のサイトでは何故か「”」が「”」と全角に化けてしまいますので、このままコピーして貼り付けてもエラーになりますのでご注意ください。

tc@box:~$ vi /home/tc/mpd.conf
# An example configuration file for MPD.
# Read the user manual for documentation: http://www.musicpd.org/doc/user/
music_directory “/home/tc/.mpd/music”
playlist_directory “/home/tc/.mpd/music/playlists”
db_file “/home/tc/.mpd/database”
log_file “/home/tc/.mpd/log”
pid_file “/home/tc/.mpd/pid”
state_file “/home/tc/.mpd/state”
sticker_file “/home/tc/.mpd/sticker.sql”
port “6600”
follow_outside_symlinks “yes”
follow_inside_symlinks “yes”
zeroconf_enabled “yes”
audio_output {
type “alsa”
name “My ALSA Device”
device “hw:0,0” # optional
format “*:24:2”
}
audio_buffer_size “4096”
buffer_before_play “95%”
filesystem_charset “UTF-8”
samplerate_converter “Best Sinc interpolato”

(3)「.mpd」というディレクトリを作成し、そこにマウントしたNASへのシンボリックリンクを張る

上記の編集に対応する形で必要なディレクトリを作成し、マウントしたNASへのシンボリックリンクを張ります。

tc@box:~$ mkdir ./.mpd
tc@box:~$ mkdir ./.mpd/music
tc@box:~$ ln -s /music/ ./.mpd/music/

(4)MPDを起動させる

これで必要な設定は全て完了しましたので、いよいよMPDを起動させます。

tc@box:~$ mpd ./mpd.conf

ところが、私の環境では上手く起動しません。
エラーメッセージを見てみると、「ログファイルに書き込む権限がないので起動してやらないモンね!」みたいな事を言っています。

そこで、仕方がないので

tc@box:~$ sudo chmod -R 777 /home/tc/.mpd/

としてから、

tc@box:~$ mpd ./mpd.conf

とすると無事に起動しました。
クライアントPCの側から接続すると無事につながり音楽再生もできました。
目出度し、目出度しなのですが、もう一息がんばりが必要です。それは、システム起動時に「MPD」も起動するようしておく必要があります。

(5)システム起動時にMPDも起動させる

「ミミズ工房」さんは「/home/tc/start.sh」というファイルに追記する以下の方法を示してくれているのですが、私の環境では上手くいきません。

tc@box:~$ vi /home/tc/start.sh

以下を追加
sudo sleep 1
sudo mpd ./mpd.conf

そこで、仕方がないので私は「/opt/bootlocal.sh」に追記することにしました。

tc@box:~$ less /opt/bootlocal.sh
#!/bin/sh
# put other system startup commands here
/usr/local/etc/init.d/openssh start

pkill udhcpc
ifconfig eth0 192.168.0.40 netmask 255.255.255.0 broadcast 192.168.0.255 up
route add default gw 192.168.0.1
echo nameserver 192.168.0.1 > /etc/resolv.conf

/usr/local/etc/init.d/nfs-client start

mkdir /music
mount -t nfs -o rsize=8192,wsize=4096 192.168.0.20:/volume1/classic /music

sleep 1・・・追記する
mpd /home/tc/mpd.conf・・・追記する

このリストは上から順番に実施されるので、追記する順番を間違ってはいけません。
「固定のアドレスを与える」→「nfs-clienを起動する」→「/musicを作成する」→「NASを/musicにマウントする」→「MPDを起動する」と言う順番になっています。

(6)最後にバックアップ

「/home/tc」や「/opt/bootlocal.sh」を編集したので、最後に忘れずにバックアップです。

tc@box:~$ filetool.sh -b
Backing up files to /mnt/sda2/tce/mydata.tgztc@box:~$

これで再起動して普通に音楽が再生できれば、取りあえずは「Tiny Core版」の「MPDシステム」が完成です。
なお、システムは全てがメモリ上で動作しているので、音楽を聴き終われば電源をぶち切っても大丈夫なはずですが、行儀良く終わりたいときは以下のコマンドで終了できます。

tc@box:~$ sudo poweroff


4 comments for “TinyCore linuxを試してみる(3)~MPDのインストールと設定

  1. Fuji
    2015年1月26日 at 5:59 PM

    yung様、Fujiです。

    >「kernel 3.12.x」以降ならばM2TECH社のドライバーが正式に組み込まれているので、「3.16.6」ならば大丈夫なのでした。(^^v

    標記の件で質問がございます。
    1:なぜ、M2TECH社のドライバーが正式に組み込まれているのでしょうか。又、他のメーカーのドライバーは組み込まれているのでしょうか。
    2:「kernel 3.12.x」以降ならば、「kernel 3.4.xx」にもM2TECH社のドライバーが組み込まれているのでしょうか。
    の2点なのですが、宜しければご回答戴けないでしょうか。

    • 2015年1月26日 at 8:24 PM

      なぜ、M2TECH社のドライバーが正式に組み込まれているのでしょうか。又、他のメーカーのドライバーは組み込まれているのでしょうか。

      一言で言えば、それだけ要望が多かったと言うことでしょう。当然のことですが、メーカーからLinux対応のドライバが用意されていたという事情もあるでしょう。
      なお、言うまでもないことですが、Linuxは「USB Audio Class2」に対応していますから、これに対応している製品ならば何の問題もなく認識されます。
      ちなみに、Windowsは「USB Audio Class1」にまでしか対応していないので、「USB Audio Class2」対応の製品を使いたいときは専用のドライバを組み込む必要があります。

      ただし、上で述べたことは一般論です。
      もう、うんざりするほどこの問題は論議されてきたことなのですが、最後に「相性」という訳の分からない問題も存在します。
      「USB Audio Class2」対応のUSB-DACなのに、Linuxでは上手く動作しないという例は山ほどあります。
      人柱になるのがイヤなときは、既に動作している実績のある機種を選ぶのがベターです。

      ちなみに、「hiFace Evo」のドライバはきわめて特殊ですので、普通ならばLinuxでは認識されません。それが、デフォルトで認識されるようになったというあたりに、如何にこの機種が広く使用されているかが伺えます。

      「kernel 3.12.x」以降ならば、「kernel 3.4.xx」にもM2TECH社のドライバーが組み込まれているのでしょうか。

      常識的に考えれば、一度組み込んだ機能を特別な理由がない限り削除すると言うことは考えられません。ただし、個別に確認したわけではないので確答はできません。ただし、削除したというアナウンスは聞いていません。
      万万が一削除されていたとしても、自前で組み込めばいいだけなので、致命的なことにはなりません。

      • Fuji
        2015年1月27日 at 9:37 AM

        yung様、Fujiです。

        >一言で言えば、それだけ要望が多かったと言うことでしょう。

        使用されている方が多いと言う事は音質が良く、外部クロック入力、I2S接続等、機能も充実しているからなんでしょうね。実は私もhiFace Evoには興味があり導入したいと考えているのですが、現在のメインはVine mpdにラステームのDDCを接続しています。もちろんVine mpdにはM2TECH社のドライバーは組み込まれていませんし、自前で組み込むスキルもありません。そこでAPU.1D4+lightmpdならば労せずしてhiFace Evoが使用出来ると考え導入したのですが、APU.1D4+lightmpdの音質がVine mpdと比較しあまり芳しくなく、APU.1D4+lightmpdをメインに据える事が出来ず現在思案中です。

  2. osa
    2015年7月30日 at 12:13 AM

    このページのおかげでcore6.3でmpdを構築できました
    fat32(vfat)のマウントは
    sudo mount -o,utf8,ro /dev/sdc1
    で日本語文字化けを回避できましたが安全のためリードオンリーで使用
    シャットダウンはmpdクライアントからプレイリスト保存で対応しています
    ググってもsshか電源ボタンしかみつかりませんでした
    /home/tc/.profileにmpd起動とoff.shを追記

    off.sh

    #mpd.conf_playlist_dir
    #mpd_client_playlist_savename(off)
    file=/etc/sysconfig/tcedir/mpd/playlist/off.m3u
    \rm -f “$file”

    while [ ! -e “$file” ]
    do
    sleep 3
    done

    pkill mpd
    \rm -f “$file”
    #beep
    echo $’\a’
    sudo sync
    sudo poweroff

Comments are closed.