自制MFGTools镜像

/ 0评 / 0

先到NXP官方下载原始的版本,文件名:IMX6_L5.1_2.1.0_MFG_TOOL.tar.gz,然后解压到非中文路径.我们板子最接近的一个是这个.

先用bitbake fsl-image-mfgtool-initramfs生成可以用mfgtool的相关文件.

[这就是Yocto的好处,在一个版本移植OK后,到另一个版本也很省事.]
通过ucl.xml确定需要放置的内容.

准备阶段有4个文件需要放置.但是在Yocto工程,他名字不一样.而且他这里是变量,实际上肯定还有改变.
对应关系分别是:

  1. u-boot.imx-mfgtool => u-boot-imx6qsabresd_sd.imx
  2. zImage_mfgtool=> zImage
  3. fsl-image-mfgtool-initramfs-imx6qsabresd.cpio.gz.u-boot => fsl-image-mfgtool-initramfs-imx_mfgtools.cpio.gz.u-boot
  4. zImage-zImage-mfgtool-imx6q-sabresd.dtb => zImage-imx6q-sabresd.dtb

为了方便,我新建个文件夹,做了个脚本,下次要变更也好复制东西.

cp tmp/deploy/images/imx6qsabresd/u-boot.imx-mfgtool mfg/firmware/u-boot-imx6qsabresd_sd.imx
cp tmp/deploy/images/imx6qsabresd/zImage_mfgtool mfg/firmware/zImage
cp tmp/deploy/images/imx6qsabresd/fsl-image-mfgtool-initramfs-imx6qsabresd.cpio.gz.u-boot mfg/firmware/fsl-image-mfgtool-initramfs-imx_mfgtools.cpio.gz.u-boot
cp tmp/deploy/images/imx6qsabresd/zImage-zImage-mfgtool-imx6q-sabresd.dtb mfg/firmware/zImage-imx6q-sabresd.dtb

先试试能不能引导.
貌似启动无意外,而且识别了,但是出错了.(不应该啊,最多是烧错镜像,不应该出错啊.)

原来是sfdisk有个BUG.不支持-uM参数.

改ucl文件,让他停在这里,我好进终端去观察.

果然停下来了.

实验发现,M不能写上面.那么下下面就可以了.

重新打包应该就可以继续了.

再来一次应该可以烧写了,但是肯定不能启动.因为我都没替换目标文件.不要忘记还原ucl文件,重启工具.

继续开始艰难的文件替换之旅.
文件对应关系:

  1. u-boot-imx6qsabresd.imx-sd  => u-boot-imx6qsabresd_sd.imx
  2. zImage => zImage
  3. zImage-imx6q-sabresd.dtb => zImage-imx6q-sabresd.dtb
  4. xxx => rootfs.tar.bz2 [根据你目标选择]

我也做了个简单的,为了自己复制方便的脚本:

cp tmp/deploy/images/imx6qsabresd/u-boot-imx6qsabresd.imx-sd mfg/files/u-boot-imx6qsabresd_sd.imx
cp tmp/deploy/images/imx6qsabresd/zImage mfg/files/zImage
cp tmp/deploy/images/imx6qsabresd/zImage-imx6q-sabresd.dtb mfg/files/zImage-imx6q-sabresd.dtb
cp tmp/deploy/images/imx6qsabresd/fsl-image-qt5-imx6qsabresd.tar.bz2 mfg/files/rootfs.tar.bz2

根据镜像大小不同,自然花掉时间也不同.

因为我是QT镜像,好大啊,等了好久才完成.

顺利启动并使用,没有半点毛病~
 

===================
烧写过程中,提示分区要输入一次y,实在麻烦,解决方法也很简单,添加-F参数,强制!就不问YES了.

既然两者是一致的,还是在TF卡调试方便点.

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注