使用MfgTool烧写前需准备的文件

news2024/12/28 4:14:08

一.  简介

本文我们就来学习,如何将我们编译的 uboot,zImage(内核镜像),xxx.dtb设备树文件,还有制作的根文件系统,这四个文件烧写到开发板中,最后 开发板能正常启动。

本文这里使用 NXP(恩智浦)官方提供的 MfgTool烧写工具,烧写我们自己的文件。

二.  使用MfgTool烧录前准备的文件

本文使用 NXP(恩智浦)官方提供的 MfgTool烧写工具烧写系统。

具体使用 mfgtools-without-rootfs.tar.gz 烧写工具,即带文件系统的这个烧写工具。

我这里所使用的 ALPHA开发板是 nand-Flash版的,所以,这里所要烧录的 uboot,zImage,与设备树文件都必须是针对 nand-Flash版的。而 根文件系统rootfs没有 EMMC或 Nand-Flash的区分,无非就是 EMMC容量大一些(比 nand-Flash版开发板),根文件系统中也可以添加比 Nand-Flash版开发板多一些的其他文件或程序。

需要准备烧写的文件:

(1)  自己移植编译出来的 uboot 可执行文件: u-boot.imx
(2)  自己移植编译出来的 zImage 镜像文件和开发板对应的 .dtb( 设备树 ) ,对于 I.MX6U
ALPHA 开发板来说就是 imx6ull-alientek-emmc.dtb
(3)  自己构建的根文件系统 rootfs ,这里我们需要对 rootfs 进行打包。

1.  uboot 文件

uboot使用 之前我们一直使用的 NXP 官方提供的 uboot源码编译,因为之前一直使用正点原子的 MfgTool烧录工具烧录的根文件系统,同时,也为了开发板通过 tftp服务可以从 ubuntu中加载 zImage和设备树文件,所以,uboot源码更改了 nand-Flash版对应的 bootargs参数值。

这里需要将 bootargs参数更回到 NXP官方提供的值。

打开 include/configs/mx6ull_alientek-nand.h文件,找到nand-Flash对应的 bootargs参数设置代码,如下代码:

#if defined(CONFIG_SYS_BOOT_NAND)
#define CONFIG_EXTRA_ENV_SETTINGS \
	CONFIG_MFG_ENV_SETTINGS \
	"panel=TFT43AB\0" \
	"fdt_addr=0x83000000\0" \
	"fdt_high=0xffffffff\0"	  \
	"console=ttymxc0\0" \
	"ipaddr=192.168.1.50\0" \
	"ethaddr=b8:ae:1d:01:00:00\0" \
	"gatewayip=192.168.1.1\0" \
	"serverip=192.168.1.66\0" \
	"netmask=255.255.255.0\0" \
	"bootargs=console=ttymxc0,115200 ubi.mtd=5 "  \
		"root=ubi0:rootfs rootfstype=ubifs "		     \
		CONFIG_BOOTARGS_CMA_SIZE \
        "mtdparts=gpmi-nand:4m(u-boot),128k(env),1m(logo),1m(dtb),8m(kernel),-(rootfs)\0"\
	"bootcmd=tftp 0x80800000 zImage;"\
		"tftp ${fdt_addr} imx6ull-alientek-nand.dtb;"\
		"bootz 0x80800000 - ${fdt_addr}\0"
else
.........................................

将上面的代码更改为如下:

#if defined(CONFIG_SYS_BOOT_NAND)
#define CONFIG_EXTRA_ENV_SETTINGS \
	CONFIG_MFG_ENV_SETTINGS \
	"panel=TFT43AB\0" \
	"fdt_addr=0x83000000\0" \
	"fdt_high=0xffffffff\0"	  \
	"console=ttymxc0\0" \
	"bootargs=console=ttymxc0,115200 ubi.mtd=4 "  \
		"root=ubi0:rootfs rootfstype=ubifs "		     \
		CONFIG_BOOTARGS_CMA_SIZE \
		"mtdparts=gpmi-nand:64m(boot),16m(kernel),16m(dtb),1m(misc),-(rootfs)\0"\
	"bootcmd=nand read ${loadaddr} 0x4000000 0x800000;"\
		"nand read ${fdt_addr} 0x5000000 0x100000;"\
		"bootz ${loadaddr} - ${fdt_addr}\0"
