2013-05-25-wheezy-raspbian のインストール (2013/06/03)

これまで Raspbian は 2か月程度で新しいディスクイメージが公開されていましたが、約4か月ぶりの公開です。 今回のイメージはカメラモジュール用のコマンドの追加、X Window System の置き換えを目指した Wayland/Weston のサンプルプログラムの同梱raspi-config の構成の変更など、ちょっとワクワクさせてくれます。

dd コマンドのデバイスの指定を間違えると最悪ハードディスクがすべて消えるなどの悲惨な結果が待っています。十分に注意して行なってください。

通常 raspbian のアップデ ートは「sudo apt-get update」「sudo apt-get upgrade」を実行するだけで大丈夫です。 私がいつも新しいディスクイメージを SD に焼いてバージョンアップしている理由は、単にディスクイメージ間の差分を確認するつもりで行なっています。 使用中の SD カードにディスクイメージを書き込んでしまうと、保存していたデータが消えてしまいます。 私自身は、いつもデータが不要になったSDカードに新しいイメージを書き込んで試しています。 また使用中のSDカードのデータも samba 経由でMac上に常にバックアップしています。


例によって MacBook Pro17 の MacOSX 10.8.3 でインストール作業した記録です。 MacOS X ではデバイス名の指定方法が異なるだけで、Linuxと同じく dd コマンドを使ってSDカードに ディスクイメージを書き込みます。以下の例は、私のMacBookでの例です。適宜読み替えてください。

$ uname -rsv
Darwin 12.3.0 Darwin Kernel Version 12.3.0: Sun Jan  6 22:37:10 PST 2013;
 root:xnu-2050.22.13~1/RELEASE_X86_64

ダウンロードしたディスクイメージは以下のサイズです。前回の 2013-02-09-wheezy-raspbian.zip が 493,587,826 byte なので 24,875,122 バイトも大きくなっています。

$ ls -l 2013-05-25-wheezy-raspbian.zip
-rw-r--r--@ 1 jun  staff  518462948  5 29 16:04 2013-05-25-wheezy-raspbian.zip

イメージのハッシュ(SHA-1)が 配布サイトに記載されている値 131f2810b1871a032dd6d1482dfba10964b43bd2 であることを確認しました。

$ shasum 2013-05-25-wheezy-raspbian.zip
131f2810b1871a032dd6d1482dfba10964b43bd2  2013-05-25-wheezy-raspbian.zip

いつものようにMacBook Pro17 にUSB接続のカードリーダを接続して、SDカードをアンマウント(デバイス名は df コマンドで確認してください)。

$ diskutil unmount /dev/disk1s1
Volume (null) on disk1s1 unmounted

SDカード のパーティションを確認。古いディスクイメージで使っていたカードです。

$ sudo fdisk /dev/disk1
Password:
Disk: /dev/disk1  geometry: 1947/255/63 [31291392 sectors]
Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: 0C    0 130   3 -    7 165  30 [      8192 -     114688] Win95 FAT32L
 2: 83  896   0   1 -  479   3  16 [    122880 -   31168512] Linux files*
 3: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
 4: 00    0   0   0 -    0   0   0 [         0 -          0] unused

zipファイルを展開します。

$ unzip 2013-05-25-wheezy-raspbian.zip
Archive:  2013-05-25-wheezy-raspbian.zip
  inflating: 2013-05-25-wheezy-raspbian.img  

$ ls -lt 2013-05-25-wheezy-raspbian.*
-rw-r--r--@ 1 jun  staff   518462948  5 29 16:04 2013-05-25-wheezy-raspbian.zip
-rw-r--r--@ 1 jun  staff  1939865600  5 26 02:59 2013-05-25-wheezy-raspbian.img

いつもの 16GBのclass 10 microSDカード への書き込みは 2.2GHzのi7のMacで2分程度です。

$ sudo time dd bs=1m if=2013-05-25-wheezy-raspbian.img of=/dev/rdisk1
Password:
1850+0 records in
1850+0 records out
1939865600 bytes transferred in 110.926988 secs (17487770 bytes/sec)
      110.95 real         0.00 user         1.36 sys

Macでは書き込みが終わると自動的にマウントされるので、ブート領域のファイルを確認します。2013-02-09-wheezy-raspbian 以前のイメージがパーティションにタイトルがついていませんでしたが、今回から boot という名前が付いています。

