Raspberry Piのいたずら
HOME BACK

はじめに

Raspberry Piとは、「これからのIT開発者やプログラマのために開発したLinuxベースで動作する超低価格で名刺サイズのパソコンです。」とのこと。
確かにCPU(700MHz)、512MB RAM、10/100 BaseT LAN、USB 2ポートが備わって送料込みでUS$42.00なので、お買い得である。
筆者はRaspberry PiにMPD(Music Player Daemon)をインストールし、USB-DACと組み合わせてミュージック・サーバーにしたいと思っている。
このようなシステムはすでにVoyage MPDで実現しているが、本機は2階用のオーディオ・システムに組み入れるつもりである。

事前準備

今回、購入したのはRaspberry Pi本体だけであるので、セットアップするためにはいろいろなものを用意する必要がある。
主なものはSDカード、電源、USBキーボード、ケーブルであるが、SDカードとキーボードは、Raspberry Piとの相性が問題となるようである。
これらに関してはhttp://elinux.org/RPi_VerifiedPeripheralsに詳細な記述があるので参考にされたい。
しかし、手持ちの数種類のSDカードと2種類のUSBキーボードでは、どれでもOKであったので、それほど神経質にならなくても良いのかもしれない。

SDカードへの書き込みに関しては http://elinux.org/RPi_Easy_SD_Card_Setup2に詳細な記述がある。
今回、使用するOSはRaspbian “wheezy” でダウンロードしたファイルは 2012-10-28-wheezy-raspbian.zip である。

当初、Windows7PC上で Win32DiskImagerを使い、imgファイルを書き込もうとしたが、その際、このようなエラーが出てしまい、うまくいかなかった。
この原因であるが、作業用ホルダーをデスクトップ上に作り、そこへWin32DiskImagerやimgファイルを置いたからである。
ホルダー名やファイルのパスに日本語(2バイト文字)があるとエラーとなるようである。
作業用ホルダーを作る場合は、例えばC:ドライブ直下に半角英語のホルダーを作り、そこで操作するのがベターと思われる。
この原因がわからず、自宅サーバーとして使用しているFreeBSDマシンでddコマンドを使い、書き込んでいたが、あるサイトでこのエラーについてのコメントを見つけて納得した次第である。

上記に注意すれば当たり前であるが、左図のようにWindows7PC上でWin32DiskImagerを使用して問題なく書き込むことができる。

これが書き込みに使用したSDカード・りーダーとSDカードである。
近所のPCショップで購入したもので、りーダーはELECOM 、SDカードはGigastoneの4GB Class4である。

電源は秋月電子通商のACアダプター(5V1A)を使用し、百均ショップで購入したUSB延長ケーブルを切断し、電源ラインを2.1mm標準DCジャックに半田付けしたものを用意した。

Raspberry Piの電源ジャックはマイクロUSB端子のBタイプなので、これに合うスマホ用充電ケーブルも用意した。

セットアップ

OSをインストールしたSDカードをボードに装着し、HDMIケーブルをテレビに接続、USBキーボードをUSBポートに差し込み、ACアダプターをコンセントに差し込むとブートが始まる。
正常にブートされていれば、ボード上の最初に赤色LEDが点灯し、その後、黄色LEDが点灯する。
ブートが完了すると初期設定画面が現れる。

下記が初期設定画面のコピーである。

筆者のようにRaspberry Piをサーバーとして別のPCからリモートでコントロールする場合
* expand_rootfs Expand root partition to fill SD card
* change_pass Change password for 'pi' user
* change_timezone Set timezone
* memory_split Change memory split
* ssh Enable or disable ssh server
* update Try to upgrade raspi-config
あたりを設定すればOKとなる。

[expand_rootfs]
SDカードの未使用領域を使用できるようにするので「OK」とする。

[change_pass]
デフォルトはuser 'pi'、password 'rasberry'であるが、 passwordを変更できる。

[change_timezone]
Asia→Tokyoと設定する。

[memory_split]
グラフィックへ割り当てるRAMの量を指定する。
デフォルトは64であったが、筆者はグラフィックを使用しないので16とした。

[ssh]
デフォルトで「Enable」になっている。
これが「Enable」になっていないと他のPCからコントロールができない。

[update]
各種ソフトを最新のものにするので実施すべきである。

必要とする設定を行い、「Tab」キーで[Finish]へ移動し、「Enter」とすると
Would you like to reboot now? と聞かれるので
[Yes]とするとリブートされ設定が有効となる。

この画面はプロンプトから以下のコマントでいつでも呼び出すことが可能である。
$sudo raspi-config

ところでRaspberry Piには電源スイッチが存在しない。
そのまま、ACアダプターをコンセントから引き抜くのも良い気持ちがしないので
$sudo halt
とタイプし、しばらくしてからACアダプターをコンセントから引き抜いている。

当初から別のPCでコントロールする場合について

当初からRaspberry Piを別のPCでリモートでコントロールする場合、実はHDMIで接続するディスプレーもUSBキーボードも不要である。
残念ながら、筆者も後から気がついた次第であり、これが分かっていれば、余計なHDMIケーブルも買う必要がなかった・・・。

