当前位置: 首页 > news >正文

[100ask_imx6ullpro] buildroot构建emmc镜像并烧录

[100ask_imx6ullpro] buildroot构建emmc镜像并烧录

本文参考百问网韦东山老师视频 嵌入式Linux系统裁剪移植之二:使用Buildroot制作根文件系统
本文的主机环境为 Ubuntu22.04

1.准备工作

1.1.下载buildroot

从官网下载buildroot,本文下载的是长期支持版本(Long-term support)

image

接着下载完成后解压

o(^_^)o:~/下载$ tar -xvf buildroot-2025.02.6.tar.gz -C ~/tmp/
o(^_^)o:~/tmp/buildroot-2025.02.6$ ls
arch   boot     Config.in         configs  DEVELOPERS  fs     Makefile         package  support  toolchain
board  CHANGES  Config.in.legacy  COPYING  docs        linux  Makefile.legacy  README   system   utils

1.2.安装uuu (Universal Update Utility), mfgtools 3.0

ubuntu的uuu工具不需要从githuib上下载、编译、安装,直接使用apt安装即可

sudo apt install uuu

1.3.下载百问网gui_for_nxp_uuu

本文需要使用gui_for_nxp_uuu中的write_all.clst文件

o(^_^)o:~/下载$ git clone git@github.com:100askTeam/gui_for_nxp_uuu.git
(^_^)o:~/下载/gui_for_nxp_uuu/100ask_imx6ull烧写工具$ ls scripts/basic/emmc/write_
write_all.clst        write_boot.clst       write_kernel.clst     write_user_file.clst  
write_all_test.clst   write_dtb.clst        write_noos.clst

2.构建系统

2.1.默认配置

本文使用的是百问网的imx6ullpro开发板,该开发板基于imx6ullevk评估板设计,所以选择imx6ullevk_defconfig作为配置文件

o(^_^)o:~/tmp/buildroot-2025.02.6$ ls configs/imx6ul
imx6ulevk_defconfig           imx6ullevk_defconfig          imx6ulpico_defconfig          imx6ulz_bsh_smm_m2_defconfig

等待packages下载、配置、编译、打包完成

o(^_^)o:~/tmp/buildroot-2025.02.6$ make imx6ullevk_defconfig; make -j16

查看buildroot的生成的images镜像文件目录,可以发现采用imx6ullevk_defconfig配置文件没有生成可烧录到emmc的镜像文件emmc.img

o(^_^)o:~/tmp/buildroot-2025.02.6$ ls output/images/ -hal
总计 102M
drwxr-xr-x 2 xxx xxx 4.0K 10月  8 13:38 .
drwxrwxr-x 6 xxx xxx 4.0K 10月  8 13:38 ..
-rw-r--r-- 1 xxx xxx  16M 10月  8 13:38 boot.vfat				// 内核和设备数镜像
-rwxr-xr-x 1 xxx xxx  32K 10月  8 13:38 imx6ull-14x14-evk.dtb	// 设备树文件
-rw-r--r-- 1 xxx xxx  60M 10月  8 13:38 rootfs.ext2				// 根文件系统
lrwxrwxrwx 1 xxx xxx   11 10月  8 13:38 rootfs.ext4 -> rootfs.ext2
-rw-r--r-- 1 xxx xxx  23M 10月  8 13:38 rootfs.tar
-rw-r--r-- 1 xxx xxx  84M 10月  8 13:38 sdcard.img				// 可烧录到SD卡的镜像文件
-rw-r--r-- 1 xxx xxx 411K 10月  8 13:34 u-boot.bin
-rw-r--r-- 1 xxx xxx 415K 10月  8 13:34 u-boot-dtb.imx			// uboot镜像文件
-rw-r--r-- 1 xxx xxx 8.8M 10月  8 13:38 zImage					// 内核

查看根文件系统rootfs.ext2,发现根文件系统中不存在内核zImage和设备树imx6ull-14x14-evk.dtb

o(^_^)o:~/tmp/buildroot-2025.02.6$ sudo mount -o loop ./output/images/rootfs.ext2 /mnt
o(^_^)o:~/tmp/buildroot-2025.02.6$ ls /mnt/
bin  dev  etc  lib  lib32  linuxrc  lost+found  media  mnt  opt  proc  root  run  sbin  sys  tmp  usr  var
o(^_^)o:~/tmp/buildroot-2025.02.6$ sudo find  /mnt -name zImage
o(^_^)o:~/tmp/buildroot-2025.02.6$ sudo find /mnt -name imx6ull-14x14-evk.dtb

内核zImage和设备树imx6ull-14x14-evk.dtb在boot.vat镜像中

o(^_^)o:~/tmp/buildroot-2025.02.6$ sudo mount -o loop ./output/images/boot.vfat /mnt
o(^_^)o:~/tmp/buildroot-2025.02.6$ ls /mnt/
imx6ull-14x14-evk.dtb  zImage

2.2.修改镜像文件rootfs.ext2

首先在buildroot文件路径下创建一个overlay文件夹

