CubieTruckでMainline Kernelを使いたい
2014年3月20日(木) 15:47 JST
閲覧数 4,842
CubieTruckでMainline Kernelを使いたいと思っている方は多いと思います。
Kernel 3.13から一気にARM対応が入り始めたので興味を持っている人も多いと思います。
ビルドですが、Kernel 3.13からまたDeviceTreeの話が出てきて、今までの感覚ではビルドすら通らなくなりました。dtbの話ですね。
一応、Mainline Kernel Howtoは出ていますが、uEnv.txtの内容など一部情報がまだ揃いきっていないようです。
ビルド時のエラーは、makeで出てしまうので、ここで辞めた人もいるのではないでしょうか。
エラーはこんな感じです。
こんな感じで指定します。
dtbsも必要になりますので、これもビルドします。
ファイル名と、ファイルを置いているファイルシステムなどは適宜置き換えてください。
USBであれば認識する為、現状USBにrootfsを作らないとMainline Kernelを愉しむ事はできません。
個別にパッチを当てるか、3.15辺りまで待つ事になります。
3.13以降のKernelロードする場合のuEnv.txtですが、現状はこの様な不細工な形にしないといけない様子です。
もちろん3.13対応も行なわれるでしょうから、待つのもありかと。
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