2012-10-28-wheezy-raspbianではデフォルトでsshが「Enable」になっているので、LAN内にDHCPサーバーとsshクライアントがあり、DHCP環境で割り当てられたIPが推測できる場合、Raspberry PiをLANへ接続すれば、このように当初からsshクライアントでアクセスできる。

最初にsshクライアントからアクセスすると以下のようなメッセージが出てくるので
NOTICE: the software on this Raspberry Pi has not been fully configured. Please run 'sudo raspi-config'
上述したように以下のコマンドを叩いて各種設定を行うことになる。
$sudo raspi-config

筆者はWindows7PC上でsshクライアントのTera Termを使用しており、LAN内にDHCPサーバーがあり、割り当てられるIPも分かっているので、この方法でアクセスしている。

Windows7PCから操作できるので、参考にしたWebサイトの情報をコピーしでコマンドラインにペーストできるので設定が捗る。

SSHで接続できると以下のプロンプトが現れる。
pi@raspberrypi:~$

この場合、Raspberry Piに接続されるのは電源ケーブルとLANケーブルだけである。

写真のように Raspberry Piが収納されて来たプラスチックケースにケーブル用の切り込みを入れると蓋が閉まるので文字通りのLinux Boxとなる。

IPアドレスの固定

筆者の環境ではDHCPサーバーから、いつも同じIPアドレスが割り当てられるが、やはり固定しておいた方がなにかと便利である。
このためには /etc/network/interfaces の記述を書き換えることになる。
現状の内容は以下のコマントで分かる。
$ less /etc/network/interfaces
auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

LAN接続で使用されるデバイスはeth0であるが、これに関連した iface eth0 inet dhcp を書き換える必要がある。
筆者のLAN環境では以下のようにしたが、それぞれの環境に合わせて適宜、修正してもらいたい。

iface eth0 inet static
address 192.168.0.90
netmask 255.255.255.0
gateway 192.168.0.1

書き換えるためには、以下のコマンドをタイプし、interfaces ファイルを編集する。
$sudo vi /etc/network/interfaces

次に /etc/resolv.conf を以下のように書き換える。
nameserverのIPアドレスは /etc/network/interfaces における gatewayのIPアドレスと同じである。
$sudo vi /etc/resolv.conf
nameserver 192.168.0.1

以下のコマンドでリブートし
$sudo reboot
次にsshクライアントからIP 192.168.0.90としてアクセスすると無事、接続できた。

時刻合わせ

dateコマントで現在時刻を表示させると
$date
Tue Oct 30 15:08:40 JST 2012
とかなりずれていた。

筆者の環境ではルーター(IP 192.168.0.1)がNTPでかなり正確な時刻を持っているので これに同期させてみる。
/etc/ntp.confを以下のように修正する。
$sudo vi /etc/ntp.conf
#server 0.debian.pool.ntp.org iburst
#server 1.debian.pool.ntp.org iburst
#server 2.debian.pool.ntp.org iburst
#server 3.debian.pool.ntp.org iburst
pool 192.168.0.1 iburst
赤字のコメントアウトとpool 192.168.0.1 iburstを追加した。
$sudo /etc/init.d/ntp restart
と再起動し
$ntpq -p
で確認すると
pi@raspberrypi:/etc/init.d$ ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*192.168.0.1 133.243.238.163 3 u 16 64 1 0.527 -0.025 0.036
となり、dateコマントで再確認すると
$ date
Wed Dec 26 11:02:52 JST 2012
と時刻が修正されていた。

バックアップ

Raspberry PiにRaspbian “wheezy”をインストールし、初期設定、IP固定化、時刻合わせを行い、これからMPD(Music Player Daemon)の設定に進むことになるが、その前にOSを含めたSDカード全体をバックアップしてみる。

Windows7PC上で Win32DiskImagerを使いバックアップするわけであるが、この場合も上述したようにホルダー名やファイルのパスに日本語(2バイト文字)があるとエラーとなる。
筆者はC:ドライブ直下の「rasp」というホルダーに「raspbiansetup.img」という名前でバックアップしたので、Image Fileは「c:/rasp/raspbiansetup.img」と記述した。
設定したSDカードをカードリーダーに挿入したところ、Fドライブと認識されたので、Deviceは「F」を選択した。
今回はバックアップなので「Read」タブをクリックすると作業が開始される。
バックアップしたimgファイルはSDカード全体の容量と同じとなるので注意が必要である。

書き込みはImage Fileとして「raspbiansetup.img」を選択し、「Write」タブをクリックすればOKとなる。
当然、書き込み先のSDカードの容量はImage Fileの容量以上の大きさが必要となる。
このようにして適宜、バックアップを取っておくと、設定がうまくいかなくても、その直前の状態に戻せるので安心である。

Raspberry Pi+MPDの設定

Raspberry PiにMPDをインストールしミュージック・サーバーにしました。
詳細は 「Raspberry Pi+MPDの設定」でどうぞ。

HOME BACK

Last Update 31/Dec/2012 by mac