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
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 と Collabora で Raspberry 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