日別アーカイブ: 2017/08/12

[RPi] Raspberry Pi 3

以前 Raspberri Pi を15か月も待って購入したのですが、なかなかいじる時間がなく、他にも放置してるガジェットがあるので Raspberri Pi 3はいいかなと思ってたのですが、手元に最新環境が扱えるプラットフォームがないのもいまいちなので、遅ればせながら共立電子で購入しました。AC アダプタは定格以上のものを用意しないと不安定になるとのことで、お店推奨の 5V/4A の変換コネクタつきを購入しています。

内蔵のeMMC に書き込みが必要なボードが多い中、micro SDカードで直接立ち上がるのはいろいろ便利です。

まずは動作確認

とりあえず Raspbian で動作確認してみます。公式サイトからのダウンロードは1時間以上かかるので mirror から取得します。

zip ファイルがダウンロードできたら、展開して得られた img ファイルを dd か Windows なら Win32DiskImager などで micro SD カードに書き込みます。遅いカードだとかなり時間が掛かります。

あとは本体に micro SD カードをセットし、HDMI・USBキーボードを挿して、ACアダプタから電源を投入して無事動作が確認できました。簡単すぎる…

中身を少し確認

RPi3 は Broadcom の SoC BCM2837 を搭載していて 1.2GHz の Cortex-A53 4 Core を内蔵していますが、dmesg と uname を見るとやはり kernel も userland も ARMv7 compat mode で動作していました。kernel は現時点の最新 LTS  4.9 を update して使っているようです。

pi@raspberrypi:~ $ dmesg | head
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.9.35-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611) ) #1014 SMP Fri Jun 30 14:47:43 BST 2017
[    0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d
[    0.000000] CPU: div instructions available: patching division code
...
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.9.35-v7+ #1014 SMP Fri Jun 30 14:47:43 BST 2017 armv7l GNU/Linux

Raspbian image は 第一パーティションを FAT32 にして boot blob、kernel image、devicetree blob などを、第二パーティションに ext4 で rootfs を置いています。fdtdump が入っているので、/boot にある dtb ファイルを覗いてデバイスの構成を見ることができます。

pi@raspberrypi:~ $ df -T
Filesystem     Type     1K-blocks    Used Available Use% Mounted on
/dev/root      ext4       7530028 4018864   3144436  57% /
devtmpfs       devtmpfs    468148       0    468148   0% /dev
tmpfs          tmpfs       472756       0    472756   0% /dev/shm
tmpfs          tmpfs       472756    6440    466316   2% /run
tmpfs          tmpfs         5120       4      5116   1% /run/lock
tmpfs          tmpfs       472756       0    472756   0% /sys/fs/cgroup
/dev/mmcblk0p1 vfat         42030   21419     20611  51% /boot
tmpfs          tmpfs        94552       0     94552   0% /run/user/1000
pi@raspberrypi:~ $ fdtdump /boot/bcm2710-rpi-3-b.dtb
/dts-v1/;
...
/memreserve/ 0 0x1000;
/ {
    compatible = "brcm,bcm2837", "brcm,bcm2836";
    model = "Raspberry Pi 3 Model B";
...

電源遮断の罠

最初の起動直後は初期処理を行うのでファイル更新を行います。そのため電源をいきなり切ると rootfs の更新ができていないままになり、次の起動でファイルが壊れたことでデスクトップが起動しなくなります。

特に user の openbox の lxde-pi-rc.xml が壊れるようで、ググるといくつか同じような質問をしているのが見つかります。当たり前ですが電源切る前の sync と shutdown コマンドは忘れずに。