$ cd /Volumes/boot
$ ls -lt
total 37776
-rwxrwxrwx  1 jun  staff      137  5 25 18:58 issue.txt
-rwxrwxrwx  1 jun  staff      142  5 25 17:38 cmdline.txt
-rwxrwxrwx  1 jun  staff     1180  5 25 17:38 config.txt
-rwxrwxrwx  1 jun  staff    17808  5 25 16:58 bootcode.bin
-rwxrwxrwx  1 jun  staff     5880  5 25 16:58 fixup.dat
-rwxrwxrwx  1 jun  staff     2012  5 25 16:58 fixup_cd.dat
-rwxrwxrwx  1 jun  staff     8830  5 25 16:58 fixup_x.dat
-rwxrwxrwx  1 jun  staff  2803168  5 25 16:58 kernel.img
-rwxrwxrwx  1 jun  staff  9610248  5 25 16:58 kernel_emergency.img
-rwxrwxrwx  1 jun  staff  2688564  5 25 16:58 start.elf
-rwxrwxrwx  1 jun  staff   467960  5 25 16:58 start_cd.elf
-rwxrwxrwx  1 jun  staff  3655652  5 25 16:58 start_x.elf

新しいイメージで起動

インストールしたSDカードをRaspberry Piにセットして、再起動。dmesg を眺めてカーネルのバージョンを確認します。

2013-05-25-wheezy-raspbian

[    0.000000] Booting Linux on physical CPU 0
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.6.11+ (dc4@dc4-arm-01) (gcc version 4.7.2 20120731 (prerelease)
(crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08) ) #456 PREEMPT Mon May 20 17:42:15 BST 2013

2013-02-09-wheezy-raspbian

[    0.000000] Booting Linux on physical CPU 0
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.6.11+ (dc4@dc4-arm-01) (gcc version 4.7.2 20120731 (prerelease) 
(crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08) ) #371 PREEMPT Thu Feb 7 16:31:35 GMT 2013

2012-12-16-wheezy-raspbian

