Network PlayerをRaspberry piで造る(其ノ2)

Raspbian StretchにJRMCをインストールするための準備

前回はRaspberry Piのセットアップをおこないました。
今回はいよいよ「JRMC」のセットアップをおこないます。
すこしテクニカルな記事となりますので、よくお読みになってチャレンジしてください。
※2018/5/9, rootファイル移動時のコマンド表記と、画像の位置を修正しました。

Raspbianのroot(/)以下のファイルシステムをSSDに移す

JRMC」はFLACなどの楽曲ファイルをDACに送り出すためにLiner PCMデータに展開かつ変換を行います。 その際に一時的なワークファイル領域やSwap領域としてmicroSDカード上の領域を使用します。

元々がHDDベースのLinux用のSoftwareをRaspberry Pi用にARM7に対応したObjectを作成しているため仕方がありませんが元々頻繁なアクセスに強くないmicroSDカードが心配になります。フロントパネルのアクセスLEDの点灯状況を観察していると激しくmicroSDにアクセスしているような状況が続きます。 これでは、microSDの耐久性やアクセス速度の面でも不利なので、Cold boot(電源ON時のboot)時のみmicroSDカードにアクセスし、それ以降はPC-Linuxなどと同じようにSSD(HDD)上で動作するようにrootファイルシステムをSSD上に構築します。

構築作業にはRaspberry pi.orgやJRiverなどのサイトからいろんなupdateをdownloadすることが必要ですのでinternet接続は必須です。 また、これらの作業はNWT01に接続したHDMI-DisplayとK/B, mouseで行ってもよいのですがFontの関係で字が見づらいのでSSH経由のTerminal(WindowsPC上でTera Termを使用しています)で行うほうが便利です。しかし「JRMC」はX-Window上で動作しますのでJRMCのinstall作業だけはSSH経由ではなくHDMIディスプレイとNWT01に接続したキーボード、マウスを使用して「LXTerminal」上で行わなう必要があります。SSH経由ではError 404となって「JRMC」のインストールが正常終了しません。

A)SSDが接続されているか確認する

以下の作業はSSH経由でloginした端末上でも、もしくはHDMIディスプレイとNWT01に接続したK/Bとmouseを使用してLXTerminal上でもどちらでも実行できます。

SSH経由のloginには先の章で設定した、hostnameもしくはIPアドレス、User名:pi、Pass Wordを使用して下さい。「LXTerminal」を使用する場合ログインは不要です。

~$ lsusb ↵

上記のコマンドを入力することで、現在Raspberry Piに接続され、認識されているUSBデバイスのリストが表示されます。

USB-SATAインターフェイスとして「REX-U30ST3」を接続した場合にはChipの製造元ASMediaのUSB to SATA bridgeが認識されます。 もし表示されていない場合はUSB-SATA brigeかSSDに問題がありますので何度かUSBコネクタを抜き差しする、SATA bridge,SSDの電源を調べるなどの対応策を実施し、lsusbコマンドを何度か実行してみて下さい。 それでも表示されない場合は別のUSB-SATA bridge, SSDを使用してみて下さい。

~$ sudo fdisk -l ↵

/dev/ram0から/dev/ram16 など4MiBずつのRAMディスクなどに続いて、Disk /dev/sda, Device /dev/sda1 などが表示されていればSSDはRaspbian(OS)に認識されています。後でformat、partition作成を行いますのでこの時点では容量は無視しておいて下さい。

~$ lsblk ↵

microSDカードはmmcblk0として認識されmmcblk0p1, mmcblk0p2というふたつのpartitionに分割されており、mmcblk0p1の方は「/boot」というdirectoryがあり、mmcblk0p2のほうには「root directory」があります。今回 micoroSDは mmcblk0p1「/boot」のみをcold boot時に使用し、それ以降はSSDのみを使用するように設定を変更します。

B)SSD上に partitionを作成し、ext4 formatでフォーマットする

SSDの領域にパーティションを作成します。下記のコマンドを実行してください。

~$ sudo fdisk /dev/sda ↵

fdisk」が起動するとcommandの入力を促す「Command(m for help )」が表示されます。「m ↵」と入力するとcommand の種類と意味が表示されます。

最初に既存のパーティションを削除しておくために「d ↵」を入力します。 Windowsなどで複数のパーティションに分割して使用していた場合には、その数に相当する回数分、「d ↵」を入力しすべてのパーティションを削除しておきます。

