2016年11月13日日曜日

RaspiをJPLAYのNASにする

NAS : RaspberyPi 2B(上のケース)とUSB-HDD(下の黒い箱) 

これまでNASを使ってこなかった。それは、PC内臓HDDの方が直結で音質の劣化が少ないと思ったからだ。

しかし、JPLAYデュアルで、ホームネットワークとJPLAYネットワークを分離することで、劇的に音質が向上することがわかった。

ネットワークを別にすることが高音質の重要な要素だったのだ。

そこで、今回、楽曲も内臓HDDから外部のNASへ移行してみることにした。

NASを購入しようかと思ったが結構高価だ。

そもそもNASはLinuxにHDDが付いたPCであり、中古のPCにHDDを付ければ簡単に構築できるはずだ。

そこで、最近出番がなくなり寂しい思いをしていた(であろう)RasperryPiをNASに仕立てることにした。

幸いに、MnimServerのHPにRaspberryPi用のMnimServerがあり、メディアサーバーにも簡単にできそうだ。

HDDは、手元にあった玄人志向のHDDケース(USB2.0)にWDの3TBHDDを搭載したUSB-HDDを使う。


1.USB-HDDをフォーマットする

LINUXでHDDを使う場合、Windows標準フォーマットであるNTFSが使えない。

そこで、LINUXの大容量HDD用フォーマットである ext4 でフォーマットしようかと考えたが、ネットにWindowsで認識されない場合もあるとか書いてある。

結局、WindowsでもLinuxでも使える  exFAT フォーマットを使うことにした。これだとMacでも読める。

USB-HDDをUSBでWindowsPCに繋ぎ、「ディスクの管理」でフォーマットする。

その際、ディスクのラベルを「raspi」にしておく。

2.MicroSDカードをフォーマットする

4GBのMicroSDカードを用意し、SDFormatterでフォーマットする。

再利用の場合で元の容量と合ってない場合は、オプション設定で、論理サイズ調整をONにしてフォーマットすると元の適正なサイズに戻る。




3.RaspberryPiにOSをインストール

コマンドラインで作業および動作させるので、RASPBIAN JESSEIE LITE を使う。
ディスクトップを使いたい場合は、RASPBIAN JESSEIEをダウンロードする。

RaspberryPiのHPからダウンロードし解凍したら、イメージをDDWin(管理者)でMicroSDカードに書き込む。




3.SDカードから起動しIPアドレスを確認する

RaspberryPiに、LANケーブル、SDカードを挿入し、HDMIでディスプレイに接続し、電源を接続してRASPBIAN JESSEIEを起動する。

LOGIN  : Pi
PASSWORD : Raspberry
を入力し、コマンド、プロンプトが出たら、

$ ifconfig

でルーター(DHCPサーバー)から割り振られた eth0 のIPアドレスを控えておく。


4.SSHでログインし設定をする

Windowsで作業をする方が断然楽なので、RaspberryPiをディスプレイから外し、WindowsからSSHで作業を行う。

Puttyに先ほど調べたIPアドレスを入力しアクセスする。




ここからはこちらのHPを参考にさせていただいた。
http://qiita.com/konnobu/items/54b2e4b8770c8b0b2bcd


5.USB-HDDをマウントする

RaspberyPiでexFAT が扱えるように以下のファイルをインストールする。

$ sudo apt-get install exfat-fuse exfat-utils

USB-HDDをマウントするためUUIDを調べる。

$ sudo blkid


/etc/fstabにマウント設定を書き込む

$ sudo vi /etc/fstab


 UUID="AA41-69F2"        /mnt/hdd/raspi    exfat-fuse    async,auto,dev,exec,gid=65534,rw,uid=65534,umask=007    0       0

再起動。
$ sudo reboot

再起動後、マウントできているか確認。

$ sudo df



6.samba をインストールする

$ sudo apt-get install samba

sambaの設定
$ /etc/samba/smb.conf

[pi]
   comment = RaspPiNAS
   path= /mnt/hdd/raspi
   read only = No
   guest ok = Yes
   force user = pi

sambaの起動
$ sudo samba service samba restart

7.Avahiをインストールする

RaspberryPiへのアクセスをIPアドレスではなく、ホスト名でできるようにする。

インストール
$ sudo apt-get install avahi-daemon

設定
$ sudo vi /etc/hostname
raspberrypi → raspinas に変更した。

$ sudo vi /etc/hosts
127.0.1.1      raspberrypi →  raspinas に変更


これでWindowsのネットワークにコンピューター「raspinas」が表示される。

共有ディレクトリー「Pi」をネットワークドライブ(Z)に割り当てておく。

普段は使わないが、Windowsから楽曲をコピーする際に使用できる。



これで、NASの完成だ!


7.NASのIPアドレスをJPLAYのネットワークに変更する

(追記 H28.11.16)
NASのIPアドレスを変更する前に(インターネットにつながっている環境で)、
「9.JAVAのインストール」を先に実行しておく。


さてNASは完成したが、このNASのIPアドレス192.168.11.10は、ホームネットワークのルーターから割り振られたもので、192.168.11のホームネットワークに属している。

