petalinux制作linux系统flash+sd卡启动

如下图所示是我们得到了制作完毕的BOOT.BIN、image.ub以及rootfs.tar.gz。

 BOOT.BIN: Zynq 的标准启动镜像格式,包含了 FSBL、FPGA 比特流和 U-Boot,可以直接被 Zynq 的 BootROM 识别并加载。

 Image.ub:PetaLinux 工程生成的一个 U-Boot 启动镜像文件,采用 FIT (Flattened Image Tree) 格式。里面包含了linux的内核镜像和设备树文件(DTB)。

 rootfs.tar.gz:是根文件系统。

一、BOOT.BIN与boot.bin的对比

• BOOT.BIN(全大写):

o 标准约定: 这是 Xilinx 等厂商 BootROM 默认寻找的硬编码文件名。

o 场景: 当 Zynq 或 MicroBlaze 系统上电时,内部的 BootROM 代码会去查找第一个分区(通常是 FAT32 格式)下名为 BOOT.BIN 的文件。

o 大小写要求: 虽然 FAT32 文件系统本身不严格区分大小写(通常存储为大写),但为了兼容性,在格式化 SD 卡时,将文件命名为大写 BOOT.BIN 是最稳妥的做法。如果命名为小写,某些版本的 BootROM 可能无法识别。

• boot.bin(全小写):

o U-Boot 环境: 这个名字通常出现在 U-Boot 运行之后。

o 场景: 在 Linux 系统启动后,或者在使用 fatload 命令从 SD 卡加载文件到内存时,开发者可能使用小写的 boot.bin 作为第二阶段加载的镜像文件名。

o 手动加载: 开发者为了调试或制作双系统,可能会将不同的引导文件命名为 boot.bin 放在不同的目录下,然后通过 U-Boot 命令手动加载,而不是依赖 BootROM 自动加载。

二、flash+sd卡启动的介绍以及实现

将BOOT.BIN写到flash中去引导sd卡中的镜像文件以及根文件系统,最后在系统上电时在boot启动界面设置根文件系统在sd卡的第二分区,之后设置自动启动,最好将设置的参数写入flash固定地址达到固化的作用。

首先将BOOT.BIN写入到flash中地址为0x0。

烧录完毕即可。

之后按照上一期的sd卡分区将文件分别放入第一分区和第二分区,将image.ub放入第一分区(不放入BOOT.BIN),将根文件系统放入第二分区,然后将sd卡插入板子,使用flash启动即可。

命令如下图所示:

1. 设置内核启动参数(告诉内核根文件系统在 SD 卡第二个分区)

setenv bootargs 'console=ttyPS0,115200 root=/dev/mmcblk0p2 rw rootwait'

2. 设置自动启动命令(从 SD 卡加载内核并启动)

setenv bootcmd 'mmc dev 0; fatload mmc 0:1 0x10000000 image.ub; bootm 0x10000000'

3. 检查设置是否正确

printenv bootcmd bootargs

4. 保存环境变量到 SPI Flash(重要,否则重启后失效)

saveenv

5. 手动启动测试

boot

本文章由威三学社出品

对课程感兴趣可以私信联系

相关推荐
Ruiery6 小时前
Linux 6.6内核 CPU 深度解析(七):调度器启动 — 从单核到多核,调度器分阶段点亮
linux·运维·服务器
50万马克的面包7 小时前
CSDN-栈队列数组-知识点整理
linux·运维·服务器
MicrosoftCloud7 小时前
用户权限 04|/etc/sudoers 安全配置:从最小授权到「别把 ALL 随便给人」
运维·安全·ubuntu·sudo·sudoers
wjkjpcba8 小时前
PCBA烧录程序是什么:PCBA包工包料厂家解析烧录与测试
linux·数据库·人工智能·smt贴片加工·pcba贴片加工厂
꯭自꯭闭꯭8 小时前
达梦事物特性及MVCC
linux·运维·数据库
91刘仁德9 小时前
HTTP协议详解:从URL到HTTP服务器的完整实战
服务器·网络·笔记·网络协议·http
亚川楼宇自控系统数据中心厂家10 小时前
实验室智能化管理系统|人环物智一体化管控平台
运维
羔羊++10 小时前
18_实验十七_其他命令与自定义启动变量
linux
zmsup11 小时前
Agent 上下文调优:结合 OpsArk 运维智能体,设计模型每一步真正需要的信息
运维·agent·上下文压缩·运维智能体·上下文调优
DYWorker00112 小时前
Linux驱动:RK3568 GMAC + YT8531C 千兆以太网全流程解剖
linux