follow me

CubieTruckでMainline Kernelを使いたい

CubieTruckでMainline Kernelを使いたいと思っている方は多いと思います。
Kernel 3.13から一気にARM対応が入り始めたので興味を持っている人も多いと思います。

ビルドですが、Kernel 3.13からまたDeviceTreeの話が出てきて、今までの感覚ではビルドすら通らなくなりました。dtbの話ですね。
一応、Mainline Kernel Howtoは出ていますが、uEnv.txtの内容など一部情報がまだ揃いきっていないようです。
ビルド時のエラーは、makeで出てしまうので、ここで辞めた人もいるのではないでしょうか。
エラーはこんな感じです。
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
そのまんまLOADADDRを指定しろってことですね。
こんな感じで指定します。
dtbsも必要になりますので、これもビルドします。
$ ARCH=arm make sunxi_defconfig
$ ARCH=arm make menuconfig
$ ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LOADADDR=0x40008000 make uImage dtbs
全てビルドが終ったら必要データを移送し、始めはu-bootで直接コマンド叩いて試すのがいいと思います。
ファイル名と、ファイルを置いているファイルシステムなどは適宜置き換えてください。
# ext2load mmc 0 0x46000000 uImage.3.13.5
# ext2load mmc 0 0x49000000 sun7i-a20-cubietruck.dtb
# env set fdt_high ffffffff
# setenv bootargs console=ttyS0,115200 loglevel=9  hdmi.audio=EDID:0 disp.screen0_output_mode=EDID:1280x720p50 ro rootwait panic=10 rootfstype=ext4 rootflags=discard root=/dev/mmcblk0p2
bootm 0x46000000 - 0x49000000
これでKernelがロードされ起動する筈ですが、microSDをrootfsとしている場合は途中でコケマス。
[    1.154373] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[    1.161256] md: Waiting for all devices to be available before autodetect
[    1.168118] md: If you don't use raid, use raid=noautodetect
[    1.174810] md: Autodetecting RAID arrays.
[    1.178986] md: Scanned 0 and added 0 devices.
[    1.183425] md: autorun ...
[    1.186239] md: ... autorun DONE.
[    1.189667] Waiting for root device /dev/mmcblk0p2...
まだMainline KernelにMMC周りのコードがマージされていない為、rootfsのマウントができません。
USBであれば認識する為、現状USBにrootfsを作らないとMainline Kernelを愉しむ事はできません。
個別にパッチを当てるか、3.15辺りまで待つ事になります。
3.13以降のKernelロードする場合のuEnv.txtですが、現状はこの様な不細工な形にしないといけない様子です。
もちろん3.13対応も行なわれるでしょうから、待つのもありかと。
mmc_load_image=ext2load mmc 0 0x46000000 uImage.3.13.5
mmc_load_dtb=ext2load mmc 0 0x49000000 sun7i-a20-cubietruck.dtb
mmcargs=setenv bootargs console=ttyS0,115200 loglevel=9 hdmi.audio=EDID:0 disp.screen0_output_mode=EDID:1280x720p50 ro rootwait panic=10 rootfstype=ext4 rootflags=discard root=/dev/mmcblk0p2
fdtargs=setenv fdt_high 0xffffffff;setenv initrd_high 0xffffffff
xyz_mmcboot=run mmc_load_image; run mmc_load_dtb
uenvcmd=run xyz_mmcboot; run mmcargs; run fdtargs; bootm 0x46000000 - 0x49000000
CubieTruckでMainline Kernelを使いたい | 1 件のコメント | アカウント登録
サイト管理者はコメントに関する責任を負いません。
CubieTruckでMainline Kernelを使いたい
投稿者: kometch on 2014年3月21日(金) 04:07 JST

おお、参考になります。
やはり、ARM対応についてはもう少し様子を見たほうが良さそうですね・・・