[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.2.27+ (dc4@dc4-arm-01) (gcc version 4.7.2 20120731 (prerelease)
(crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08) ) #250 PREEMPT Thu Oct 18 19:03:02 BST 2012

raspi-config

インストールしたSDカードをRaspberry Piにセットして、再起動。

最初の起動時に表示される設定画面

起動すると、最初の1回だけ初期設定を行う以下の画面が表示されます。Linuxのデスクトップが表示されると思っているとちょっと面食らいます。

上下のカーソルキーで項目を移動して、[TAB]キーで <Select> を選択、[Return]キーを押して各項目の設定画面に移動します。「sudo raspi-config」でいつでも実行できるので、後からでも設定できます。

「Expand Filesystem」と「Change User Password」で'pi' ユーザのパスワード変更は実行しておいたほうがいいでしょう。



Expand Filesystem

【重要】容量の大きいSDカードを使用しても、最初は先頭の 2GB 程度の パーティションを使うだけになっていて無駄になるため、このコマンドを 選択してSDカードの容量全体を使うように設定できます。設定後に再起動が 必要ですが、処理に時間がかかるため、ハングアップと間違えないように 注意して下さい。



Change User Password

【重要】'pi' ユーザのパスワードを変更



Enable Boot to Desktop

起動時に直接GUIな画面(Xのデスクトップを表示)に移行する場合は「Yes」 を選択します。しばらくは、コンソールでログインしてから、「startx」 コマンドで X を起動することをオススメします。



Internationalisation Options

国際化関連の「ロケール」、「タイムゾーン」、「キーボード配列」の設定です。

Change Locale
ロケールの設定です。最初は設定しない ほうがいいでしょう。 「ja_JP.UTF-8 UTF-8」を選択するとメニューなどが 日本語化されますが、最初は日本語フォントがインストールされていないため、 文字化けします。

Change Timezone
時間の設定です。日本時間は 「Asia」、「Tokyo」 と指定します。


Change Keyboard Layout
キーボードの配列を指定します。普通は「Generic 105-key (Intl) PC」 を選択して「Japanese - Japanese (OADG 109A) 」でいいでしょう。

日本語を選択するため、ここでは「Other」を選びます。

ここでは「Japanese」を選びます。

キーボードの配列は「Japanese - Japanese (OADG 109A) 」でいいでしょう。

よくわかりませんが、関係ないでしょう。

これも不要と思います。

[Ctrl] + [Alt] + [BackSpace] のキーの組み合わせで X を強制終了する事ができるようになります。「startx」で X を始めている場合には「Yes」を設定しておくと使う時があるかもしれません。


Enable Camera

カメラモジュールを接続している場合は 「Enable」にします。



Add to Rastrack
Rastrack https://rastrack.co.uk/ への登録を行うスクリプトです。直接サイトへ行ってもできるので、 特に必要ありません。



Overclock

CPU、GPU、メモリのクロックの初期設定はそれぞれ700MHz、250MHz、 400MHzですが、高付加になった場合、オーバークロックして最大CPUは 1GHz、GPU は 500MHz、メモリは 600MHz まで高速化する事が出来ます。 過度のオーバークロックはシステムの寿命を短くする可能性、SDカード (の内容)を壊す可能性があるという警告が表示されるので、「自己責任で」 ということになります。


選択すると、「オーバークロックするとRaspberry Piの寿命を縮める 可能性があります。もしオーバークロックしてシステムが不安定になったら、 もっとマイルドな設定を試して下さい。 詳細は https://elinux.org/RPi_Overclocking を参照してね。」という感じの注意書きが表示されます。


デフォルトの 700MHz から 1GHz までの選択肢が表示されます。 「0 overvolt」 は 1.2V、「6 overvolt」は電圧を1.35Vに設定することを 示します。ここで選択した設定には CPU が85%以上の負荷になると切り 替わります。CPUがアイドル状態になると元 (700MHz) に戻ります。 また、CPU の温度が 85 ℃を超えると 700MHz に戻ります。

raspi-configを使ったオーバークロック設定では、オーバークロック状態で ブートすることはないと思いますが、万一システムが不安定になってブートに失敗する場合でも、起動時にシフトキーを押し続けることで遅いクロックで起動させる事が出来るようです。



Advanced Options

その他のオプションです。


Overscan
画面の周囲をちょっと空けるオーバースキャンを設定します。 画面周囲が切れるような場合(テレビ?)に使用します。
Hostname
ホストネームの設定です。


Memory Split
CPUとGPUへのメモリの配分を変更します。ここで設定した値 (MB単位) が GPU へ割り当てられ、残りは CPU (ARM) に割り当てられます。 MB単位の数値を入力します。デフォルトは 128MB になっています。

SSH
ネットワーク越しにコマンドラインに接続する場合には「Enable」 を選択します。最初から「Enable」になっています。ネットワーク 越しに操作するだけの使い方ならば、キーボードもマウスもディスプレイ も不要です。

Update
この raspi-config の新しいバージョンがあれば取得します。


About raspi-config

このツールの情報が表示されますが、特に内容はありません。



Wayland / Weston の実行

今回のディスクイメージには X Window System の置き換えを目指した Wayland のサンプルプログラムが入っています。 Raspberry Pi Foundation CollaboraRaspberry Pi版を開発中 で、現在はまだ単なるプレビュー版で実用にはなりません。 しかし、GPUを使った高速なウィンドウの移動など、ちょっとワクワクさせてくれます。 以下のようにディレクトリと環境変数を用意すると実行できます。 左上のアイコンをクリックするとターミナルが開きます。 終了するには [Crtl] + [Alt] + [BackSpace] を同時に押すと終了できます。

mkdir /tmp/weston
chmod 700 /tmp/weston
export XDG_RUNTIME_DIR=/tmp/weston
weston

Wayland / Weston はどんなライブラリで構成されているんでしょうか。

pi@raspberrypi ~ $ ldd /usr/bin/weston
  /usr/lib/arm-linux-gnueabihf/libcofi_rpi.so (0xb6f4a000)
  libwayland-server.so.0 => /usr/lib/arm-linux-gnueabihf/libwayland-server.so.0 (0xb6f2c000)
  libxkbcommon.so.0 => /usr/lib/arm-linux-gnueabihf/libxkbcommon.so.0 (0xb6ee3000)
  libpixman-1.so.0 => /usr/lib/arm-linux-gnueabihf/libpixman-1.so.0 (0xb6e4f000)
  libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xb6e44000)
  libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6dd3000)
  libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6ca4000)
  libffi.so.5 => /usr/lib/arm-linux-gnueabihf/libffi.so.5 (0xb6c90000)
  librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0xb6c81000)
  /lib/ld-linux-armhf.so.3 (0xb6f57000)
  libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb6c59000)
  libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb6c39000)

Raspberry Pi で OpenGL ES2 のプログラムを動作させるには、X とは別のレイヤーのウィンドウを使います。 コンソールを表示していても、X を使っていても、OpenGL ES2 のプログラムはウィンドウを上に重ねるようにディスプレイに表示できますが、Wayland から LjES のデモを動作させると何も表示されません。しかしスクリーンショットは撮れるので、OpenGL ES2 より上のレイヤーに Wayland を表示しているようです。


sambaのインストール

別マシンからファイルにアクセスできる方がバックアップなど何かと便利なので samba をインストールしました。Linuxに慣れていても、最初は「smbpasswd」コマンドが無くて途方に暮れたので、これも記録しておきます。

root@raspberrypi:~# apt-get update
root@raspberrypi:~# apt-get install samba
root@raspberrypi:~# vi /etc/samba/smb.conf

sambaのユーザの追加にはこれまで「smbpasswd」コマンドを使っていましたが、wheezyでは「smbpasswd」コマンドは普通にsambaをインストールしても使えないので、代わりに「pdbedit」を使います。

root@raspberrypi:~# pdbedit -a -u pi


続く...