修改MfgTool 工具并通过 USB OTG 口来烧写自己制作的uboot\rootfs\.dtb\zImage文件

一、改造烧写环境

MfgTool 是通过 USB OTG 接口将系统烧写进 EMMC 中,用usb连接电脑和USB OTG 接口

把拨码开关拨到 USB 下载模式,需要弹出tf或sd卡

打开“ MfgTool2.exe”软件,连接成功如下图

图片中可能是出现英文,只要是符合即可。点击“Start”按钮即可开始烧写,烧写什么东西呢?

肯定是烧写 uboot、 Linux kernel、 .dtb 和 rootfs

所以要准备好要烧写的原材料:

①、自己移植编译出来的 uboot 可执行文件: u-boot.imx。
②、自己移植编译出来的 zImage 镜像文件和开发板对应的.dtb(设备树)
③、自己构建的根文件系统 rootfs

在根目录下新建一个文件夹存放这四个文件,这里为“烧写的材料”文件夹

根据图中剩下的文件,其余文件可以删掉

进入mfgtools\mfgtools\Profiles\Linux\OS Firmware目录看到如下

firmware 文件夹

位置:mfgtools\Profiles\Linux\OS Firmware\firmware

烧写软件将 firmware 目录中的 uboot、 linux kernel 和.dtb(设备树),然后通过 USB OTG 将这个文件下载到开发板的 DDR 中,目的就是在 DDR 中启动 Linux 系统,为后面的烧写做准备

这里面有很多的.imx 结尾的 uboot 文件、一个 zImage 镜像文件、很
多.dtb结尾的设备树文件,只看下图三个

 因此需要将 u-boot.imx 重命名为 u-boot-imx6ull14x14evk_emmc.imx

将 imx6ull-alientek-emmc.dtb重命名为 zImage-imx6ull-14x14-evk-emmc.dtb

按照下图,保留这三个文件,其余的可以删掉

files 文件夹

位置:mfgtools\Profiles\Linux\OS Firmware\files

烧写软件从 files 目录中读取整个系统文件,并将其烧写到 EMMC

主要看下图文件

保留下图两个文件,把目录下的其他文件全部删除 


二、改造MfgTool

改造 MfgTool,重点是三方面:
①、针对不同的核心版,确定系统文件相关名字。
②、新建我们自己的.vbs 文件。
③、修改 ucl2.xml 文件

1 确定系统文件名字并复制到对应目录下

确定系统文件名字完全是为了兼容不同的产品,比如开发板有 NAND 和 EMMC 两个版本, 那么 EMMC 和 NAND 这两个版本的 uboot、 zImage、 .dtb 和 rootfs 有可能不同。这里系统文件命名如图:

 分别把这四个文件复制到mfgtools\Profiles\Linux\OS Firmware\firmware目录下和mfgtools\Profiles\Linux\OS Firmware\files目录下

2 新建.vbs 文件

直接复制 mfgtool2-yocto-mx-evk-emmc.vbs 文件

将新复制的文件重命名为 mfgtool2-my-emmc.vbs

文件内容不要做任何修改, .vbs 文件我们就新建好了

3 修改ucl2.xml 文件

files 和 firmware 目录下有众多的 uboot 和设备树,烧写的时候究竟选择哪一个这个工作就是由 ucl2.xml 文件来完成的。 ucl2.xml 以“<UCL>”开始,以“</UCL>”结束。“<CFG>”和“</CFG>”之间是配置相关内容,主要是判断当前是给 I.MX 系列的哪个芯片烧写系统.
在修改 ucl2.xml 文件之前,先保存一份原始的 ucl2.xml。

①打开ucl2.xml 文件,删掉其他的版本烧写

下图这里把文件进行收缩看到,只需要保留"name=emmc"的内容,其他的可以删掉

删掉如下图

 ②修改将 ucl2.xml 文件下关于emmc的内容

把emmc下面的34-38行内容删掉,保留最后一行


 把39行的文件,"file"处文件目录名后改写为烧写材料的u-boot文件名

 接着把图面的41-42行删除

 把43行的"file"处文件目录名后改写成要烧写材料的zImage文件名

 把下图的46-47行删掉

 把下图的51-60行删掉

 把61行"file"处文件目录名后改写成要烧写材料的.dtb文件名

 往下来到“<!-- access boot partition -->”,把76-80行删掉

 把81行的"file"处文件目录名后改写成要烧写材料的uboot文件名

 来到<!-- burn zImage -->,93行的"file"处文件目录名后改写成要烧写材料的zImage文件名

 来到<!-- burn dtb -->,把102和109行留下,其他删掉

 把102行"file"处文件目录名后改写成要烧写材料的.dtb文件名

把109行cp路径最后面也换成.dtb文件名

  来到<!-- burn m4 demo bins-->,111-117行删掉

 来到    <!-- burn rootfs -->,把125行删掉

把126行"file"处文件目录名后改写成要烧写材料的rootfs文件名

 到此就基本完成修改了

三、烧写测试

用usb连接电脑和USB OTG 接口,把拨码开关拨到 USB 下载模式,需要弹出tf或sd卡

打开自己命名的vbs文件,这里为“ mfgtool2-my-emmc.vbs”,连接成功如下图

图片中可能是出现英文,只要是符合即可。点击“Start”按钮即可开始烧写

烧写完成启动开发板

出现“Starting kernel ...”以后就再也没有任何信息输出了,说明Linux 内核启动失败了。

此时 EMMC 的分区 1 中是存在设备树文件的,只是文件名字为:imx6ull-my-emmc.dtb,因此读取 imx6ull-14x14-evk.dtb 肯定会出错的,解决方法很简单,有两种方法:1、重新设置 bootcmd 环境变量值,2、修改 uboot 源码
这里就用第一种

进入 uboot 的命令行,重新设置 bootcmd 和 bootargs 这两个环境变量的值,这里要注意的
是 bootargs 的值也要重新设置一下,命令如下:

setenv bootcmd 'mmc dev 1;fatload mmc 1:1 80800000 zImage;fatload mmc 1:1 83000000
imx6ull-my-emmc.dtb;bootz 80800000 - 83000000'
setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw'
saveenv

重启开发板即可

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值