次に「n ↵」を入力し新しいパーティションを作成します。先頭ブロック番号やサイズ、終了ブロック番号などの入力を次々と求められますが、デフォルト値で問題がなければ「」のみをキーインし、最後に「w ↵」(Write・書込みコマンド)でパーティション テーブルの内容をSSDに書き込んでおいて下さい。

本コマンド終了後、新しいpartition tableを認識させるためにrebootを行って下
さい。

B-i)SSDをext4 でフォーマットを実行する

パーティションテーブルを作成したSSDを、Raspbian(Linux)のファイルシステムとして使用できるように「ext4 format」でフォーマットします。

~$ umount /dev/sda1 ↵

上記のコマンドは必要がない場合もありますが、念のために入力してください。

~$ sudo mkfs.ext4 /dev/sda1 ↵

上記のコマンドでSSDを「ext4 format」します。
最初に実行してよいかの質問(Proceed anyway? (y,N))がありますので「y ↵」を入力して下さい。Format完了後、再度「~$ lsblk」で確認をしておいて下さい。

B-ii)ファイルシステムをmicorSDからSSDにコピーを実行する

下記コマンドを実行し、/tmpの下にusd、ssdというディレクトリを作成します。

~$ mkdir /tmp/usd /tmp/ssd ↵
注) Mkdirと/tmpの間、usdと/tmpの間はスペースが必要です。

続けて以下のコマンドを入力します。

~$ sudo mount /dev/mmcblk0p2 /tmp/usd ↵
~$ sudo mount /dev/sda1 /tmp/ssd ↵
~$ (cd /tmp/usd; sudo tar --backup -c *) | sudo tar -C /tmp/ssd -xv ↵

上記コマンドより、ファイルシステムをmicroSDからSSDにcopyします。
最大で10分程度要します。

B-iii)起動時に読み込むシステムのパーティションを変更し、SSDから読み出すように変更する

コピーが終了した後、失敗しても元に戻せるよう「cmdline.txt」ファイルのバックアップを作成します。

~$ sudo cp /boot/cmdline.txt /boot/cmdline_ORG.txt ↵

次に、boot用のdirectoryを作成します。

~$ mkdir /tmp/boot ↵
~$ sudo mount /dev/mmcblk0p1 /tmp/boot ↵

B-IV)cmdline.txtをテキストエディタで編集し、root directoryの場所を/dev/sda1に変更する

元の「root=」以下の部分をroot=/dev/sda1に変更します。

B-V)ファイルシステムを同期させ、再起動をする

~$ sync ↵
~$ sudo reboot ↵

C)再起動後の確認

下記のコマンドを実行し、状態を確認します。

~$ lsblk ↵

上記コマンドを入力後「/dev/sda1」のパーティションに「/」が移動し、「mmcblk0p2」には何も割り当てられていないことを確認してください。

shutdown,電源OFF(HDMIディスプレイの左上のRaspberryアイコンからShutdownを選択)することにより「/boot/config.txt」に「dtoverlay=gpio-poweroff,gpiopin=5 ↵」が記述されていれば電源がOFFになります。

電源OFF後、microSDカードはそのままにして、USB-SATA bridge(SSD)を外してNWT01を起動させてみてください。HDMIディスプレイの左上隅に赤いRaspberryアイコンが3個並んだ状態で止まってしまいます。microSDカードの「/boot」だけの場合は、ここまででstopしてしまいます。

D)sambaの設定

音楽ファイルやジャケットのjpegファイル、その他のファイルをWindowsPCからcopyするためにsambaの設定を行います。USB-SATA bridge(SSD)を通常通りに再度接続し、NWT01を再起動して下さい。

再起動後SSH経由でWindowsPCからloginした後、下記を実行します。

~$ sudo apt-get update ↵
~$ sudo apt-get install samba ↵
※sambaはinstall済みのようですが念のためにupdateしておきます

次に、sambaの設定ファイルに追記し、WindowsPCから「/home/pi」にアクセスできるよう設定します。

~$ sudo nano /etc/samba/smb.conf ↵

コンフィグファイルが開けば、下記を最後に追加して上書きします。

[pi]
     path = /home/pi
     read only = no
     guest ok = yes
     force user = pi

smb.conf更新後、下記を入力しsmbdをrestartさせます。

~$ sudo service smbd restart ↵

次に、WindowsPCでExplorerを起動しIPアドレスを入力します。下図のようにNWT01のフォルダが表示されればsambaは正しく動作しています。

資格情報を要求された場合はユーザ名としてpi、パスワードとしてRaspbianインストール後に設定したpasswordを入力して下さい。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です