Orange Pi R1 のSPIフラッシュにOSを入れてルーターにする

メニュー

U-Boot

組込みシステムなどで使われるブートローダです。
Buildrootでもビルドされますが、Buildrootを再ビルドすると設定が消えちゃうので別途用意したほうが良さげです。

$ git clone git://git.denx.de/u-boot.git
$ cd u-boot
$ git checkout v2019.10
$ make orangepi_r1_defconfig
$ make ARCH=arm CROSS_COMPILE=arm-none-eabi-
masterブランチの最新版でビルドしたら起動しなくてハマりました。
tagを指定してチェックアウトする必要があるようです。

できあがった u-boot-sunxi-with-spl.bin が使用するU-Bootイメージです。

SDカードに焼く場合は
$ sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1024 seek=8
のようにして8kBスキップした位置に書き込む必要があります。
SDカードからの起動の場合はこの位置のブートローダが実行されるようです。
fdisk等でパーティションを作った場合、先頭1セクタ(512byte)にMBRが入り第1パーティションは2048セクタ(1MiB)以降の位置からになるのでこの位置は未使用領域です。

SPIフラッシュに焼く場合はseekせずに先頭に書き込めばいいのですが、
U-Boot自体は起動しますが初期設定でビルドしたU-Bootの場合はSPIフラッシュを扱えないのでSPIフラッシュ上のLinuxを起動できません。
SPIフラッシュにインストールする場合はSPIフラッシュを参照してください。
[編集]   [AD]
rentafree.net