2016/7/6

buildroot for iMX6

ref:
就先 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/ /mnt
# tar -C /mnt -xvf output/images/rootfs.tar
# umount /mnt
之後,一樣, Unable to mount,,
但是在 bootlog 中明明有看到..mmcblk0p2

..結果是... hardware 不一樣...
因為用 microSD, 所以沒有做 write protect detection, 所以 kernel 認為...
mmcblk0: mmc0:59b4 USD 7,51GiB (ro)
是 readonly,, 所以不能當作 root..

沒有留言:

張貼留言