米联客F20-2CG(ZYNQ MPSoC)Petalinux EXT4持久化文件系统搭建教程

发布时间:2026/10/22 2:03:22
米联客F20-2CG(ZYNQ MPSoC)Petalinux EXT4持久化文件系统搭建教程 适用平台米联客MLK-F20-CM02-2CG ZYNQ MPSoC开发板软件版本Petalinux 2021.1、Ubuntu 18.04串口环境下载地址https://www.uisrc.com/t-3177.html前言默认Petalinux编译生成的系统采用ramdisk临时文件系统文件系统运行在内存中开发板断电后所有修改的数据、配置都会丢失无法满足实际项目持久化存储需求。本文基于米联客F20-2CG开发板手把手教大家将Petalinux根文件系统修改为EXT4持久化文件系统通过SD卡分区存储根文件系统实现断电数据保存全程采用离线编译方式规避在线编译网络报错问题适配2021.1版本Petalinux。本文涵盖工程配置修改、设备树适配、SD卡分区格式化、系统编译、镜像部署、板卡启动测试全流程。图1 开发板功能示意图前置环境1. 已搭建完成Petalinux2021.1开发环境米联客定制Ubuntu18.04虚拟机2. 已准备好离线编译依赖包适配MPSoC 64位处理器3. 提前获取F20-2CG对应的Vivado导出XSA硬件描述文件4. 8G及以上SD卡格式清空用于分区制作启动卡5. 开发板、串口线、SD卡读卡器、电源适配器一、核心原理说明1. ramdisk模式根文件系统挂载在内存读写速度快但断电数据清零仅适用于调试测试2. EXT4持久化模式将根文件系统挂载在SD卡EXT4分区所有文件修改、程序安装、配置保存均可永久生效断电不丢失3. SD卡双分区设计FAT32分区boot存放BOOT.BIN、boot.scr、Image、system.dtb等启动镜像EXT4分区rootfs挂载Linux根文件系统持久化存储系统数据二、进入工程并配置离线编译必做为避免在线编译网络超时、服务器连接失败问题全程使用离线编译配置沿用前文搭建的工程目录。1. 进入Petalinux工程目录加载环境变量cd /home/uisrc/project/systemsource ../../petalinux2021.1/settings.sh图2 进入工程并加载环境变量2. 打开工程配置界面petalinux-config图3 petalinux-config配置界面3. 配置Yocto离线编译参数已有配置可跳过新工程必须配置进入 Yocto Settings - Add pre-mirror url输入路径file:///home/uisrc/downloads_2021.1_update1进入 Yocto Settings - Local sstate feeds settings输入64位MPSoC路径/home/uisrc/sstate_aaarch64_2021.1_update1/aarch64取消勾选 Enable Network sstate feeds关闭网络编译模式配置完成后暂不保存继续下一步文件系统配置。三、修改根文件系统为EXT4模式3.1 配置文件系统类型与挂载盘符在petalinux-config配置界面依次进入Image Packaging Configuration - Root filesystem type默认为ramdisk模式修改为EXT4(SD/eMMC/SATA/USB)图4 修改Root filesystem type为EXT4选中后界面会新增盘符配置项填写F20-2CG开发板SD卡挂载节点Device node of SD device /dev/mmcblk1p2图5 Image Packaging Configuration配置界面图6 填写Device node of SD device/dev/mmcblk1p2关键说明F20-2CG板卡sdhci0对应SD卡设备系统识别为mmcblk1第二分区p2专门用于挂载EXT4根文件系统切勿填错盘符否则系统启动失败。图7 设备树SDHCI节点mmcblk设备映射3.2 设备树适配SD卡防止写保护报错修改设备树文件关闭SD卡写保护避免挂载失败编辑设备树配置文件vim /home/uisrc/project/system/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi在文件末尾添加如下配置sdhci0 {disable-wp;};sdhci1 {disable-wp;};图8 system-user.dtsi 添加disable-wp配置保存退出ESC :wq完成设备树适配。四、清理缓存并编译系统1. 清理历史编译缓存避免配置残留冲突petalinux-build -x cleanall2. 执行离线编译耗时取决于电脑配置无网络依赖petalinux-build图9 执行编译命令图10 petalinux-build编译成功编译成功会提示Successfully built project3. 打包生成BOOT.BIN启动镜像petalinux-package --boot --format BIN --fsbl images/linux/zynqmp_fsbl.elf --u-boot images/linux/u-boot.elf --pmufw images/linux/pmufw.elf --fpga images/linux/*.bit --force图11 打包生成BOOT.BIN启动镜像执行完成后images/linux目录下生成核心启动文件BOOT.BIN、image.ub、system.dtb、rootfs.tar.gz五、SD卡双分区格式化与系统部署将SD卡通过读卡器接入Ubuntu虚拟机使用系统自带磁盘工具分区禁止Windows格式化会导致分区格式异常。5.1 SD卡分区划分1. 打开Ubuntu磁盘工具选中接入的SD卡删除原有所有分区图12 磁盘工具删除原有分区2. 新建第一个分区分区大小500MB格式FAT32分区名称boot图13 新建boot分区图14 分区配置图15 分区配置3. 新建第二个分区占用剩余全部空间格式EXT4分区名称rootfs图16 新建rootfs分区图17 分区配置图18 分区配置保存分区方案等待格式化完成手动挂载两个分区。图19 分区完成图20 挂载boot/rootfs分区5.2 部署启动文件与根文件系统1. 拷贝启动文件到FAT32 boot分区将 images/linux 目录下的 boot.scr、BOOT.BIN、image.ub 三个文件复制到SD卡boot分区。图21 拷贝启动文件到boot分区2. 解压根文件系统到EXT4 rootfs分区sudo tar zxvf rootfs.tar.gz -C /media/uisrc/rootfs/图22 解压根文件系统到rootfs分区3. 强制写入缓存避免文件丢失sync操作完成后安全弹出SD卡完成系统部署。六、开发板启动配置与测试6.1 拨码开关配置F20-2CG专用将开发板拨码开关调整为 SD卡启动模式OFF-ON-OFF接线说明插入SD卡连接USB串口、电源打开Putty串口工具波特率默认115200。6.2 持久化功能验证1. 上电启动开发板系统正常进入Linux终端图23 系统启动并查看内核版本uname -a2. 创建测试文件touch test.txtecho EXT4持久化测试 test.txt图24 创建并写入测试文件3. 断电重启开发板重新进入系统4. 查看文件是否存在ls图25 断电重启后文件保留若test.txt文件保留、内容未丢失说明EXT4持久化文件系统配置成功。七、常见问题与解决方案问题1系统启动提示mmcblk0p1挂载失败解决方案检查设备树是否添加disable-wp配置关闭SD卡写保护重新编译烧录。问题2断电后数据依旧丢失解决方案确认petalinux-config中文件系统类型已改为EXT4且盘符/dev/mmcblk1p2填写正确重新配置编译。问题3编译过程sstate匹配失败解决方案检查离线包路径配置确认64位离线包适配MPSoC架构关闭网络编译模式。问题4SD卡分区后无法挂载解决方案使用Ubuntu原生磁盘工具分区禁止Windows格式化确保分区格式为纯FAT32和EXT4。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询