MPD on Cuboxを試す(セットアップ編)

  • 投稿日:
  • by
  • カテゴリ:
  • タグ:

梅雨入りバージョンの MPD on Cubox(以下、MoCB)のデフォルトカーネルは、3.8.4-CFQだそうです。 rootfsのデフォルトは arch linuxという奴らしく、Debianではありません。 mpdは0.17.4 stableがデフォルトです。

CuBoxの前面には赤いLEDランプがありますが、MoCBがブートシーケンスに入ると点滅します。
起動が完了してもずっと点滅しているのですが、普通「点滅」というのは「途中」を表すことが多いので、ちょっと面食らいます。 とりあえず気にしないことにしましょう。

MoCBの有線LANは、デフォルトでDHCPの設定になっています。 最初、RaspyFiのノリで、ブラウザから CuBoxと思しきIPアドレスにアクセスしたのですが、どれもアクセス出来ないと言われてしまいます。

LANケーブルを抜き差しして、ルーターのIPv4払い出しテーブルでIPアドレスを特定したのですが、それでもアクセス出来ません。
ここでようやく気がついて、TeraTermからSSHでアクセスしたら無事につながりました。 Webサーバーは動かしていないのですね。
ということで、設定はSSHで入って行うことになります。

まず何はともあれIPアドレスの固定化をします。

[root@cubox ~]# vi /etc/network.d/ethernet-eth0
(略)
[root@cubox ~]# cat /etc/network.d/ethernet-eth0
#CONNECTION='ethernet'
#DESCRIPTION='A basic dhcp ethernet connection using iproute'
#INTERFACE='eth0'
#IP='dhcp'
## for DHCPv6
#IP6='dhcp'
## for IPv6 autoconfiguration
#IP6='stateless'
 
## Change for static
CONNECTION='ethernet'
DESCRIPTION='A basic static ethernet connection using iproute'
INTERFACE='eth0'
IP='static'
ADDR='192.168.1.xxx'
#ROUTES=('192.168.0.0/24 via 192.168.1.2')
GATEWAY='192.168.1.1'
DNS=('192.168.1.1')
 
## For IPv6 autoconfiguration
#IP6=stateless
 
## For IPv6 static address configuration
#IP6='static'
#ADDR6=('1234:5678:9abc:def::1/64' '1234:3456::123/96')
#ROUTES6=('abcd::1234')
#GATEWAY6='1234:0:123::abcd'

さらに /etc/hostsを編集します。

[root@cubox ~]# vi /etc/hosts
(略)
[root@cubox ~]# cat /etc/hosts
#
# /etc/hosts: static lookup table for host names
#
 
#<ip-address>   <hostname.domain.org>   <hostname>
127.0.0.1       localhost cubox
#127.0.1.1       cubox

ここで一旦再起動をかけて、指定したIPアドレスで接続できているか確認します。
OKならNASをマウントするために /etc/fstabを編集します。

[root@cubox ~]# mkdir /music
[root@cubox ~]# vi /etc/fstab
(略)
[root@cubox ~]# cat /etc/fstab
#
# /etc/fstab: static file system information
#
# <file system> <dir>   <type>  <options>       <dump>  <pass>
//192.168.1.yyy/share2/iTunes /music cifs guest,sec=ntlm,uid=root,
file_mode=0666,dir_mode=0766,iocharset=utf8,rsize=130048,wsize=4096 0 0
#debian:/public/CD /music nfs rsize=130048,wsize=4096 0 0

マウントできるか確認します。

[root@cubox music]# mount -a
(略)
[root@cubox music]# df
Filesystem                     1K-blocks       Used Available Use% Mounted on
/dev/root                        1799120     857380    850348  51% /
devtmpfs                          450780          0    450780   0% /dev
tmpfs                             516392          0    516392   0% /dev/shm
tmpfs                             516392        236    516156   1% /run
tmpfs                             516392       3824    512568   1% /tmp
//192.168.1.yyy/share2/iTunes 1953030496 1035951328 917079168  54% /music
/dev/mmcblk0p1                    119987      44739     69053  40% /media

mpdが認識するディレクトリへシンボリックリンクを張ります。

[root@cubox ~]# ln -s /music /var/lib/mpd/music/music

