ジャンル不定の日記です。

自ビルドしたROMで起動しない原因わかった!

昨日からOrange pi R1 を自ビルドしたkernelとu-bootで起動しようとしてできなかったが、
Arch Linuxだとどうにもならんので、起動するArmbianのイメージを書き換えてみた。

boot.cmd
setenv bootargs root=/dev/mmcblk0p1 rootwait rootfstype=ext4 console=ttyS0,115200
load mmc 0:1 ${kernel_addr_r} /boot/zImage
load mmc 0:1 ${fdt_addr_r} /boot/${fdtfile}
load mmc 0:1 ${ramdisk_addr_r} /boot/uInitrd
bootz ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r};
これで /boot/boot.scr を作成した。
.dtbファイルの変わるので自ビルドしたやつを配置した。
結果、起動した。

次に自ビルドしたu-boot本体をddで書き込んだ。
Starting kernel ...

Uncompressing Linux... done, booting the kernel.
initramfsの形式が違うからと思うが1行増えたが止まった。

どうもu-boot本体がおかしいみたい。

u-bootのバージョンを確認したが、
自ビルド: U-Boot 2020.01-00473-g88366b96ee (Jan 12 2020 - 16:07:49 +0900) Allwinner Technology
Armbian: U-Boot 2019.10-armbian (Jan 05 2020 - 10:27:36 +0100) Allwinner Technology

https://linux-sunxi.org/U-Boot
にも v2019.10 を使うように書いてあるが、Armbianのバージョンと同じ。

$ git checkout v2019.10
$ make ARCH=arm CROSS_COMPILE=arm-none-eabi- orangepi_r1_defconfig
$ make ARCH=arm CROSS_COMPILE=arm-none-eabi-
でビルドしなおしてみた。

結果、起動した!

Arch Linuxでも試してみる。