- https://community.nxp.com/docs/DOC-99218
- https://boundarydevices.com/buildroot-for-i-mx5-and-i-mx6/
- http://jordonwu.github.io/blog/2015/04/16/build-linux-for-imx6/
就先 clone buildroot 下來...
.. 姊果 clone 不下來,所以只好download tar 下來解。
用.. 2015.05 的版本。
解開後,用 imx6 sabreauto 的config:
find 一下 freescale_*_defconfig
$ make freescale_imx6dlsabreauto_defconfig $ make
make 之前可以用 make menuconfig 看一下配置。kernel , uboot 版本之類。
make 後,就會去 download source, patch..
因為有過 proxy, 所以有些 git:// target 會 fetch failed.
這時候中斷,接上 no proxy 的 network, 再繼續 make
然後fetch tar ball 又要過 proxy,, 又接上 ethernet...
反覆..終於 build OK
build 好在: out/images
然後就 follow reference.
這個SD partition 配置是:
- boot region : iMX 從 1024 開始 load bin, 這區域要放 uboot
- vfat partition : 第一個 partition, 要是 fat, 裡面是 uImage 和 dtb
- root fs : 第二個 partition, 是 EXT4, 就是 image: rootfs 的內容
燒錄的動作略有不同。
這個 buildroot build 出來的 uboot 是 u-boot.imx, 不是 bin
所以直接 dd 到 1024 的地方...
$ sudo dd if=u-boot.imx of=/dev/sdb bs=1k seek=1這樣開機已經可以看到 uboot message... 當然,boot to kernel failed
接著 formate /dev/sdb1 為 vfat, copy uImage 和 imx6dl-sabreauto.dtb 過去。
這時候開機,已經可以看到開進 kernel,, 當然,開到一半就 kernel trap.. 因為 VFS: Unable to mount rootfs on unknown-block(179,2)
把 sdb2 format 成 ext4 後..
照著..
# mount /dev/之後,一樣, Unable to mount,,/mnt # tar -C /mnt -xvf output/images/rootfs.tar # umount /mnt
但是在 bootlog 中明明有看到..mmcblk0p2
..結果是... hardware 不一樣...
因為用 microSD, 所以沒有做 write protect detection, 所以 kernel 認為...
mmcblk0: mmc0:59b4 USD 7,51GiB (ro)是 readonly,, 所以不能當作 root..
沒有留言:
張貼留言