ラズベリーパイ 50%増量 (2012/09/20)
Raspberry Pi が最大50%高速化されたそうです。2012/09/20現在、最新の公式ディスクイメージ 2012-09-18-wheezy-raspbian では、ファームウェアが変更され、オーバーボルテイジ(電圧)と 1.0GHz までのオーバークロックが保証範囲内で可能となったとのことです。 これまで規定以上の電圧を使う設定にするとCPU内部のビットが切り替わって、保証が無効になっていましたが、今回の変更で保証範囲内のオーバークロックが可能になりました。
その他にもCPU温度やクロックの表示、USBドライバーの改善で10%の高速化、無線LANのドライバがサポート、OpenGL ES2を使ったゲーム (PenguinsPuzzle) がインストール済みなど盛りだくさんです。
2012-09-18-wheezy-raspbian のインストール
「sudo apt-get update && apt-get upgrade」でもほとんどの機能がインストールされるようですが、安全に別のSDカードに 2012-09-18-wheezy-raspbian をインストールしました。 ダウンロードしたディスクイメージは以下のサイズです。
$ ls -lt 2012-09-18-wheezy-raspbian.zip
-rw-r--r--@ 1 jun staff 459980310 9 19 05:18 2012-09-18-wheezy-raspbian.zip
イメージのハッシュが 3bc788d447bc88feaae8382d61364eaba1088e78 であることを確認しました。
$ shasum 2012-09-18-wheezy-raspbian.zip
3bc788d447bc88feaae8382d61364eaba1088e78 2012-09-18-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
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-09-18-wheezy-raspbian
$ ls -lt 2012-09-18-wheezy-raspbian*
-rw-r--r--@ 1 jun staff 459980310 9 19 05:18 2012-09-18-wheezy-raspbian.zip
-rw-r--r--@ 1 jun staff 1939865600 9 18 21:40 2012-09-18-wheezy-raspbian.img
SDカードに書き込みます。
$ sudo time dd bs=1m if=2012-09-18-wheezy-raspbian.img of=/dev/rdisk1
1850+0 records in
1850+0 records out
1939865600 bytes transferred in 107.927080 secs (17973854 bytes/sec)
107.95 real 0.00 user 1.61 sys
ブート領域のファイルを確認します。
$ cd /Volumes/Untitled $ ls -lt total 71744 -rwxrwxrwx 1 jun staff 137 9 18 13:40 issue.txt -rwxrwxrwx 1 jun staff 142 9 18 12:52 cmdline.txt -rwxrwxrwx 1 jun staff 1180 9 18 12:52 config.txt -rwxrwxrwx 1 jun staff 2467888 9 18 10:12 arm128_start.elf -rwxrwxrwx 1 jun staff 2467888 9 18 10:12 arm192_start.elf -rwxrwxrwx 1 jun staff 2467888 9 18 10:12 arm224_start.elf -rwxrwxrwx 1 jun staff 517508 9 18 10:12 arm240_start.elf -rwxrwxrwx 1 jun staff 16536 9 18 10:12 bootcode.bin -rwxrwxrwx 1 jun staff 5299140 9 18 10:12 kernel.img -rwxrwxrwx 1 jun staff 4225988 9 18 10:12 kernel_cutdown.img -rwxrwxrwx 1 jun staff 16444012 9 18 10:12 kernel_emergency.img -rwxrwxrwx 1 jun staff 278715 9 18 10:12 loader.bin -rwxrwxrwx 1 jun staff 2467888 9 18 10:12 start.elf
/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にセットして、再起動。
raspi-config
起動時に表示される 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 に戻ります。
最も速い設定に変更してみました。
raspi-configを使ったオーバークロック設定では、オーバークロック状態でブートすることはないと思いますが、万一システムが不安定になってブートに失敗する場合でも、起動時にシフトキーを押し続けることで遅いクロックで起動させる事が出来るようです。
新しい config.txt
pi@raspberrypi /boot $ 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=1000 40 41 # for more options see https://elinux.org/RPi_config.txt 42 core_freq=500 43 sdram_freq=500 44 over_voltage=6
config.txt の後ろに設定が追加されています。
温度の確認
CPUの温度が取得できるようになっています。/sys/class/thermal/thermal_zone0/temp を読みだすことで、1000分の1度単位の温度が取得できます。
pi@raspberrypi ~ $ cat /sys/class/thermal/thermal_zone0/temp
50306
クロックの確認
kHz単位でARMのクロックが確認できます。
pi@raspberrypi ~ $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
700000
CPUに負荷をかけるとオーバークロックで設定した周波数に動的に切り替わります。CPUがアイドル状態に戻るとクロックも元に戻ります。
pi@raspberrypi ~ $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
1000000
テスト
OpenGL ES2で100個の立方体を回してみました。頂点数と法線ベクトルはそれぞれ3200個になります。フレームレートは30fps程度に落ちていますが、CPUの負荷は10%程度なので「Turbo」モードに切り替わりませんね。Raspberry Pi速すぎ。
さらに...
オーバークロック関連の話題は 本家フォーラム に色々あります。 「3000円程度のPCの保証なんて気にしない」ならば、もっと多くの面白そうな設定を試すことができます。保証範囲外になる上、ファームウェアのバージョンでいろいろ変わるかもしれないので、ここには書きませんが、興味のある方はご自分でお試しください。