#else
.......................................

重新编译 uboot源码,生成的 u-boot.imx 文件备用。

2.  内核镜像 zImage 和 .dtb设备树文件

Linux内核镜像文件 zImage 与设备树文件 也是 NXP官方的 Kernel源码编译生成的,是前面我们在 NXP官方 kernel源码的基础上做改动,最终编译出的 nand-Flash版的  zImage和 设备树文件 imx6ull-alientek-nand.dtb 。

zImage所在目录: linux-imx-rel_imx_4.1.15_2.1.0_ga/arch/arm/boot

imx6ull-alientek-nand.dtb 所在目录:/linux-imx-rel_imx_4.1.15_2.1.0_ga/arch/arm/boot/dts

这两个文件 留待备用。

3.  自制的根文件系统rootfs

要烧录开发板上的 根文件系统,使用前面我制作的 rootfs。我所制作的 根文件系统rootfs 在 ubuntu系统下的 /linux/nfs_File 目录下。

这里我们需要对 rootfs 进行打包,进入Ubuntu 中的 rootfs 目录中,然后使用 tar 命令对其进行打包,命令如下:

wangtian@wangtian-virtual-machine:~/linux/nfs_File$ cd rootfs/
wangtian@wangtian-virtual-machine:~/linux/nfs_File/rootfs$ tar -cvjf rootfs.tar.bz2 *

完成以后会在 rootfs 目录下生成一个名为 rootfs.tar.bz2 的压缩包:
wangtian@wangtian-virtual-machine:~/linux/nfs_File/rootfs$ ls
中文测试  dev  hello    lib      mnt   root            sbin  tmp
bin       etc  hello.c  linuxrc  proc  rootfs.tar.bz2  sys   usr
wangtian@wangtian-virtual-machine:~/linux/nfs_File/rootfs$ 

三.  更改待烧录文件名

因为使用 NXP官方提供的 MfgTool工具进行烧写,我所使用的开发板是 Nand-Flash版,所以,需要确认NXP的 MfgTool工具内部对应的 Nand-Flash版开发板所对应烧写的四个文件是什么?即是哪个uboot文件,哪个内核镜像 zImage,哪个设备树文件以及哪个根文件系统。

注意:要烧写我自制的 系统,就需要将自制的四个文件替换掉 MfgTool工具中对应 Nand-Flash版的四个文件!!!

1.  确认 Nand-Flash版开发板对应的文件

主要替换下面两个文件夹下的文件:

L4.1.15_2.0.0-ga_mfg-tools/mfgtools-with-rootfs/mfgtools/Profiles/Linux/OS Firmware/firmware

L4.1.15_2.0.0-ga_mfg-tools/mfgtools-with-rootfs/mfgtools/Profiles/Linux/OS Firmware/files

firmware 文件夹下替换三种文件:Uboot,zImage,xxx.dtb 设备树文件

files文件夹下替换四种文件:Uboot,zImage,xxx.dtb 设备树文件,文件系统rootfs

自制的文件准备好以后,还不能直接进行烧写,必须对其进行重命名,否则的话 ucl2.xml 是识别不 出来的,前面讲解 ucl2.xml 语法的时候已经说过了,将自制的文件分别改名为如下名字:即使左边一列文件名改为右边一列名字:

自制文件的名字重命名
u-boot.imx
u-boot-imx6ull14x14evk_nand.imx
zImage
zImage
imx6ull-alientek-emmc.dtb
zImage-imx6ull-14x14-evk-gpmi-weim.dtb
rootfs.tar.bz2
rootfs_nogpu.tar.bz2

注意:上面 NXP 官方对应 Nand-FLash版开发板的文件名,可以通过 MfgTool工具中结合 .vbs文件(mfgtool2-yocto-mx-evk-nand.vbs)与 ucl2文件可以确定。

