Zynq + Yocto
http://www.sweetcafe.jp/wiki/doku.php?id=zynq
この手順でやってもうまくいかない。
どうみても ramdisk の image がでかすぎ。56M。
ここをよくみると
bootm 0x3000000 - 0x2A00000
なるほど。きっと FAT のあとにパーティション切ってるんだな。さもありなん。image を mount すると gcc なんかもある。ん?
usr/bin/arm-poky-linux-gnueabi-gcc
どうも EXTRA_IMAGE_FEATURES で tools-sdk を入れているのが元凶。
EXTRA_IMAGE_FEATURES = "debug-tweaks"
debug-tweaks はデバッグ用にセキュリティを弱くするみたい。login 時に root でパスワードがないなど。これは必要なのでそのままとする。
でもって rootfs を作り直して image をいれて、などなど、きまりきったことをする。rootfs は激減しておおよそ 2.3M。なんと 1/10。これならデフォルトの設定で入ります。
Poky (Yocto Project Reference Distro) 1.7 zc702-zynq7 /dev/ttyPS0 zc702-zynq7 login: root root@zc702-zynq7:~#
うまくいきましたとさ。
なお、RAMDISK は最大で 32M の模様。むりやり 56M を超える image を RAMDISK として u-boot で boot させたらしっぱいした。
zynq-uboot> fatload mmc 0 0x2000000 uramdisk.image.gz reading uramdisk.image.gz 56034175 bytes read in 4645 ms (11.5 MiB/s) zynq-uboot> fatload mmc 0 0x5600000 devicetree.dtb reading devicetree.dtb 24840 bytes read in 15 ms (1.6 MiB/s) zynq-uboot> fatload mmc 0 0x5700000 uImage reading uImage 3598240 bytes read in 314 ms (10.9 MiB/s) zynq-uboot> bootm 0x5700000 0x2000000 0x5600000
一見うまくいくかに見えるが、kernel 立ち上げ時にエラー。
[ 3.832647] RAMDISK: gzip image found at block 0 [ 4.231783] RAMDISK: incomplete write (6147 != 32768) [ 4.236763] write error
そもそももとの、u-boot の設定が、
sdboot=if mmcinfo; then run uenvboot; echo Copying Linux from SD to RAM... && fatload mmc 0 0x3000000 ${kernel_image} && fatload mmc 0 0x2A00000 ${devicetree_image} && fatload mmc 0 0x2000000 ${ramdisk_image} && bootm 0x3000000 0x2000000 0x2A00000; fi
となっていて、10M しか RAMDISK 用に空きがない。まぁ uimage になったために、image のサイズを気にしなくてよくなったのは◎。
あとは freescale みたいに SDimage を作るべきだね。> 自分か、、、