RaspberryPi3用rootfs作成
buildrootなるツールがあることを知ったので試してみた。
buiidrootとは公式ページによれば、"Making Embedded Linux Easy"ためのツール。
環境
OS: Ubuntu16.04 x86_64
CPU: Intel(R) Core(TM) i7-3517U CPU @ 1.90GHz
Target: RaspberryPi 3 Model B
手順
1. RaspberryPi3用デフォルト設定でフルビルド
$ curl -O https://buildroot.org/downloads/buildroot-2017.02.5.tar.gz
$ tar zxvf buildroot-2017.02.5.tar.gz
$ cd buildroot-2017.02.5/
$ make raspberrypi3_defconfig
$ make -j8 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs
$ make -j8 ※注:-j8はNG!詳細は後述
Core i7+光回線の環境で最後のmake -j8
に1時間弱。
ホストツール・カーネルイメージ・デフォルトのターゲットツールすべてインターネットから取得してこの時間は早いなぁ。
※後で[マニュアル]
(https://buildroot.org/downloads/manual/manual.html#_buildroot_quick_start)に、
You should never use make -jN with Buildroot:
top-level parallel make is currently not supported.
Instead, use the BR2_JLEVEL option
と書かれているのを発見。。。未確認だがもう少し遅くなるかも。
2. SDカードにイメージ書き込み
※トラブル防止のために、書き込み前にgnome-disksなどでパーティションを削除しておいたほうがいいかも
$ sudo dd if=./output/images/sdcard.img of=/dev/sdb bs=8192
3. 起動
上記そのままの手順の場合は、ユーザ名"root"でパスワードなしで入れる。
感想
簡単すぎて笑えた。
これだけ簡単に使えるようになってるのはメンテナの皆さんがすごい頑張ってくださってるからなんだろうなぁ。。。
感謝感謝です。
Dockerみたいなコンテナ環境も楽でいいけど、ソース集めてビルドするってのはやっぱりわかりやすい。
ローカルビルドもサポートしているみたいだし、必要十分に絞ればビルド時間ももう少し短くできるはず。
設定パラメータもかなり大量に用意してくれているようなので、いろんなケースで取っ掛かりとして使えそう。
ちなみに、デフォルト設定で作成したイメージファイルは全体で94MB。
うちbootが32MBでrootfsが64MBだった。小さいなぁ。
参考ページ
Buildroot
Raspberry Piへbuildrootでのrootfs構築
Raspberry Pi3 / arm64
Raspberry PiへのOSインストールの手順 ddコマンド編