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

news/2025/10/8 15:31:04/文章来源:https://www.cnblogs.com/bzImage/p/19129699

[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.mzph.cn/news/931656.shtml

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

相关文章

湘潭网站建设厦门网站制作wordpress页面排版插件

抖音API允许开发者进行二次开发,使得第三方应用程序可以与抖音进行交互。要将抖音API应用于抖音视频的录制和上传,你需要遵循以下步骤: 获取抖音API密钥:首先,你需要从抖音官网注册一个开发者账号,并创建一…

建设网站科目网络平台制作多少钱

在微服务架构下随着服务越来越多,定位问题也变得越来越复杂,因此监控服务的运行状态以及针对异常状态及时的发出告警也成为微服务治理不可或缺的一环。服务的监控主要有日志监控、调用链路监控、指标监控等几种类型方式,其中指标监控在整个微服务监控中比重最高,也是实际生…

什么网站做美式软装设计方案报告模板

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我,都给你】 🍅 欢迎点赞 👍 收藏 ⭐留言 &…

2025 汽车改装公司最新推荐榜:一站式服务生态企业盘点,含奔驰宝马新能源改装及新锐品牌权威测评重庆宝马汽车改装/重庆新能源汽车改装/重庆汽车改装贴膜/重庆汽车改装轮毂刹车公司推荐

汽车后市场的蓬勃发展推动改装需求向个性化、全场景升级,但行业乱象让车主选择陷入困境。多数机构业务单一,难以覆盖从配件选购到售后养护的完整链条,导致服务体验碎片化;技术层面,部分机构缺乏标准化流程,合规性…

2025 布袋包装厂家最新推荐榜:自贸区实力厂商领衔,含手提袋、帆布袋等全品类,年销 500 万级生产商精选无纺布袋/布袋生产/云南布袋包装/茶叶布袋厂家推荐

在 “双碳” 目标与 “限塑令” 深化的双重催化下,布袋包装市场规模年增速超 20%,但行业乱象同步滋生:67% 的企业客户反映曾遭遇样品与成品不符问题,材料以次充好、定制周期失控等痛点频发。同时,环保认证缺失、产…

上海高端网站建设服陕西省建设网三类人员成绩公示

GitHub中readme.md文件的编辑和使用 | YuuiChungs BlogGitHub - guodongxiaren/README: README文件语法解读,即Github Flavored Markdown语法介绍

给缅甸公司网站做维护工作时间段怎样做免费网站会员

今天做了个测试,写了个测试用例来看看merge与update时控制台打印出来的日志有什么不一样。实体bean很简单,就id和name两个字段,接下来分别给出以下几种测试情形的控制台日志内容: 1. 数据库记录已存在,更改person的nam…

语音识别与合成的融合技术解析

本文探讨了语音识别与语音合成技术的融合趋势,重点介绍了频谱量化方法如何将语音处理转化为类似大语言模型的序列预测问题,以及生成式AI对传统语音合成范式的革新。Interspeech:语音识别与合成的融合之处 随着今年I…

Qt Creator在windows下打开时总是未响应

Qt Creator在windows下打开时总是未响应1.关闭QtCreator 2.找到AppData\Roaming\QtProject文件夹,删掉。 3.重新打开QtCreator

广州设计企业网站深圳房产备案查询官网

null 也就是在字段中存储null值,空值也就是字段中存储空字符(‘’) 占用空间的区别 执行sql:mysql> select length(NULL), length(‘’), length(‘1’); 空值’是不占用空间的,而null的长度是null,其实是占用空间的。mysql…

2015做哪些网站致富人力资源公司网站建设方案

又到学习Word技巧的时候啦!学了这么长时间,你的技能点有没有增加呢?对表格的使用有没有更加熟练了?是否很好奇别人家的表格是怎么弄成可以单选框和复选框的效果呢~~~~下面让小编带你解锁新姿势~效果图如下:(1)开发工具…

2025 年阳光导入源头厂家最新推荐榜:领军企业技术实力、案例与直销模式深度解析及选择指南工厂/学校/医院/地下车库/隧道阳光导入系统厂家推荐

在建筑节能领域快速发展的当下,阳光导入技术作为实现节能减排、推动绿色建筑发展的关键手段,市场需求持续攀升。但当前行业乱象丛生,部分厂家缺乏核心技术,产品采光效率低、稳定性差,难以适配体育馆、地下车库、医…

响应式学校网站网站设计公司哪家比较好

先说一下自己的情况,本科生,2019年我通过校招踏入了成都一家软件公司,开始了我的职业生涯。那时的我,满怀热血和憧憬,期待着在这个行业中闯出一片天地。然而,随着时间的推移,我发现自己逐渐陷入…

从Node.js到React/Vue3:流式输出实用的技术的全栈实现指南

从Node.js到React/Vue3:流式输出实用的技术的全栈实现指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consol…

用低成本FPGA实现FSMC接口的多串口(UART)控制器

详细介绍了在低成本FPGA/CPLD上实现了基于FSMC接口(GD32上称为EXMC接口)的多串口控制器的方法。尽管目前工业以太网已经相当普及,但在工控领域仍然存在大量使用UART通过RS485和RS422组网的设备和控制器,导致含有多…

2025 火烧板源头厂家最新推荐榜单:自有矿山保障品质,高硬度耐磨产品全覆盖,五莲花 / 芝麻白 / 防滑芝麻黑采购优选指南

随着建筑装饰与市政工程对火烧板需求激增,行业乱象愈发凸显,给采购方带来多重困扰。部分厂家缺乏稳定原材料渠道,导致产品硬度不足、耐磨性差,难以承受户外长期使用;传统加工工艺落后,规格偏差、表面处理粗糙等问…

实用指南:Python数据可视化科技图表绘制系列教程(一)

实用指南:Python数据可视化科技图表绘制系列教程(一)2025-10-08 14:58 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; …

给特宝网站商家网址怎样做网站企业建设

beginWork 1 )概述 在 renderRoot 之后,要对我们的 Fiber 树每一个节点进行对应的更新更新节点的一个入口方法,就是 beginWork这个入口方法会有帮助我们去优化整棵树的更新过程 react 它的节点其实是非常多的,如果每一次子节点的…

网站推广的方式和方法常见的微网站平台有哪些方面

文章目录 linux软件安装linux系统部署liunx升级linux常见故障及排查思路概要 1. Linux软件安装 软件包管理:Linux系统通常使用包管理工具(如APT、YUM、DNF等)来简化软件安装和管理。用户可以通过命令行快速安装、卸载和更新软件包。源配置:确保软件源(repository)正确配…

2025 年太阳能路灯厂商最新推荐榜:聚焦优质企业,从技术实力到合作案例全方位解析太阳能道路灯/景观灯/警示灯/庭院灯/草坪灯/杀虫灯厂家推荐

随着新能源政策大力推进与绿色基建需求持续攀升,太阳能路灯行业迎来发展机遇,但市场问题也随之凸显。部分产品存在太阳能板转换效率低、电池续航不足等缺陷,阴雨天气易出现照明中断;不少厂商缺乏核心技术,仅靠组装…