自制的文件如下:

将以上四个文件改名后如下:

改名后文件分别替换 :

firmware 文件夹下替换三种文件:u-boot-imx6ull14x14evk_nand.imx,zImage,zImage-imx6ull-14x14-evk-gpmi-weim.dtb 设备树文件

files文件夹下替换四种文件:Uboot,zImage,xxx.dtb 设备树文u-boot-imx6ull14x14evk_nand.imx,zImage,zImage-imx6ull-14x14-evk-gpmi-weim.dtb 设备树文件,文件系统rootfs_nogpu.tar.bz2

下一篇文章,学习使用 NXP官方提供的 MfgTool工具烧写我自制的文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1302980.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux实用操作篇-下篇

Linux实用操作篇-上篇:Linux实用操作-上篇-CSDN博客 一、网络传输 1.1 ping命令 网络是否可联通 可以通过ping命令,检查指定的网络服务器是否是可联通状态 语法: ping [-c num] ip或主机名 选项:-c,检查的次数,…

# 一些视觉-激光、加速度传感器类的铣削振动测试方法案例

一些视觉-激光类的铣削振动测试方法 1. 基于激光测振仪的振动测试2. 切削加工的 加速度传感器实测信号2.1 x轴向信号2.2 Y轴向信号2.3 第二次廊坊实验3. 关于数值频域积分1. 基于激光测振仪的振动测试 【1】舜宇LDV|激光测振—机床铣刀寿命预测 新刀具为100hz主频 旧刀具为800…

多源异构数据融合是什么,在进行故障预测、诊断、辨识的时候有什么有优点和缺点!

文章目录 1、多源异构数据融合是什么2、多源异构数据融合的优点主要包括:3、多源异构数据融合进行故障辨识的缺点 1、多源异构数据融合是什么 多源异构数据融合是将来自于不同设备、传感器、系统或网络等多个数据源的数据进行整合并综合分析处理的一种技术。这种数…

AcWing 95. 费解的开关(递推)

题目链接 活动 - AcWing 本活动组织刷《算法竞赛进阶指南》,系统学习各种编程算法。主要面向有一定编程基础的同学。https://www.acwing.com/problem/content/97/ 题解 只要第一行开关的状态确定,则所有开关的状态都可以被推出来。第一行开关总共有种操…

了解 git rebase

了解 git rebase 大多数人习惯使用 git merge 将更改从功能分支合并到主分支,但还有其他方法。我们是否曾经遇到过 git rebase 这个术语并想知道它是什么?或者我们可能听说过 rebase 和 merge ,但不确定何时使用哪个?不用担心&am…

Axure的安装及基本功能介绍

目录 一. Axure概述 二. Axure安装 2.1 安装包下载 2.2 安装步骤 三. Axure功能介绍​ 3.1 工具栏介绍 3.1.1 复制,剪切及粘贴 3.1.2 选择模式和连接 3.1.3 插入形状 3.1.4 点(编辑控点) 3.1.5 置顶和置底 3.1.6 组合和取消组合 …

论文笔记:A review on multi-label learning

一、介绍 传统的监督学习是单标签学习,但是现实中一个实例可能对应多个标签。这篇文章介绍了多标签分类的定义和评价指标、多标签学习的算法还有其他相关的任务。 二、问题相关定义 2.1 多标签学习任务 假设 X R d X R^d XRd,表示d维的输入空间&am…

LabVIEW开发矿井排水监控系统

LabVIEW开发矿井排水监控系统 针对矿井水害对煤矿安全生产构成的威胁,设计了一种基于嵌入式PLC和LabVIEW的矿井排水监控系统。该系统结合了PLC的可靠控制与单片机的应用灵活性,有效克服了传统排水方法中的不足,如测量不准确、效率低下等问题…

Panalog 日志审计系统 sprog_deletevent.php SQL 注入漏洞复现

