Linux学习笔记---使用MfgTool工具烧写官方系统(一)

        

目录

MfgTool工具简单介绍

软件烧写原理分析

1 、firmeare 文件夹

2 、files 文件夹

3 、ucl2.xml 文件

烧写步骤

1.连接USB线

2.开发板设置为USB模式

3.开发板上电

4.打开烧写软件

5.开始烧写


                          

MfgTool工具简单介绍

MfgTool 工具是 NXP 提供的专门用于给 I.MX 系列 CPU 烧写系统的软件,可以在 NXP 官网下载到。下载后解压

                                          

解压后里面有两个压缩包,两个压缩包的区别在名字上已经写的很详细了。 “without-rootfs”和“with-rootfs”,一个是带 rootfs 和一个是不带 rootfs。

这里要使用到文件系统,所以就要选择mfgtools-with-rootfs文件,解压mfgtools-with-rootfs.tar.gz

                                    

进入到文件夹中

文件夹里面有很多的.vbs 文件,烧写的时候通过双击这些.vbs 文件来打开烧写工具。由于这里面的文件都是针对不同的系统,这里可以将用不到的文件删除掉。

删除完成后留下这几个文件就可以了

这里开发板使用的是EMMC版本的,实际上只会用到第一个vbs文件。

软件烧写原理分析

 在mfgtools-with-rootfs\mfgtools\Profiles\Linux\OS Firmware 文件夹中存放着烧写需要用到的文件。

MfgTool 其实是先通过 USB OTG 先将 uboot、kernel 和.dtb(设备树)这三个文件下载到开发板的 DDR 中,注意不需要下载 rootfs。就相当于直接在开发板的 DDR上启动 Linux 系统,等 Linux 系统启动以后再向 EMMC 中烧写完整的系统,包括 uboot、linux kernel、.dtb(设备树)和 rootfs,因此 MfgTool 工作过程主要分两个阶段:

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

②、经过第①步的操作,此时 Linux 系统已经运行起来了,系统运行起来以后就可以很方便的完成对 EMMC 的格式化、分区等操作。EMMC 分区建立好以后就可以从 files 中读取要烧写的 uboot、linux kernel、.dtb(设备树)和 rootfs 这 4 个文件,然后将其烧写到 EMMC 中。

这个就是 MfgTool 的大概工作流程。

下面来看一下mfgtools-with-rootfs\mfgtools\Profiles\Linux\OS Firmware中的几个文件的作用。

1 、firmeare 文件夹

打开 firmware 文件夹,里面有很多的.imx 结尾的 uboot 文件、一个 zImage 镜像文件、很多.dtb结尾的设备树文件。这些文件都是NXP官方开发板使用的,不同的板子使用不同的文件。

其中我们需要关心的只有下面的这三个文件:

这三个文件就是 I.MX6ULL EVK 开发板烧写系统的时候第一阶段所需的文件。

将上面这三个文件下载到开发板的 DDR 上以后烧写的第一阶段就完成了,第二阶段就是从 files

目录中读取整个系统文件,并将其烧写到 EMMC 中。下面接着看file文件夹。

2 、files 文件夹

files 目录中的文件和firmware 目录中的基本差不多,都是不同板子对应的 uboot、设备树文件

同样,我们只关心下面四个文件:

3 、ucl2.xml 文件

files 和 firmware 目录下有众多的 uboot 和设备树,那么烧写的时候究竟选择哪一个呢?这

个工作就是由 ucl2.xml 文件来完成的。ucl2.xml 以“<UCL>”开始,以“</UCL>”结束。 “<CFG>”

和“</CFG>”之间是配置相关内容,主要是判断当前是给 I.MX 系列的哪个芯片烧写系统。

“<LIST>”和“</LIST>”之间的是针对不同存储芯片的烧写命令。整体框架如下:

ucl2.xml 首先会判断当前要向 I.MX 系列的哪个芯片烧写系统,然后通过读取芯片的VID和PID来判断当前要烧写什么处理器的系统,接下来通过调用 *.vbs文件来确定给什么存储设备烧写系统。

比如在这里就调用的是mfgtool2-yocto-mx-evk-emmc.vbs 文件

在文件第二行中”eMMC”就表示用EMMC烧写系统。

接下来在ucl2.xml 中找到相应的烧写命令

上面的命令就是BootStrap阶段,也就是第一阶段, “file”表示要下载的文件位置,在firmware

目录下,文件名字为

u-boot-imx6ul%lite%%6uluboot%_emmc.imx

在 L4.1.15_2.0.0-ga_mfg-tools\mfgtools-with-rootfs\mfgtools-with-rootfs\mfgtools 下找到 cfg.i

ni 文件,该文件里包含了开发板的一些信息,查看 cfg.ini 文件可得 lite=l 以及一些字符串代表

的值。

      查看这个cfg.ini 文件后发现文件内容中6uluboot的值和正点原子资料上写的值不一样。正点原子资料上写的值如下:

     实际查看cfg.ini 文件内容后,值如下:

将实际配置文件中的值带入后就是:

u-boot-imx6ul%lite%%6uluboot%_emmc.imx = u-boot-imx6ull14x14ddr3arm2_emmc.imx

