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官方的系统下载到了自己的开发板上。
接下来我们就按照同样的方法,烧写自己的系统文件。
Linux学习笔记---使用MfgTool工具烧写官方系统(一)相关推荐
- Linux学习笔记---使用MfgTool工具烧写自己的系统(二)
目录 准备文件 重命名文件 替换firmware文件夹中的文件 替换files文件夹中的文件 修改cfg.ini配置文件 烧写系统 启动系统 设置网络相关环境变量 设置环境变量bootcmd 和 bo ...
- Linux学习笔记(二)——文件与磁盘系统
Linux学习笔记(二)--文件与磁盘系统 文件操作 ls [选项][目录名]-l :列出长数据串,包含文件的属性与权限数据等-a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)- ...
- 裸板烧写linux内核,嵌入式linux学习(二):烧写裸板进程
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 用了两种方式烧写裸板 1.使用J-link烧写uboot,然后再使用uboot烧写其他进程1)J-link只能烧写Nor ...
- itop-4412学习笔记:TF卡烧写
1. 制作可以烧写的TF卡(TF卡内存至少2G) 给TF卡分区.需要将TF卡先插入开发板,然后再启动开发板并进入Uboot模式,然后在超级终端中,依次输入下列烧写命令: fdisk -c 1 fatf ...
- linux 观察应用使用内存的情况,Linux学习笔记:free和top命令查看系统内存使用情况...
free 命令 Linux free 命令用于显示内存状态. free 指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等. 语法: free [-b ...
- Linux学习笔记---记一次rootfs根文件系统下载时掉进的大坑
俗话说要想技术好,踩坑少不了.技术的好坏和踩坑的多少基本是成正比的.这次就大大的提升了一次技术(大大的踩了一次坑).废话少说,直奔主题. 最近入手了一块正点原子的IMX6ULL开发板,跟着视频教程和开 ...
- (零)我为什么要写Linux学习笔记?
我对Linux有强烈的好奇心,兴趣:写学习笔记会让我有成就感:我记忆力实在不好.好吧,其实真正原因是:如果我能把自己学到的知识简明扼要的讲出来,写出来,那便证明我真的学懂了我想学的知识.没时间怎么办? ...
- 最热网友收藏:写得蛮好的linux学习笔记(2007年第10周)
2007年第10周最热网友收藏 上班人员必读:"五险一金"详解!(130),共376人收藏,liukang520236首先收藏 写得蛮好的linux学习笔记-(96),共159人收 ...
- Linux学习笔记---移植官方uboot步骤(一)
目录 编写shell脚本 修改MakeFile文件 重命名shell脚本 添加默认配置文件 修改默认配置文件 准备需要的板级文件夹 重命名.C文件 修改Makefile 修改imximage.cfg配 ...
最新文章
- 广域网设备:远程路由器/交换机/服务器—Vecloud
- 硬RAID可以为NVMe SSD数据可靠性保驾护航吗?
- HTG Explains: Why Linux Doesn’t Need Defragmenting
- 数学是理工基础,如何才能令人信服?
- 深入了解CSS字体度量,行高和vertical-align
- php获取本机root,通过PHP执行root命令
- nginx简介--理解nginx配置/模块/openresty
- 工欲善其事必先利其器,TI-ONE平台“实操手册”在这里!
- curl / libcURL ‘tailmatch()’ Cookie 信息泄露漏洞
- 【车间调度】基于matlab GUI遗传算法求解车间调度问题【含Matlab源码 049期】
- 自定义标签之使用struts的valueStack取值
- 分布式系统中Topology(Rack) Awareness的实现思路
- 为什么有了FineBI后还会有FineReport?这两者的区别真的很大
- CocosCreator微信小游戏之排行榜
- kettle报错 Driver class ‘org.gjt.mm.mysql.Driver‘ could not be found, make sure the ‘MySQL‘ driver
- 怎么把多个图片转成一个文字版的Word呢
- 浅谈单线程的Redis快的原因是什么
- 第一篇Mac上fluter开发环境配置
- 评法国和瑞士之比赛郁闷篇
- SharePoint使用资源管理器打开,提示:在文件资源管理器中打开此库时遇到问题