0x01 产品简介 Panalog大数据日志审计系统定位于将大数据产品应用于高校、 公安、 政企、 医疗、 金融、 能源等行业之中,针对网络流量的信息进行日志留存,可对用户上网行为进行审计,逐渐形成大数据采集、 大数据分析、 大数据整合的工作模式…

PairLIE论文阅读笔记

PairLIE论文阅读笔记 论文为2023CVPR的Learning a Simple Low-light Image Enhancer from Paired Low-light Instances.论文链接如下: openaccess.thecvf.com/content/CVPR2023/papers/Fu_Learning_a_Simple_Low-Light_Image_Enhancer_From_Paired_Low-Light_Instan…

IO函数及应用

1.实现登录功能。自定义- -个usr.txt,手动输入账户密码,格式如下:账户密码 例如: zhangsan 12345 lisi abcde wangwu abc123 需求如下: a.从终端获取账户密码,与文件中的账户密码比较 b.若终端输入的账户不存在,则输出账户不存在 c.若终端输入…

【文心一言】使用飞桨 AI Studio 快速搭建,看图识猜成语应用

目录 一、背景二、实践三、创建应用3.1、零代码开发3.2、应用名称3.2、模型训练3.3、开始训练 四、应用部署4.1、发布项目4.2、搜索应用4.3、应用部署4.4、获取令牌4.4、导入依赖4.5、配置CORS4.6、使用测试API4.7、运行4.8、测试API接口4.9、前端API接口 五、启动前端5.1、模块…

读书笔记 | 自我管理的关键是提高执行力

哈喽啊,你好,我是雷工! 有句话说,能管好自己才是真的本事。 自我管理,管好自己很重要。 我们之所以懂得这么多的道理,却依然过不好这一生? 很大部分原因是因为管不住自己,做不到。 …

UART设备

UART简介 UART(Universal Asynchronous Receiver/Transmitter)通用异步收发传输器,UART作为异步串口通信协议的一种,工作原理是将传输数据的每个字符一位接一位地传输。 是在应用程序开发过程中使用频率最高的数据总线。 UART串…

linux7安装redis7.2.3以及使用ssh方式远程连接redis教程

1.下载redis.tar.gz包 地址:Download | Redis 2. 上传到linux服并解压 cd /home/local tar -zxvf redis-7.2.3.tar.gz 3.编译并设置安装目录 安装前先安装python3:linux7安装python3.12.1教程-CSDN博客 yum install gcc-c # 安装编译所需环境 cd redi…

stm32学习:DHT11+0.96寸oled屏

目录 材料 接线 步骤 stm32clube配置 配置gpio口 配置IIC,OLED 生成项目 打开项目编辑 加入dht11和oled文件到项目中 将.c文件加入到项目中,然后编译 修改main代码 烧录后就会在oled上出现温湿度 注意 材料 stmf103c8t6dht11oled(IIC&…

智能外呼是什么意思?智能外呼的工作原理是什么?

智能外呼是什么意思? 智能外呼是指利用人工智能技术实现对电话外呼的优化和自动化,以提高外呼效率和质量。智能外呼可以根据客户的需求和行为进行智能化的拨号、语音识别、语音合成、自动化问答等操作,从而实现更高效、更准确的客户沟通和营…

低代码(low code)开发平台,我选JNPF

近年来,低代码开发技术正以迅猛的步伐崭露头角,成为数字化转型浪潮下的重要工具。据 Gartner 预测,到 2025 年,低代码技术将占据 70% 的新应用开发份额,引领着企业应用开发的新趋势。然而,随之而来的是市场…

基于ssm技术的车库智能管理平台论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本车库智能管理平台就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息…

全局代理IP的工作原理和实现方法

目录 前言 一、全局代理IP的工作原理 1.代理服务器 2.代理协议 二、全局代理IP的实现方法 1.构建代理服务器 2.实现数据转发 3.使用代理服务器 4.启动代理服务器 三、全局代理IP的代码实现 四、总结 前言 在网络中,代理服务器是一种获取网络资源的方式。…