mpdをリスタートさせてみましょう。 梅雨入りバージョンから、ちょっと特殊な方法になっています。

[root@cubox ~]# selmpd

/etc/mpd.confを確認すると、データベースの自動アップデートがOffになっています。

[root@cubox ~]# cat /etc/mpd.conf
realtime_option {
        memlock                 "yes"
        stack_reserve           "4096"
        heap_reserve            "10240"
 
        main_priority           "OTHER:0"
        player_priority         "FIFO:52"
        decoder_priority        "FIFO:49"
        update_priority         "OTHER:0"
}
 
decoder {
        plugin "dsdiff"
        enabled "yes"           # DSD native
}
 
decoder {
        plugin "dsdiff_native"
        enabled "yes"
        dsdsampleformat "24"
        tagsupport "id3v1_encoding"
}
 
# An example of an ALSA output:
#
audio_output {
        type            "alsa"
        name            "My ALSA Device"
        device          "hw:0,0"        # optional
#       format          "44100:16:2"    # optional
#       mixer_device    "default"       # optional
#       mixer_control   "PCM"           # optional
#       mixer_index     "0"             # optional
#       use_mmpa    "yes"
#       buffer_time "2900000"
#       period_time "1400000"
        priority        "FIFO:54"
        dsd_usb         "yes"
}
#
#audio_buffer_size              "16368"
#audio_buffer_size              "8184"
audio_buffer_size              "4092"
buffer_before_play             "98%"
#buffer_before_play             "95%"
 
# An example configuration file for MPD
# See the mpd.conf man page for a more detailed description of each parameter.
 
 
# Files and directories #######################################################
#
# This setting controls the top directory which MPD will search to discover the
# available audio files and add them to the daemon's online database. This
# setting defaults to the XDG directory, otherwise the music directory will be
# be disabled and audio files will only be accepted over ipc socket (using
# file:// protocol) or streaming files over an accepted protocol.
#
music_directory         "/var/lib/mpd/music"
#
# This setting sets the MPD internal playlist directory. The purpose of this
# directory is storage for playlists created by MPD. The server will use
# playlist files not created by the server but only if they are in the MPD
# format. This setting defaults to playlist saving being disabled.
#
playlist_directory              "/var/lib/mpd/playlists"
 
(中略)
 
# This setting enables automatic update of MPD's database when files in
# music_directory are changed.
#
#auto_update    "yes"
#
# Limit the depth of the directories being watched, 0 means only watch
# the music directory itself.  There is no limit by default.
#
#auto_update_depth "3"
#
###############################################################################
(以下、略)

手動でアップデートする場合は、

[root@cubox ~]# mpc update

でOKです。

ただし、MoCBのアップデートはもの凄く遅いです。 18,000曲をデータベースに追加するのに、約13時間掛かりました。

[root@cubox ~]# more /tmp/mpd/mpd.log
Oct 27 12:07 : config: option 'enabled' on line 19 was not recognized
Oct 27 12:07 : config: option 'dsdsampleformat' on line 20 was not recognized
Oct 27 12:07 : config: option 'tagsupport' on line 21 was not recognized
Oct 27 12:07 : avahi: Service 'Music Player' successfully established.
Home directory not accessible: Permission denied
ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused
 
