OSに VoyageMPD を使用した「NASの実験」を行ったが、結果が良かったので新たにパーツを購入してNASを製作することにした。
NASといっても自作PCにLinux+sambaをインストールするだけであるが、OSには「NASの実験」と同じVoyageMPDを使用することにした。
VoyageMPDはDebian系統の軽量OSでMPD専用なので、USBポートにDACを接続すれば、簡単にMusic Serverにもなる。
しかも、NASとしてHDDには楽曲ファイルを格納することになり、それを再生できるように設定すれば、Music ServerというよりもJukeboxに変身できる。
中央がMini-ITX PCでその上が真空管バッファUSB-DAC
とFETドライブ 6DJ8 シングル直結アンプ、スピーカーはFOSTEX FE83En+P800-Eで写真を撮るための組み合わせであるが、かなりまともに鳴っていた。
写真には写っていないが、アンドロイド・タブレットをリモコン代わりに
しているので、LANに接続してあれば、これだけでシステムとして完結する。
構成は下記のとおりで、新規にintel Mini-ITX M/B BOXD2500HN、1T HDD、2GB RAMのPCを導入してNASとする。
このNASにはMusic Serverの機能もあるので、USB-DAC、アンプ、スピーカーを接続して2階用のサブ・システムにする。
メインはサーバーにALIX3D2を使用したシステムであるが、楽曲ファイルはNASに格納してあるものをLAN経由で引っ張ってくることになる。
NASはWindowsPCからも共有できるので、[iTunes Media]フォルダーの場所として設定すると、iTunesでCDからリッピングした楽曲ファイルやインターネットからダウンロードした楽曲ファイルは自動的にNASへ格納されることになる。
Wi-Fiが使用できるスマホやタブレットに、MPDクライアントやSSHクライアントをインストールすればリモコン代わりにもなる。
VoyageMPDのインストールであるが、
ほぼデフォルトのままで、違いは対象PCをALIXではなくGeneral PCへと変更しただけである。
ただし、PCに光学ドライブがないので、isoファイルをUSBメモリーにコピーし、BIOSでUSBメモリーからのブートを有効にしてインストールした。
isoイメージのコピーにはWindows7PC上のWin32 Disk Imagerを使用し、
左写真では:Cドライブ直下に「mpd」というフォルダーを作り、ダウンロードした「voyage-mpd-0.8.5.iso」を書き込んでいる。
インストール後、以下について設定した。
★vi の変更を保存
root@voyage:~# remountrw
★日本時刻を設定
root@voyage:~# dpkg-reconfigure tzdata
Asia → Tokyo を選ぶ
★ .bashrc の編集
root@voyage:~# vi ./.bashrc
以下の行を追記する。
remountrw
mpd -kill
/etc/init.d/mpd start-create-dbremountrw
★IP アドレスの固定化
筆者はNASのアドレスを192.168.0.95、ルーターは192.168.0.1とした。
root@voyage:~# vi /etc/network/interfaces
iface eth0 inet static
address 192.168.0.95
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
dns-nameservers 192.168.0.1
★ntpdateによる時刻の自動修正
筆者の環境ではルーター(192.168.0.1)がかなり正確な時刻をもっているので、起動後、自動的に時刻合わせをするためにcrontabを編集した。
root@voyage:~#crontab -e
# m h dom mon dow command
#*/5 * * * * ( /etc/init.d/voyage-sync sync )
@reboot /usr/sbin/ntpdate 192.168.0.1
これはセキュリティ確保のためntpdateコマンドを使用しない方法に変更した。
#crontab -e
#@reboot /usr/sbin/ntpdate 192.168.0.1
@reboot /bin/date -s "$(curl -s --head http://www.google.co.jp | grep ^Date | cut -b 7-)"
これで事前準備が完了したので、rebootしてSSHクライアントから192.168.0.95へアクセスし、samba関連を設定する。
先ず、VoyageMPDをupdateする。
root@voyage:~# apt-get update
次にsamba関連の2つのソフトをインストールする。
root@voyage:~#apt-get install samba
root@voyage:~#apt-get install samba-common-bin
sambaで使用する共有フォルダー /Music を作る。
楽曲ファイルは /Music に格納されることになる。
root@voyage:~# mkdir /Music
sambaの設定ファイルを編集し下記を追記する。
root@voyage:~#vi /etc/samba/smb.conf
[Music]
comment = Music
read only = no
locking = no
path = /Music
guest ok = yes
force user = root
次にpasswdを設定する。今回はsambaとした。
root@voyage:/# smbpasswd -a root
New SMB password:samba
Retype new SMB password:samba
sambaを再起動して完了である。
root@voyage:~#service samba restart
Stopping Samba daemons: nmbd smbd.
Starting Samba daemons: nmbd smbd.
/etc/mpd.confの設定であるが、最初にbind_to_addressという行を探し#でコメントアウトする。
#bind_to_address "localhost"
次にaudio_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
}
/Musicに楽曲ファイルが格納されているので、 /var/lib/mpd/music ディレクトリーへリンクする。
#ln -s /Music /var/lib/mpd/music
設定が終わったら、mpdを下記のコマンドで再起動する。
$sudo /etc/init.d/mpd restart
最初にWindows7PCから接続してみる。
スタートボタンのすぐ上の検索窓に \\192.168.0.95 と入力し、次に検索されたコンピュータをクリックし、ID:root、PASSWD:sambaとタイプすると共有フォルダー Music が見えるはずである。
iTunesでNASの楽曲ファイルを管理するために[iTunes Media]フォルダーの場所を\\192.168.0.95\Musicに変更するが、iTunes上でこれが見えない場合もある。
そのため、デスクトップ上に\\192.168.0.95\Musicのショーカットを置いておき、それを選択するようにすると確実である。
筆者はALIX3D2+Voyage MPD(192.168.0.80)を常用システムとしてるので、これからNASに接続する場合、/etc/fstabの記述を変更する必要がある。
/etc/fstabを以下のように変更した。
//192.168.0.95/Music /music cifs username=root,password=samba,uid=mpd,file_mode=0644,dir_mode=0755,iocharset=utf8 0 0
最後にClient PCからGMPCでNAS兼Jukebox(192.168.0.95)にアクセスしてみるとこのようになる。
楽曲ファイルは本機の/Musicに格納されているので、楽曲を選択すると再生されることになる。
本機のコントロールはアンドロイド・タブレットからも可能で、MPDクライアントには Droid MPD Client、
SSHクライアントには Telnet / SSH Simple Client を使用した。
本機はサブ・システムに組み込んだが、
以前はNetBOOK(WinXP)にUSB-DACを接続してWindowsの再生ソフトで聴いていたが、それよりも音質は向上したように思われる。
また、本機を導入したことによりメイン・システムの音が変化したかどうかは筆者の駄耳では判別できていない。
本機はLinuxマシンとして、コマンド・ラインからの操作にも使用しているが、勘違いで一部のファイルを削除してしまった。
音楽データは全て別のマシンにコピーがあるので、最新のVoyage MPD voyage-mpd-0.10.0をクリーン・インストールすることにした。
インストール自体は上述した方法でOKであるが、IP アドレスの固定化はファイル配置が変わっていた。
編集するファイルは/etc/network/interfaces.dにあるeth0.confであり、以下のよう記述した。
# vi /etc/network/interfaces.d/eth0.conf
auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 192.168.0.95
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
dns-nameservers 192.168.0.1
なお、OSとmpdのバージョンは以下のとおりとなった。
#uname -a
Linux voyage 3.14.12-voyage-rt-rt9 #1 SMP PREEMPT RT Fri Apr 17 15:10:46 HKT 2015 i686 GNU/Linux
# mpd -V
Music Player Daemon 0.19.9
本機は音楽データの格納に使用しているが、さすがの1TBのHDDも残りの容量が少なくなってきた。
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 917G 713G 159G 82% /
udev 10M 0 10M 0% /dev
tmpfs 201M 560K 201M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1005M 0 1005M 0% /run/shm
tmpfs 1005M 18M 987M 2% /tmp
将来的には大容量のHDDに交換する必要があるが、そのHDDは音楽データ専用としたい。
OSは専用のドライブにインストールし、音楽データ用HDDをそこへマウントする形としたい。
このような形式は、すでにBanana Pro + PCM5102A DACで実現している。
問題はOS専用のドライブであるが、手持ち部品の活用と言うことで、Voyage MPD on NUC (DN2820FYKH)で使用した
2.5インチSATA→CF変換アダプターと4GB CFを使うことにした。
当然、OSはVoyage MPDをインストールするわけで、voyage.hkにアクセスしてみたが、どういうわけか繋がらない。
仕方ないので、ミラー・サイトからvoyage-mpd-0.11.0.iso (22-Jan-2017)をダウンロードしてインストールした。
インストールの方法は上述したとおりであるが、最近、本機はNASとしてのみ使用しているので、mpd関連の設定は省いた。
今回は音楽データ用HDDのマウント方法の確認が目的なので、余っていた250GB HDDを使用してみた。
250GBのHDDは
#dmesg
[ 3.139546] sd 1:0:0:0: [sdb] 488397168 512-byte logical blocks: (250 GB/232 GiB)
sdbとして認識された。
このHDDをext4でフォーマットしてマウントすることにする。
fdiskで確認すると、このHDDはFreeBSDでフォーマットされた/dev/sbd1であることが判った。
/dev/sdb1 * 63 488397167 488397105 232.9G a5 FreeBSD
fdisk コマンドで新しくパーテーションを作り直し、以下のコマンドでext4でフォーマットする。
# mkfs -t ext4 /dev/sdb1
これを/Musicにマウントするために/etc/fstabに以下の行を追加した。
/dev/sda1 /music ext4 defaults 0 0
rebootしてdf -hで確認すると
#df -h
Filesystem Size Used Avail Use% Mounted on
udev 10M 0 10M 0% /dev
tmpfs 201M 464K 201M 1% /run
/dev/sda1 3.7G 655M 2.9G 19% /
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1004M 0 1004M 0% /run/shm
tmpfs 1004M 1.7M 1003M 1% /tmp
/dev/sdb1 230G 60M 218G 1% /Music
となり、HDDは/Musicとしてマウントされていた。
なお、OSとmpdのバージョンは以下のとおりである。
# uname -a
Linux voyage 4.1.6-voyage-rt-rt3 #1 SMP PREEMPT RT Wed Jun 1 17:28:49 HKT 2016 i686 GNU/Linux
# mpd -V
Music Player Daemon 0.19.12
ここまで、やってみたが、元々の1TBのHDDに例えば/dev/Music2を作り、そこへ別のHDDをマウントする方法もあるのではと思いついた。
ただし、この方法では音楽データを格納するディレクトリーは、/dev/Music、/dev/Music2の2つとなり、一元管理はできないが、一時的な容量不足の解消にはなると思われる。
2つのHDDがどのように認識されているか確認する。
#dmesg
Direct-Access ATA WDC WD10EZRX-00A 01.0 PQ: 0 ANSI: 5
[ 2.635885] sd 0:0:0:0: [sda] 1953525168 512-byte logical blocks: (1.00 TB/931 GiB)
Direct-Access ATA ST3250318AS CC46 PQ: 0 ANSI: 5
[ 2.944640] sd 1:0:0:0: [sdb] 488397168 512-byte logical blocks: (250 GB/232 GiB)
元々の1TBHDDが/dev/sda、追加した250GBHDDが/dev/sdbとなった。
1TBHDDに新しく/Music2ディレクトリーを作成する。
# mkdir /Music2
次にsambaの設定ファイルを編集し下記を追記する。
root@voyage:~#vi /etc/samba/smb.conf
[Music2]
comment = Music2
read only = no
locking = no
path = /Music2
guest ok = yes
force user = root
250GBHDDを/Music2にマウントするために/etc/fstabに以下の行を追加した。
/dev/sdb1 /Music2 ext4 defaults 0 0
/Music2にも楽曲ファイルが格納されているので、 /var/lib/mpd/music へリンクする。
#ln -s /Music2 /var/lib/mpd/music
設定が終わったら、mpdを下記のコマンドで再起動する。
# /etc/init.d/mpd restart
左図がWin10PCから見たNAS(192.168.0.95)であり、Music2におけるファイルの出し入れも全く問題なく出来る。
こちらはmpdクライアントのgmpcの画面である。
MusicもMusic2も問題なく確認でき、もちろんMusic2に格納されたファイルもプレイできる。