所以,这里向 DDR 中下载的是 firmware/ u-boot-imx6ull14x14ddr3arm2_emmc.imx

虽然按照实际文件解析出来的uboot文件名是u-boot-imx6ull14x14ddr3arm2_emmc.imx和正点原子资料上说的不一样,但是烧写完系统后,开发板可以正常运行。

这是为什么呢?难道是这几个变量的值在其他地方被改变了?

没错,配置文件中的变量值是被烧写软件*.vbs 修改了

用文本的格式打开mfgtool2-yocto-mx-evk-emmc.vbs 软件,查看里面的内容。

对比这个vbs文件和配置文件内容

可以发现在vbs文件中重新设置了变量mmc、6uluboot、6uldtb的值,所以最终变量6uluboot值会被替换为14x14evk,变量6uldtb 值会被替换为14x14-evk。

这样一来烧写的uboot文件和设备树文件就可以和上面所要求的文件名对应上了。

同样的方法将.dtb(设备树)和 zImage 都下载到 DDR 中以后就会跳转去运行 OS,这个时候会在 MfgTool 工具中会有“Jumping to OS image”提示语句,ucl2.xml 中的跳转命令如下:

启动 Linux 系统以后就可以在 EMMC 上创建分区,然后烧写 uboot、zImage、.dtb(设备树)

和根文件系统。这个就是 MfgTool 的整个烧写原理。

烧写步骤

1.连接USB线

MfgTool 是通过 USB OTG 接口将系统烧写进 EMMC,这里使用的是正点原子的IMX6ULL-MINI开发板,USB OTG接口不能给开发板供电,如果要使用USB供电的话,还需要一根USB线连接到USB_TTL口给开发板供电。

2.开发板设置为USB模式

将开发板的拨码开关拨到 USB 模式。


如果插了 TF 卡,请弹出 TF 卡,否则电脑不能识别 USB!

3.开发板上电

给开发板上电,这时候电脑就会自动安装USB驱动,驱动程序安装成功后,电脑就会有“登登”的提示音。

4.打开烧写软件

双击打开 mfgtool2-yocto-mx-evk-emmc.vbs 软件

如果通过USB成功连接到了开发板时,软件上面就会提示已经成功连接到了设备。

如果USB驱动安装失败,或者开发板没有上电,就会提示没有连接到设备。

5.开始烧写

连接成功后点击“Start”按钮即就可以开始烧写系统呢,具体烧写什么东西呢?

系统默认会烧写 uboot、Linux kernel、.dtb 和 rootfs 这四个文件。那么这4个文件还没有准备,系统烧写的文件是哪里来了?如果自己没有替换文件,那么软件默认烧写的就是NXP官方自带的文件。

在烧写的过程中USB连接会断开一次

这个不用担心,过一会就会自动连接。

这个烧写的过程会比较久,会有十几二十分钟。

在烧写的过程如果打开串口终端,就会看到串口会输出系统烧写时具体的过程。

烧写完成后进度条就会变成绿色

此时在串口终端上也会有相应的信息提示。

然后点 Stop 按钮,在点Exit按钮退出。

将开发板断电,将拨码开关拨到EMMC模式,然后给开发板重新上电。

同样打开串口终端,就可以看到系统输出的信息。

启动成功后,系统会提示输入登录信息

直接输入root,然后按回车键。

进入到根目录中,使用ls命令,显示根目录中的文件。

到这里就说明使用MfgTool工具已经成功的将NXP官方的系统下载到了自己的开发板上。

接下来我们就按照同样的方法,烧写自己的系统文件。

B站上的韩顺平老师的《Linux学习笔记》系列课程非常值得推荐。通过这个课程,我学到了很多关于Linux操作系统的知识和技能。 首先,韩老师在课程中详细介绍了Linux的基本概念和特点。我清楚地了解到Linux是一个开源的操作系统,具有稳定性、安全性和可定制性强的特点。这让我对Linux有了更深入的理解,也更有信心去学习使用它。 其次,韩老师从基础开始,逐步讲解了Linux的安装和配置。他用简单明了的语言和实际操作的示范,帮助我了解了如何在虚拟机上安装Linux系统,并设置网络、用户账户、文件系统等。这为我后续的学习和实践打下了坚实的基础。 此外,韩老师还讲解了Linux的常用命令和工具。他详细介绍了常用的文件和目录操作命令,比如cd、ls、mkdir、cp等。同时,他还讲解了grep、sed、awk等强大的文本处理工具使用方法。这些内容帮助我更加高效地进行文件管理和数据处理。 最后,韩老师还介绍了Linux的网络管理和安全防护。他讲解了如何配置网络连接、使用ssh远程登录以及设置防火墙等内容。这些知识对我了解网络和保护系统安全非常有帮助。 总的来说,韩顺平老师的《Linux学习笔记》课程非常实用,对于初学者来说是入门学习Linux的好选择。他通过深入浅出的讲解和丰富的实操示范,让我可以轻松地学习Linux的基本知识和操作技巧。我相信通过学习这个课程,我会在Linux领域有更进一步的发展。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值