Oct 27 12:14 : mixer: Failed to read mixer for 'My ALSA Device': failed to attach to default: Connection refused
Oct 27 12:14 : client: No such playlist
Oct 27 12:14 : client: No such playlist
Oct 27 12:21 : client: No such playlist
Oct 27 12:28 : ffmpeg/mov,mp4,m4a,3gp,3g2,mj2: stream 0, timescale not set
Oct 27 12:28 : ffmpeg/mjpeg: mjpeg: unsupported coding type (c9)
Oct 27 12:28 : ffmpeg/mjpeg: Found EOI before any SOF, ignoring
Oct 27 12:28 : ffmpeg/mjpeg: dqt: invalid precision
Oct 27 12:28 : ffmpeg/mjpeg: only 8 bits/component accepted
Oct 27 12:28 : ffmpeg/mov,mp4,m4a,3gp,3g2,mj2: max_analyze_duration 5000000 reac
hed at 5015510 microseconds
Oct 27 12:28 : ffmpeg/mov,mp4,m4a,3gp,3g2,mj2: decoding for stream 1 failed
Oct 27 12:28 : ffmpeg/mov,mp4,m4a,3gp,3g2,mj2: Could not find codec parameters for stream 1 (Video: mjpeg): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Oct 27 12:28 : added music/Lil' Kim/Hard Core/1-10 Dreams.m4a
Oct 27 12:28 : ffmpeg/mov,mp4,m4a,3gp,3g2,mj2: stream 0, timescale not set
Oct 27 12:28 : ffmpeg/mjpeg: mjpeg: unsupported coding type (c9)
Oct 27 12:28 : ffmpeg/mjpeg: Found EOI before any SOF, ignoring
Oct 27 12:28 : ffmpeg/mjpeg: dqt: invalid precision
Oct 27 12:28 : ffmpeg/mjpeg: only 8 bits/component accepted
Oct 27 12:28 : ffmpeg/mov,mp4,m4a,3gp,3g2,mj2: max_analyze_duration 5000000 reac
hed at 5015510 microseconds
Oct 27 12:28 : ffmpeg/mov,mp4,m4a,3gp,3g2,mj2: decoding for stream 1 failed
Oct 27 12:28 : ffmpeg/mov,mp4,m4a,3gp,3g2,mj2: Could not find codec parameters f
or stream 1 (Video: mjpeg): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Oct 27 12:28 : added music/Lil' Kim/Hard Core/1-15 ____ You.m4a
Oct 27 12:28 : ffmpeg/mov,mp4,m4a,3gp,3g2,mj2: stream 0, timescale not set
Oct 27 12:28 : ffmpeg/mjpeg: mjpeg: unsupported coding type (c9)
Oct 27 12:28 : ffmpeg/mjpeg: Found EOI before any SOF, ignoring
Oct 27 12:28 : ffmpeg/mjpeg: dqt: invalid precision
Oct 27 12:28 : ffmpeg/mjpeg: only 8 bits/component accepted
Oct 27 12:28 : ffmpeg/mov,mp4,m4a,3gp,3g2,mj2: max_analyze_duration 5000000 reac
hed at 5015510 microseconds
Oct 27 12:28 : ffmpeg/mov,mp4,m4a,3gp,3g2,mj2: decoding for stream 1 failed
Oct 27 12:28 : ffmpeg/mov,mp4,m4a,3gp,3g2,mj2: Could not find codec parameters for stream 1 (Video: mjpeg): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
(中略)
Oct 28 01:27 : added music/Corduroy/Dad Man Cat/03 The Girl Who Was Death.m4a
Oct 28 01:27 : ffmpeg/mov,mp4,m4a,3gp,3g2,mj2: stream 0, timescale not set
Oct 28 01:27 : ffmpeg/mov,mp4,m4a,3gp,3g2,mj2: max_analyze_duration 5000000 reached at 5015510 microseconds
Oct 28 01:27 : added music/Corduroy/Dad Man Cat/06 Electric Soup.m4a
Oct 28 01:27 : ffmpeg/mov,mp4,m4a,3gp,3g2,mj2: stream 0, timescale not set
Oct 28 01:27 : ffmpeg/mov,mp4,m4a,3gp,3g2,mj2: max_analyze_duration 5000000 reached at 5015510 microseconds
Oct 28 01:27 : added music/Corduroy/Dad Man Cat/04 How To Steal The World.m4a
[root@cubox ~]#

RaspyFiでは3時間掛からなかったと思うのですが、なんででしょうね? H/W的にはRasberry Piより CuBoxの方が性能が高いハズなんですが、リアルタイムOSの悪影響でしょうか? 起動/終了に掛かる時間ももっさりしているし...
ただこれはNAS(nasneの外付けHDD)の調子が悪かったせいかもしれません。 もうちょっと様子をみたいと思います。

RaspyFi 1.0も完成度は誉められたレベルではありませんでしたが、MoCBはいろんな意味でアマチュアっぽいディストリビューションですね。 いろいろ弄ってチューニングしたい人には、それもまた魅力なのかもしれません。
音質については、また改めて評価したいと思います。