Raspberry Pi のまとめ (2012/11/01)
2012年10月15日以降の出荷分から Raspberry Pi (Model B) のメモリが 256MB から 512MB に増え、10月30日に Raspberry Pi の メモリ 512MB に対応したファームウェアを含む Debian派生の Linux ディストリビューション、Raspbian の新イメージ 2012-10-28-wheezy-raspbian が公開されました。Raspberry Pi Model B の メモリ 512MB 版をサポートしたマイナーなリリースだそうですが、メモリ 512MB 版ラズベリーパイを入手した人には重要なリリースです。自動的にメモリー容量を把握して64MBをGPU、残りをARMに割り当ててくれます。 また、raspi-config から GPUへのメモリ割り当て量を自由に設定できるようになっています。
以前に比べると入手もし易くなって、ちょっと落ち着いてきた感があり、ハード、ソフトともに、しばらく大きな変更も無さそうなので、起動までの手順に関して「Raspberry Pi メモ」のあちこちに書いてきたことを2012-10-28-wheezy-raspbian 用に改訂してまとめてみました。
Raspberry Pi のスペック
Raspberry Pi は子供たちにコンピュータサイエンスと電子工学の基礎を学んでもらうために ケンブリッジ大学のコンピュータ研究所 にある Raspberry Pi Foundation が開発した超小型で非常に安価($35)なコンピュータです。
Raspberry Pi (Model B) | |
---|---|
CPU | Broadcom BCM2835 (ARM1176JZFS, 700MHz - 1GHz) |
GPU | Dual Core VideoCore IV (OpenGL ES 1.1/2.0) |
メモリ | 512MB (2012/10/15以前は256MB) |
USB | 2ポート |
NET | 10/100BaseT Ethernet |
サイズ | 85.60mm x 53.98mm x 17mm |
電源 | 5V 700mA |
消費電力 | 3W (ワットチェッカー による実測値) |
用意したもの
Raspberry Pi自体はCPUとメモリ付きのマザーボード単体と同じなので電源やケーブルを用意する必要があります。HDMI入力可能なテレビとスマートフォン用AC充電器、SDカードがあれ動作させることができます。以下は私が用意したものです。
- Raspberry Pi Model B 本体 私が購入した時は 3,264円(送料込み)でした。
- USB接続SDカードリーダ(microSDHC×2枚同時挿入可) 私がSDカードへOSを書き込むために使った MacBook Pro17 にはSDカードスロットがないため、USBのコネクタの中にマイクロSDカードを2枚挿入できるSDカードリーダを用意しました。
- 16GB microSD (class10) Raspberry Pi はSDカードから起動するため、Linuxのイメージを書き込む必要があります。最低2GBですが、書き込みの速い class10 の16GBを用意しました。
- USB ACアダプタ(2000mA,2ポート) Raspberry Pi の電源は5V 700mA 必要なので、USB接続機器の分の余裕を見て2AのACアダプタを購入しました。
- USB-MicroB ケーブル(1.8m)Raspberry Pi側の電源コネクタは USB MicroB 形式なのでUSB Aオス-Bマイクロのケーブルを用意しました。
- HDMI-DVI アダプタケーブル(3.0m) HDMIの入力可能なテレビが近くにないのでPC用の液晶モニタに接続するためにHDMIとDVI-Dの変換ケーブルを使って接続しました。
- スーパーフラットLANケーブル
- USBキーボード,マウス切替機 キーボードとマウスをRaspberry PiとデスクトップPCの2台で共有するための切替機です。Raspberry PiのUSBコネクタを2つとも占有する事がないので便利です。ウチでは Raspberry Pi (初代) からのUSB給電だけで切替機、マウス、キーボードが問題なく動作しています。
- USB キーボード
- USB マウス
- 液晶モニタ (1600x1200、1280x1024)
2012-10-28-wheezy-raspbian のインストール
すでにRaspberry Pi で Raspbian を使っていれば、次のコマンドでも新イメージと同じ環境がインストールできるはずです。 しかし、使用中のSDカードに問題が発生するのも嫌なので、別のSDカードに 2012-10-28-wheezy-raspbian をインストールすることにします。
sudo apt-get update sudo apt-get install raspi-config libraspberrypi*
MacBook Pro17 の MacOSX 10.8.2 でインストール作業した記録です。 MacOS X ではデバイス名の指定方法が異なるだけで、Linuxと同じく dd コマンドを使ってSDカードに ディスクイメージを書き込みます。まずは SDカードのデバイス名を調べます。以下の例は、私のMacBookでの例です。適宜読み替えてください。
dd コマンドのデバイスの指定を間違えると最悪ハードディスクがすべて消えるなどの悲惨な結果が待っています。十分に注意して行なってください。
$ uname -rsv
Darwin 12.2.0 Darwin Kernel Version 12.2.0: Sat Aug 25 00:48:52 PDT 2012;
root:xnu-2050.18.24~1/RELEASE_X86_64
「sudo apt-get update && apt-get upgrade」でもほとんどの機能がインストールされるようですが、安全に別のSDカードに 2012-10-28-wheezy-raspbian をインストールしました。 ダウンロードしたディスクイメージは以下のサイズです。
$ ls -lt 2012-10-28-wheezy-raspbian.zip
-rw-r--r--@ 1 jun staff 455505411 10 29 22:10 2012-10-28-wheezy-raspbian.zip
イメージのハッシュが 3ee33a94079de631dee606aebd655664035756be であることを確認しました。
$ shasum 2012-10-28-wheezy-raspbian.zip
3ee33a94079de631dee606aebd655664035756be 2012-10-28-wheezy-raspbian.zip
いつものようにMacBook Pro17 にUSB接続のmicroSDカードリーダを接続して、SDカードをアンマウント。
$ diskutil unmount /dev/disk1s1
Volume (null) on disk1s1 unmounted
古いイメージが入っていた 16GBのclass 10 microSDカード のパーティションレコードを一応初期化しました。
$ sudo fdisk -i /dev/disk1
fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory
-----------------------------------------------------
------ ATTENTION - UPDATING MASTER BOOT RECORD ------
-----------------------------------------------------
Do you wish to write new MBR and partition table? [n] y
パーティションを確認。
$ 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: AB 0 1 1 - 1023 254 63 [ 63 - 16384] Darwin Boot
2: AF 1023 254 63 - 1023 254 63 [ 16447 - 31274945] HFS+
3: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
zipファイルを展開します。
$ unzip 2012-10-28-wheezy-raspbian.zip Archive: 2012-10-28-wheezy-raspbian.zip inflating: 2012-10-28-wheezy-raspbian.img $ ls -lt 2012-10-28-wheezy-raspbian* -rw-r--r--@ 1 jun staff 455505411 10 29 22:10 2012-10-28-wheezy-raspbian.zip -rw-r--r--@ 1 jun staff 1939865600 10 29 08:01 2012-10-28-wheezy-raspbian.img
SDカードに書き込みます。
$ sudo time dd bs=1m if=2012-10-28-wheezy-raspbian.img of=/dev/rdisk1
Password:
1850+0 records in
1850+0 records out
1939865600 bytes transferred in 109.425982 secs (17727651 bytes/sec)
109.45 real 0.00 user 1.59 sys
ブート領域のファイルを確認します。
$ cd /Volumes/Untitled $ ls -lt total 33744 -rwxrwxrwx 1 jun staff 137 10 28 23:01 issue.txt -rwxrwxrwx 1 jun staff 142 10 28 22:11 cmdline.txt -rwxrwxrwx 1 jun staff 1180 10 28 22:11 config.txt -rwxrwxrwx 1 jun staff 17764 10 28 17:40 bootcode.bin -rwxrwxrwx 1 jun staff 5282 10 28 17:40 fixup.dat -rwxrwxrwx 1 jun staff 2020 10 28 17:40 fixup_cd.dat -rwxrwxrwx 1 jun staff 2695192 10 28 17:40 kernel.img -rwxrwxrwx 1 jun staff 2104952 10 28 17:40 kernel_cutdown.img -rwxrwxrwx 1 jun staff 9522048 10 28 17:40 kernel_emergency.img -rwxrwxrwx 1 jun staff 2347828 10 28 17:40 start.elf -rwxrwxrwx 1 jun staff 523144 10 28 17:40 start_cd.elf
これまで (2012-09-18-wheezy-raspbianまで) のブートイメージと異なってメモリサイズ毎に「start.elf」が用意されていません。loader.bin も無くなくなっています。
/boot/config.txt を確認してみます。とくに変更されていません。
$ cat -n config.txt 1 # uncomment if you get no picture on HDMI for a default "safe" mode 2 #hdmi_safe=1 3 4 # uncomment this if your display has a black border of unused pixels visible 5 # and your display can output without overscan 6 #disable_overscan=1 7 8 # uncomment the following to adjust overscan. Use positive numbers if console 9 # goes off screen, and negative if there is too much border 10 #overscan_left=16 11 #overscan_right=16 12 #overscan_top=16 13 #overscan_bottom=16 14 15 # uncomment to force a console size. By default it will be display's size minus 16 # overscan. 17 #framebuffer_width=1280 18 #framebuffer_height=720 19 20 # uncomment if hdmi display is not detected and composite is being output 21 #hdmi_force_hotplug=1 22 23 # uncomment to force a specific HDMI mode (this will force VGA) 24 #hdmi_group=1 25 #hdmi_mode=1 26 27 # uncomment to force a HDMI mode rather than DVI. This can make audio work in 28 # DMT (computer monitor) modes 29 #hdmi_drive=2 30 31 # uncomment to increase signal to HDMI, if you have interference, blanking, or 32 # no display 33 #config_hdmi_boost=4 34 35 # uncomment for composite PAL 36 #sdtv_mode=2 37 38 #uncomment to overclock the arm. 700 MHz is the default. 39 #arm_freq=800 40 41 # for more options see https://elinux.org/RPi_config.txt
新しいイメージで起動
インストールしたSDカードをRaspberry Piにセットして、再起動。
最初の起動時に表示される設定画面
起動すると、最初の1回だけ初期設定を行う以下の画面が表示されます。Linuxのデスクトップが表示されると思っているとちょっと面食らいます。
上下のカーソルキーで項目を移動して、[TAB]キーで <Select> を選択、[Return]キーを押して各項目の設定画面に移動します。
- info
- このツールの情報が表示されますが、特に内容はありません。
- expand_rootfs
- 【重要】容量の大きいSDカードを使用しても、最初は先頭の2GB程度のパーティションを使うだけになっていて無駄になるため、このコマンドを選択してSDカードの容量全体を使うように設定できます。設定後に再起動が必要ですが、処理に時間がかかるため、ハングアップと間違えないように注意して下さい。
- overscan
- 画面の周囲をちょっと空けるオーバースキャンを設定します。画面周囲が切れるような場合(テレビ?)に使用します。
- configure_keyboard
- キーボードの配列を指定します。普通は「Generic 105-key (Intl) PC」を選択して「Japanese - Japanese (OADG 109A) 」でいいでしょう。
- change_pass
- 【重要】'pi' ユーザのパスワードを変更
- change_locale
- ロケールの設定です。最初は設定しないほうがいいでしょう。 「ja_JP.UTF-8 UTF-8」を選択するとメニューなどが日本語化されますが、最初は日本語フォントがインストールされていないため、文字化けします。
- change_timezone
- 時間の設定です。日本時間は 「Asia」、「Tokyo」 と指定します。
- memory_split
- CPUとGPUへのメモリの配分を変更します。ここで設定した値 (MB単位) が GPU へ割り当てられ、残りは CPU (ARM) に割り当てられます。512MB版が登場したため、未設定の場合の GPU への割り当てが 32MB から 64MB に変更されています。
- overclock
- CPU、GPU、メモリのクロックの初期設定はそれぞれ700MHz、250MHz、400MHzですが、高付加になった場合、オーバークロックして最大CPUは 1GHz、GPU は 500MHz、メモリは 600MHz まで高速化する事が出来ます。 過度のオーバークロックはシステムの寿命を短くする可能性、SDカード(の内容)を壊す可能性があるという警告が表示されるので、「自己責任で」ということになります。
- ssh
- ネットワーク越しにコマンドラインに接続する場合には「Enable」を選択します。最初から「Enable」になっています。ネットワーク越しに操作するだけの使い方ならば、キーボードもマウスもディスプレイも不要です。
- boot_behaviour
- 起動時に直接GUIな画面(Xのデスクトップを表示)に移行する場合は「Yes」を選択します。しばらくは、コンソールでログインしてから、「startx」コマンドで X を起動することをオススメします。
- update
- この raspi-config の新しいバージョンがあれば取得します。
2番めの「expand_rootfs」と「change_pass」で'pi' ユーザのパスワード変更は実行しておいたほうがいいでしょう。「sudo raspi-config」でいつでも実行できるので、後からでも設定できます。
メモリ割り当ての変更方法
CPUとGPUへのメモリの配分を変更します。ここで設定した値 (MB単位) が GPU へ割り当てられ、残りは CPU (ARM) に割り当てられます。
これまでが3種類の決められた割り当てから選択する形式でしたが、 2012-10-28-wheezy-raspbian の raspi-config から MB単位の数値を入力する形式に変更されています。
オーバークロックの設定
raspi-config の「overclock」という項目を選択するとオーバークロックの程度を変更できます。
選択すると、「オーバークロックするとRaspberry Piの寿命を縮める可能性があります。もしオーバークロックしてシステムが不安定になったら、もっとマイルドな設定を試して下さい。詳細は https://elinux.org/RPi_Overclocking を参照してね。」という感じの注意書きが表示されます。
デフォルトの 700MHz から 1GHz までの選択肢が表示されます。「0 overvolt」 は 1.2V、「6 overvolt」は電圧を1.35Vに設定することを示します。ここで選択した設定には CPU が85%以上の負荷になると切り替わります。CPUがアイドル状態になると元 (700MHz) に戻ります。また、CPU の温度が 85 ℃を超えると 700MHz に戻ります。
最も速い設定に変更すると「警告:ここまでオーバークロックするとSDカードが壊れたという報告があるよ」と表示されます。
raspi-configを使ったオーバークロック設定では、オーバークロック状態でブートすることはないと思いますが、万一システムが不安定になってブートに失敗する場合でも、起動時にシフトキーを押し続けることで遅いクロックで起動させる事が出来るようです。
新しい config.txt
raspi-config で上記の設定をすると /boot/config.txt の内容が以下のように変更されます。
pi@raspberrypi /boot $ cat -n config.txt 略 34 35 # uncomment for composite PAL 36 #sdtv_mode=2 37 38 #uncomment to overclock the arm. 700 MHz is the default. 39 arm_freq=1000 40 41 # for more options see https://elinux.org/RPi_config.txt 42 gpu_mem=64 43 core_freq=500 44 sdram_freq=600 45 over_voltage=6
config.txt の後ろに設定が追加されています。 ARMとGPUのメモリの割り当てはgpu_mem で指定されていて、gpu_mem に設定した値 (MB単位) が GPU へ割り当てられ、残りは CPU (ARM) に割り当てられます。 デフォルトは64MBです。gpu_mem_256 という設定を追加するとメモリが256MBの場合には gpu_mem より優先して (最大192) 使用され、メモリが512MBの場合には無視されます。同様に gpu_mem_512 を設定するとメモリが512MB の場合には gpu_mem より優先して (最大448) 使用され、メモリが256MBの場合には無視されます。
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