o(^_^)o:~/tmp/buildroot-2025.02.6/100ask_imx6ull/overlay$ ls boot/
imx6ull-14x14-evk.dtb  zImage

make menuconfig 配置Root filesystem overlay directories选项,接着make,这样overlay文件夹中的内容将会被添加到rootfs.ext2文件系统中

image

确保overlay中的内核和设备树文件被添加到rootfs.ext2文件系统中

o(^_^)o:~/tmp/buildroot-2025.02.6$ sudo mount -o loop output/images/rootfs.ext2 /mnt
o(^_^)o:~/tmp/buildroot-2025.02.6$ ls /mnt/
bin/        dev/        lib/        linuxrc     media/      opt/        root/       sbin/       tmp/        var/
boot/       etc/        lib32/      lost+found/ mnt/        proc/       run/        sys/        usr/        
o(^_^)o:~/tmp/buildroot-2025.02.6$ ls /mnt/boot/
imx6ull-14x14-evk.dtb  zImage 

2.3.生成镜像文件emmc.img

为了生成镜像文件,我们需要使用使用到配置配置文件genimage.cfg(从百问网下载),内容如下

o(^_^)o:~/tmp/buildroot-2025.02.6$ cat 100ask_imx6ull/genimage.cfg 
image  emmc.img {hdimage {              // Generates DOS partition images.}partition rootfs-1 {partition-type = 0xCbootable = "yes"size = 10M            // 分区大小为10M}partition rootfs-2 {partition-type = 0x83bootable = "yes"image = "rootfs.ext4" // 这个分区里直接写入映像文件myrootfs.ext4size = 1000M            // 分区大小为100M}

有了genimage.cfg文件,接下来修改board/freescale/common/imx/post-image.sh文件,修改内容如下

@@ -106,7 +106,7 @@"board/freescale/common/imx/$(genimage_type)" > "${GENIMAGE_CFG}"rm -rf "${GENIMAGE_TMP}"
-
+	GENIMAGE_CFG="100ask_imx6ull/genimage.cfg"genimage \--rootpath "${TARGET_DIR}" \--tmppath "${GENIMAGE_TMP}" \
@@ -114,7 +114,7 @@--outputpath "${BINARIES_DIR}" \--config "${GENIMAGE_CFG}"-	rm -f "${GENIMAGE_CFG}"
+#	rm -f "${GENIMAGE_CFG}"exit $?}

修改之后执行make,可以看到output/images目录下生成了emmc.img文件

o(^_^)o:~/tmp/buildroot-2025.02.6$ ls output/images/
boot.vfat  imx6ull-14x14-evk.dtb  rootfs.ext4  sdcard.img  u-boot-dtb.imx
emmc.img   rootfs.ext2            rootfs.tar   u-boot.bin  zImage

3.烧录镜像文件

3.1.修改write_all.clst文件

o(^_^)o:~/下载/gui_for_nxp_uuu/100ask_imx6ull烧写工具$ diff -u scripts/basic/emmc/write_all.clst scripts/basic/emmc/write_all_test.clst 
--- scripts/basic/emmc/write_all.clst	2025-10-07 21:44:56.171162846 +0800
+++ scripts/basic/emmc/write_all_test.clst	2025-10-07 22:50:53.407882191 +0800
@@ -1,9 +1,14 @@
-uuu_version 1.2.39
-FB: ucmd setenv fastboot_dev mmc
-FB: ucmd setenv mmcdev ${emmc_dev}
-FB: ucmd mmc dev ${emmc_dev}
-FB: flash -raw2sparse all ../../../files/emmc.img
-FB: flash bootloader ../../../files/u-boot-dtb.imx
-FB: ucmd if env exists emmc_ack; then ; else setenv emmc_ack 0; fi;
-FB: ucmd mmc partconf ${emmc_dev} ${emmc_ack} 1 0
-FB: done
\ 文件末尾没有换行符
+uuu_version 1.2.39
+SDP: boot -f ../../../firmware/u-boot-dtb_fastboot_100ask.imx
+SDP: done
+FB: ucmd setenv fastboot_dev mmc
+FB: ucmd setenv emmc_dev 1
+FB: ucmd setenv emmc_ack 1
+FB: ucmd setenv mmcdev ${emmc_dev}
+FB: ucmd mmc dev ${emmc_dev}
+FB: flash -raw2sparse all ../../../files/emmc.img
+FB: flash bootloader ../../../files/u-boot-dtb.imx
+FB: ucmd if env exists emmc_ack; then ; else setenv emmc_ack 0; fi;
+FB: ucmd mmc partconf ${emmc_dev} ${emmc_ack} 1 0
+FB: done
+

3.2.使用UUU烧录程序

将生成的emmc.img拷贝到files目录下

o(^_^)o:~/下载/gui_for_nxp_uuu/100ask_imx6ull烧写工具$ ls files/
100ask_imx6ull-14x14.dtb      emmc.img  liteos.bin   rootfs.jffs2  sdcard.img           u-boot-dtb_nandsd.imx
100ask_imx6ull_mini.dtb       led.img   rootfs.ext4  rootfs.ubi    u-boot-dtb.imx       zImage
100ask_myir_imx6ull_mini.dtb  led.imx   rootfs.img   rt-smart.imx  u-boot-dtb_nand.imx

将启动开关拨动到USB启动模式并连接USBOTG后启动开发板

image

确保已连接成功

o(^_^)o:~/下载/gui_for_nxp_uuu/100ask_imx6ull烧写工具$ uuu -lsusb
uuu (Universal Update Utility) for nxp imx chips -- lib1.4.193Connected Known USB DevicesPath	 Chip	 Pro	 Vid	 Pid	 BcdVersion==================================================5:12	 MX6ULL	 SDP:	 0x15A2	0x0080	 0x0001

烧录程序

o(^_^)o:~/下载/gui_for_nxp_uuu/100ask_imx6ull烧写工具$ sudo uuu scripts/basic/emmc/write_all_test.clst  
uuu (Universal Update Utility) for nxp imx chips -- lib1.4.193Success 1    Failure 0                                                                                                         5:12     2/ 2 [Done                                  ] SDP: done

4.EMMC模式启动开发板

使用minicom连接串口

o(^_^)o:~$ sudo minicom -b 115200 -D /dev/ttyACM0

进入uboot,修改环境变量并保存后启动内核

setenv fdt_file imx6ull-14x14-evk.dtb
saveenv
boot

启动后查看内核版本,显示如下信息说明更换内核、设备树、根文件系统成功

注意:uboot没有更换!

image

http://www.hskmm.com/?act=detail&tid=26778

相关文章:

  • 2025 汽车改装公司最新推荐榜:一站式服务生态企业盘点,含奔驰宝马新能源改装及新锐品牌权威测评重庆宝马汽车改装/重庆新能源汽车改装/重庆汽车改装贴膜/重庆汽车改装轮毂刹车公司推荐
  • 2025 布袋包装厂家最新推荐榜:自贸区实力厂商领衔,含手提袋、帆布袋等全品类,年销 500 万级生产商精选无纺布袋/布袋生产/云南布袋包装/茶叶布袋厂家推荐
  • 2025 年成型机厂家最新推荐排行榜:冷弯 / 光伏支架 / 门业 / 建材等领域设备企业精度与耐用性实测点评魔方方管/门框角码/导槽/底樑/光伏支架/C型钢成型机厂家推荐
  • 2025 年平板机厂家最新推荐榜单:聚焦技术实力与市场口碑,5 大优质品牌实测点评
  • 语音识别与合成的融合技术解析
  • 2025 年阳光导入源头厂家最新推荐榜:领军企业技术实力、案例与直销模式深度解析及选择指南工厂/学校/医院/地下车库/隧道阳光导入系统厂家推荐
  • 从Node.js到React/Vue3:流式输出实用的技术的全栈实现指南
  • 用低成本FPGA实现FSMC接口的多串口(UART)控制器
  • 2025 火烧板源头厂家最新推荐榜单:自有矿山保障品质,高硬度耐磨产品全覆盖,五莲花 / 芝麻白 / 防滑芝麻黑采购优选指南
  • 2025 年太阳能路灯厂商最新推荐榜:聚焦优质企业,从技术实力到合作案例全方位解析太阳能道路灯/景观灯/警示灯/庭院灯/草坪灯/杀虫灯厂家推荐
  • 2025 年最新软件开发机构推荐排行榜:涵盖 CRM / 物联网 / 运维管理等系统定制的权威甄选指南成都软件开发/软件定制开发/crm系统定制软件开发机构推荐
  • Luogu P11660 我终将成为你的倒影 题解 [ 紫 ] [ 分块 ] [ 分类讨论 }
  • 2025 年最新推荐!小程序开发机构排行榜:覆盖定制开发 / 电商 / 预订 / 配送多场景优质服务商成都小程序开发/小程序定制开发/电商小程序开发/预订服务小程序开发公司推荐
  • CF280D k-Maximum Subsequence Sum 题解(线段树+反悔贪心维护k段最大子段和)
  • 2025 西安新房住宅最新推荐榜权威发布:多维度测评 + 选房指南,助你精准置业品质/高端/优质/品牌/刚需新房推荐
  • C# async await 测试一
  • 2025 年快速卷帘门厂家最新推荐排行榜:聚焦智能定制与高效供货,精选实力厂家助您精准选购
  • 实验课1
  • 课后作业1
  • 详细介绍:Windows如何定制键盘按键
  • 深入解析:Oracle、PostgreSQL 与 MySQL 数据库对比分析与实践指南
  • TheHackersLabs Templo writeup
  • PCIe扫盲——链路初始化与训练基础(三)之LTSSM
  • #attrs
  • 国庆比赛总结
  • 记录第一个博客
  • PCIe扫盲——链路初始化与训练基础(二)
  • 2025 年 ppt 素材模板 /ppt 模板 ai 生成 /ppt 模板制作 /ppt 模版 / 课件 PPT 模板工具推荐:iSlide 技术优势与全场景服务能力解析
  • 10.8
  • 课后作业1(01-方法)