BeagleBoard B6 てごわい

ここ

を見てカーネル作ってますが、BeagleBoard B6(かなり古い版)で動かすと、起動中にカーネルがこけます。もしかすると、もう B6 なんかでテストされていないのかも! せめて動く BeagleBoard がないとデバッグする気力も出ず。悲しい。。。
という訳ででジタバタしているのですが、ふと上記サイトで

git checkout 3.8

というのを見て、試しに 3.13 カーネルを作ってみることにしました。果たしてうまくいくのか??
あるいは、寄らば大樹のなんとやらで、注文している最新 BeagleBone が来るのを待つかな。昼は職場で某 MCSDK Linuxデバッグ、家では BeagleBoard と格闘。疲れますw

その後

げっ。uImage ができない。なんでなんで? しょーがない、zImage でやるか。

  Kernel: arch/arm/boot/zImage is ready
multiple (or no) load addresses: 
This is incompatible with uImages
Specify LOADADDR on the commandline to build an uImage
make[1]: *** [arch/arm/boot/uImage] Error 1
make: *** [uImage] Error 2

その後 (2)

こっちで見つけた U-Boot を使ったけど、そのままでは

Starting kernel ...

でだんまりになります。ダメもとと思って

fatload mmc 0 0x80300000 zImage
setenv bootargs console=ttyO2,115200n8 root=/dev/mmcblk0p2 ro rootfstype=ext4 rootwait fixrtc
bootz 0x80300000

したら、ちゃんとブートして login: 出たー。console= の設定が悪いのか? Device Tree のせいか? 切り分けなう。
→ .dtb を食わせると起動しません。

とりあえずまとめておく

X-Loader と U-Boot は、ここから。

でもって、Debian の rootfs は同じとこから

でもってカーネルは上に書いたように

を見て、git clone git://github.com/beagleboard/kernel.git してきて、

cd kernel
git checkout 3.13
./patch.sh
cp configs/beagleboard kernel/arch/arm/configs/beagleboard_defconfig

して、uImage は作れないみたいなので

make ARCH=arm CROSS_COMPILE=arm-linux-gnu- beagleboard_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnu- zImage
make ARCH=arm CROSS_COMPILE=arm-linux-gnu- modules

あ、コンパイラは Linaro ね。

https://releases.linaro.org/13.12/components/toolchain/binaries/gcc-linaro-arm-linux-gnueabihf-4.8-2013.12_linux.tar.xz

で bootargs は

fatload mmc 0 0x80300000 zImage
setenv bootargs console=ttyO2,115200n8 root=/dev/mmcblk0p2 ro rootfstype=ext4 rootwait fixrtc
bootz 0x80300000

なんか知らんけど、.dtb (Device Tree) 食わせるとコケます。時間あったらデバッグしてみる。