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

一.  简介

本文我们就来学习,如何将我们编译的 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工具烧写我自制的文件。

相关推荐

  1. 压力测试准备

    2023-12-10 07:18:02       32 阅读
  2. 51单片机c语言录软件,51单片机程序方法

    2023-12-10 07:18:02       59 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-10 07:18:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-10 07:18:02       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-10 07:18:02       87 阅读
  4. Python语言-面向对象

    2023-12-10 07:18:02       96 阅读

热门阅读

  1. 前端知识笔记(二)———Django与Ajax

    2023-12-10 07:18:02       54 阅读
  2. qml刷新C++中的QImage图像

    2023-12-10 07:18:02       63 阅读
  3. 使用Spring Security、JWT和Swagger进行登录验证的流程

    2023-12-10 07:18:02       54 阅读
  4. Tomcat使用https方式连接

    2023-12-10 07:18:02       54 阅读
  5. 【MySQL】之联合索引与最左匹配原则

    2023-12-10 07:18:02       45 阅读
  6. 动态规划01-斐波那契类型一

    2023-12-10 07:18:02       54 阅读
  7. 安卓11双屏双背光修改方法

    2023-12-10 07:18:02       58 阅读