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

FPGA----基于ZYNQ 7020实现petalinux文件持久化存储

引言:由于当前的 PetaLinux 系统使用了临时的内存文件系统(initramfs),导致每次重启后所有更改(包括安装的 EPICS)都会丢失。为了解决这个问题,您需要将根文件系统(rootfs)配置为使用 SD 卡上的持久性存储(如 ext4 分区)。

本文基于下述文章搭建:

FPGA----基于ZYNQ 7020实现petalinux并运行一个程序-CSDN博客文章浏览阅读391次,点赞6次,收藏11次。本文实现了xilinx sdk与petalinux的联合使用,在sdk仿真完毕后,可以将程序移植到petalinux中运行petalinux app。 https://blog.csdn.net/qq_37912811/article/details/1477282051、在 PetaLinux 项目目录中运行以下命令:

petalinux-config

2、在弹出的配置菜单中,导航至:

Image Packaging Configuration → Root File System Type

 选择SD卡存储

 4、重新构建 PetaLinux 项目:

petalinux-buildpetalinux-package --boot --u-boot --fpga --force

5、格式化sd卡,需要一个FAT分区,一个EXT4分区

(1)把开发板的 sd 卡插入读卡器,然后插入电脑的 USB 口
(2)连接到虚拟机 Linux 中

(3)在 ubuntu 的搜索路径中,输入 disk,会出现 Disks 的图标 

(4)鼠标点击 Disks 图标,出现"Disks"的对话框,将 SD 卡分为2个分区,一个名为FAT,一个名为 EXT,这里要重新分区。 

(5)点击添加分区的图标,添加第一个分区,填写 5000MB,格式为 FAT,用于存放ZYNQ 的启动文件 BOOT.bin 和内核文件、设备树,名称为 FAT

(6)创建第二个分区,用于存放根文件系统,格式为 EXT4,名称为 EXT4

6、同步根文件到EXT4分区

执行"petalinux-build"后,在images/linux下会生成rootfs.ext文件

  • 使用工具(如 fdiskgparted)将 SD 卡分为两个分区:

    • 第一个分区(FAT32):用于存放 BOOT.BINimage.ub

    • 第二个分区(ext4):用于作为根文件系统。

  • 格式化第二个分区为 ext4 文件系统。

  • 将构建生成的 rootfs.ext4 文件写入第二个分区:

(1)确保sd卡已经被卸载

# 卸载我们的EXT4分区
sudo umount /media/yangzheng/EXT4

(2)查找EXT4对应的设备

lsblk

 我这里配置的容量是2.5GB,所以它叫“sdb2”

 所以我们复制的命令为:

cd ~
cd /home/yangzheng/Downloads/ax7z020/ax_peta/images/linux
sudo dd if=rootfs.ext4 of=/dev/sdb2 bs=4M 

 (3)将 BOOT.BINimage.ub移动至 FAT分区

 7、上电启动,我们新建epics文件夹,将一些文件上传并重启,如果看到文件夹还在那么表示成功。 

 

http://www.xdnf.cn/news/4218.html

相关文章:

  • Linux主机时间设置操作指南及时间异常影响
  • LeetCode 解题思路 45(Hot 100)
  • 科普文:丰田凯美瑞三代混动(THS II)技术解析
  • Golang领域Beego框架的中间件开发实战
  • 【Linux】用户与组管理
  • Fastjson 从多层级的JSON数据中获取特定字段的值
  • Transformer中的三种注意力机制
  • 开源模型应用落地-qwen模型小试-Qwen3-8B-推理加速-vLLM-结构化输出(三)
  • Copilot for PPT 可直接用模板创建品牌演示文稿
  • 【Python-Day 10】Python 循环控制流:while 循环详解与 for 循环对比
  • 文件上传/读取/包含漏洞技术说明
  • MySQL中有哪几种锁?
  • 【“星瑞” O6 评测】 — 车辆速度估计
  • 【区块链】Uniswap之滑点(Slippage)
  • Java 检查某个点是否存在于圆扇区内(Check whether a point exists in circle sector or not)
  • springBoot中自定义一个validation注解,实现指定枚举值校验
  • LINUX——例行性工作
  • 私有仓库 Harbor、GitLab
  • K8S使用--dry-run输出资源模版和兼容性测试
  • Django缓存框架API
  • 物理服务器紧急救援:CentOS系统密码重置全流程实战指南
  • 如何添加或删除极狐GitLab 项目成员?
  • JPress安装(Docker)
  • 如何在使用 docker-compose 命令时指定 COMPOSE_PROJECT_NAME ?
  • 概统期末复习--速成
  • 区块链交易所开发:开启数字交易新时代
  • TypeScript简介
  • LeetCode 热题 100 198. 打家劫舍
  • 【机器学习-线性回归-6】机器学习中的维度:从特征工程到降维艺术
  • Missashe考研日记-day33