Raspberry Pi のインストール方法いろいろ
遅ればせながら、Raspberry Piを触ってみることにしました。
新しく購入した Raspberry Pi 2 model B とかなり昔のどこかの勉強会の懇親会でのじゃんけん大会に勝ってもらったものの、ずっと放置していた Raspberry Pi 1 model B(初期型。RAM 256MB) です。
本家のインストール手順の説明に従ってまずはNOOBSというツールでインストールしてみます。
ダウンロードはここから。
NOOBSとNOOBS Liteの2種類があったので、それぞれ試してみました。今回は全てRaspbianをインストールしています。
(以降、標準サイズのSDカードもマイクロSDカードも区別せずに「SDカード」と記述しています。)
NOOBS
NOOBS_v1_4_1.zipというサイズが約800MBのファイルをダウンロードします。それを展開して、その中身のファイルをSDカードのトップディレクトリにコピーします。コピーの前にSDカードをフォーマットし直せと書いてあったのですが、今回は新品をおろしたので、フォーマットせずにそのままできました。
後は、Rasberry Pi にそのSDカードを挿し、HDMIでテレビに、USBでキーボードとマウスをつないで、マイクロUSBで給電します。
テレビの画面のGUIを操作してRaspbianを選択してインストール開始。40分くらい待つとインストール完了。
インストールの時間はファイルの書き込み速度が支配的なので、速いSDカードを使うとその分早く終わります。今回はclass 4のものを使ったので遅めでした。
起動すると、テレビの画面にログインプロンプトが出るので、ID:pi, Password:raspberry でログインできます。
最初のログインでは自動的にraspi-configコマンドが実行されるので、ここでLocaleやTimezoneを設定します。
startxを実行するとX Windowのデスクトップが起動しますが、Raspberry Pi 2であってもあまり快適な速度ではないので、私はデスクトップを使うことはあまりなさそうです。
NOOBS Lite
もう一台あるので、Raspberry Pi 1のほうは、NOOBS Liteでインストールしてみました。
NOOBS_lite_v1_4.zipは22MBしかなくて、ずっと小さいです。Raspberry PiをEthernetにつなぐ以外は、NOOBSと全く同じようにインストールできます。ネットワークからダウンロードしながらファイルを書き込むことになるのですが、結局SDカードの書き込み速度が支配的なので、NOOBSのときと変わらない時間でインストールが完了しました。
固定回線のある環境では、NOOBS Liteはおすすめです。
NOOBS について
NOOBS とは New Out of Box Software のことだそうです。
ソースコードはGithubで公開されており、詳細な説明もここに書いてあります。
実際にこれはramdisk上で動作するLinuxシステムで、UIにはQtが使われいるようです。
インストール後も、NOOBSはリカバリ用のパーティションに格納されていて、起動時にシフトキーを押すとリカバリのためにNOOBSが起動するそうです。
NOOBSを使わずにRaspbianをインストール
確かにNOOBSを使うと初心者でも簡単にインストールすることができます。でも、コマンドラインでddコマンドを使うことをいとわなければ、もっと直接的にRaspbianをインストールすることができます。
Download Raspbian for Raspberry Pi
サイズが約1GBの2015-05-05-raspbian-wheezy.zipというファイルをダウンロードします。それを展開するとサイズが約3GBの2015-05-05-raspbian-wheezy.imgというファイルができるので、それをddコマンドでSDカードに書き込みます。
MacからddコマンドでSDカードに書く手順。
まずは、diskutil list コマンドでSDカードのデバイスファイルを確認します。
koba-mac:raspi koba$ diskutil list /dev/disk0 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *500.3 GB disk0 1: EFI EFI 209.7 MB disk0s1 2: Apple_HFS Macintosh HD 499.4 GB disk0s2 3: Apple_Boot Recovery HD 650.0 MB disk0s3 /dev/disk1 #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *8.0 GB disk1 1: Windows_FAT_32 boot 58.7 MB disk1s1 2: Linux 7.9 GB disk1s2
/dev/disk0と/dev/disk1の2つが見えますが、容量からdisk1のほうがSDカードだとわかります。
SDカードをアンマウントします。
koba-mac:raspi koba$ diskutil unmountDisk /dev/disk1 Unmount of all volumes on disk1 was successful
次にddコマンドを使って書き込みを行います。Macの場合はデバイス名のrawを表すrがついた/dev/rdisk1に書き込みます。
コマンドを実行する前に、デバイスファイル名が間違っていないか指差し確認してください。
sudo でddコマンドを使うのは実は非常に危険で、ここでうっかり/dev/rdisk0に書いてしまうと、Macが起動不能になります。
koba-mac:raspi koba$ sudo dd bs=1m if=./2015-05-05-raspbian-wheezy.img of=/dev/rdisk1 Password: 3125+0 records in 3125+0 records out 3276800000 bytes transferred in 260.141958 secs (12596199 bytes/sec)
書き込みには4分半かかりました。class 10のSDカードを使っています。
このとき自動で再度マウントされているので、SDカードを抜く前にもう一度アンマウントしてください。
koba-mac:raspi koba$ diskutil unmountDisk /dev/disk1 Unmount of all volumes on disk1 was successful
できたSDカードをRaspberry Piに挿して起動します。
最初の段階ではルートファイスシステムの容量は以下のように認識されていて、SDカードの容量いっぱいまで使用でできていません。これはパーティションテーブルごと書き込みをおこなったためです。
pi@raspberrypi:~$ df -h Filesystem Size Used Avail Use% Mounted on rootfs 2.9G 2.4G 335M 88% / /dev/root 2.9G 2.4G 335M 88% / devtmpfs 87M 0 87M 0% /dev tmpfs 19M 224K 18M 2% /run tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 37M 0 37M 0% /run/shm /dev/mmcblk0p1 56M 19M 37M 34% /boot
rasp-configコマンドで"Expand Filesystem"の項目を選択して実行します。
pi@raspberrypi:~$ sudo raspi-config
その後、再起動してルートファイスシステムの容量を確認すると以下のようになります。(8GBのカードを使用しました。)
pi@raspberrypi:~$ df -h Filesystem Size Used Avail Use% Mounted on rootfs 7.2G 2.4G 4.5G 35% / /dev/root 7.2G 2.4G 4.5G 35% / devtmpfs 87M 0 87M 0% /dev tmpfs 19M 224K 18M 2% /run tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 37M 0 37M 0% /run/shm /dev/mmcblk0p1 56M 19M 37M 34% /boot
raspi-configコマンドはシェルスクリプトなので、何をやっているのかを確認できます。
"Expand Filesystem"ではfdiskコマンドでrootfsのパーテョンを一度削除してから、容量一杯のサイズでパーティションを再作成し、次に起動したときに一度だけresize2fsが実行されるようにinitスクリプトに登録を行っていました。
RaspbianはRaspberry Pi 1/2 どちらも共通
Raspbianをインストール済みのSDカードはRaspberry Piの1と2のどちらでも使えます。1と2ではCPUが異なるのでカーネルは別々になりますが、ブートパーティションの中には両方のカーネルが格納されていて、ブートローダーがCPU種別を判別して適切なカーネルを選んで起動してくれます。
ルートファイルシステムは共通で、armv6向けにFPUを有効にしてビルドされています。Raspbianのgccはデフォルトでそのようなコードを生成するようにconfigされています。
まとめ
Raspberry Pi 1/2 にRaspbianをインストールするいろいろな方法を試しました。
人にすすめるならば、NOOBS Liteかな。安全で簡単なので。自分ではさくっとddで書く方法を使います。
なお、SDカードのサイズは4GBでRaspbianをインストールできますが、それだと残り容量にあまり余裕が無いので8GBをおすすめします。