しかし、JPLAYは音質向上の為ホームネットワークから分離させて192.168.2のネットワークを使っている。

JPLAYのNASとして使うためには、NASのIPアドレスをJPLAYのネットワークに変更する必要がある。192.168.2.10を固定的に設定する。

ここで再び、SSHでアクセス

従来、ネットワークの設定は、/etc/network/interfaces であったが、RaspberryPiのJessieでは、/etc/dhcpcd.conf に変更されているので注意が必要だ。(最初これがわからず、何度設定しても変更できなかった。)

/etc/dhcpcd.conf に以下のように書き加える。

$ sudo vi /etc/dhcpcd.conf
interface eth0
static ip_address=192.168.2.10/24
static routers=192.168.0.1
static domain_name_server=192.168.0.1

JPLAYのネットワークはルーターやインターネット等に接続しない閉ざされたネットワークなので、ルーターやドメイン名は変更しない(しなくても問題は起きない)。

これで、JPLAY用のNASが完成した。


次は、このNASをJPLAYのメディアサーバーにする。


8.Minimserverのダウンロード

Windowsで minimserver HPより以下のファイルをダウンロードする。
http://minimserver.com/downloads/index.html
WindowsPCのUSBに上記SDカードを差し込み、エクスプローラーで、BOOTドライブを探し、ダウンロードしたファイルをコピーしておく。


9.JAVAのインストール

WindowsのSSHから raspi にログインし、

JAVAをインストールする。
$ sudo apt-get install oracle-java7-jdk

インストールの確認
$ java -version
java version "1.7.0_40"
 Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
 Java HotSpot(TM) Client VM (build 24.0-b56, mixed mode)

10.MinimServer on the Raspberry Piのインストール

Windowsのエクスプローラーの「ネットワーク」で ¥¥raspinas¥pi にアクセスし、Windowsからraspinas の中を開き、以下のファイルをコピーする。

MinimServer-0.8.4-linux-armhf.tar.gz

今度は、SSHでraspinasで上記ファイルを探し、$ /home/pi にコピーする。

インストール
ディレクトリを移り、tarで解凍すると、minimserverディレクトリーが作成される。
$ cd /home/pi
$ tar xf MinimServer-0.8.4-linux-armhf.tar.gz


minimsserverの起動
$ minimserver/bin/startc

スタートアップに登録され次回OS起動時にmininserverが自動的に起動する。

楽曲のあるディレクトリを聞いてくるので、
/mnt/hdd/raspi と入力

全楽曲のスキャンが開始される、結構時間がかかる

なお、SSHでアクセスしている場合、SSHのウインドウを閉じた時点でminimsserverも終了するので、これを防止する為、以下のコマンドを実行しておく。

minimserver/bin/startd


スキャンが終わると、WindowsのUPNP ControlPonitにMininserverが現れる。

以上、手持ちのHDDとRaspberryPiでJPLAYのNAS兼メディアサーバーを作ることができた。

全て手持ちの機器で作ったので、掛った費用は0円。


11.NASに全楽曲をコピーする

この後、空っぽのUSB-HDDに、PC内臓HDDの全楽曲をコピーするのだが、2TB以上あるので、Windowsからネットワークを使ってUSBに転送すると相当に時間がかかることが予想される。

そこで、少しでも早くコピーするため、USB-HDDの中のHDDを取り出し、WindowsPCのSATAに直結し、FastCopyでコピーした。

転送速度は100MB/s超あたりで推移。それでも終了まで5時間以上は掛りそう。


最終的には6時間弱かかった。転送速度は平均100MB/s。

12.JPLAYでNAS再生!

JRIVERでRASPINASの楽曲をJPLAYStreamerで再生中。

一聴して断然静かになった。ネットワークを分けた成果があったようだ。

4 件のコメント:

  1. こういった形のNAS的運用は、データの管理がしやすい点で有利ですよね。USB HDDでもそれほどノイズを気にしなくてよいですし。Control PCとはクロスケーブル接続ですね。こうなると、Control PCはやはり音楽専用にしたいですよね。

    返信削除
    返信
    1. コマンドラインでのmninserverは、デフォルトでは、waveしか再生しないようです。
      configを見てもディスクトップとは違い再生フォーマットの記述がありません。mnin watchが必要のようですね。

      削除
    2. 不思議ですね。僕の環境では問題なく認識されます(apuとatom)。
      ラズパイ用のMinimServerのディフォルトは違うのですかね。

      root@voyage:~# tar xf MinimWatch-0.8.4-linux-x86.tar.gz
      root@voyage:~# sh minimwatch/bin/startc
      >select MinimServer[Lenovo-PC] <---サーバ名を指定
      >props
      >prop stream.transcode=flac:wav, dff:dopwav, dsf:dopwav
      >props
      >exit

      で多分OKだと思います。
      http://minimserver.com/ug-control.html#Controlling%20MinimServer%20using%20console%20commands
      http://minimserver.com/ug-properties.html#Properties%20reference
      あたりに解説がありますが、分かりにくいですね。

      dsd再生ならassetもお勧めですね。こっちの方が音がいいかもしれません。

      削除
    3. yoさん
      ありがとうございます。設定方法がわからず諦めてました。今夜やってみます。

      削除