1. 背景:

使用Petalinux构建linux系统,虽然便利,但是对于驱动开发不够灵活,且将rootfs与内核打包在一起,导致启动速度慢,因此:

  1. 将FPGA bit文件从BOOT.BIN分开

  2. image.ub文件分开为zImage和设备树

  3. 将rootfs放在EXT4分区

这样SD卡内容如下

  1. boot分区(fat分区):BOOT.BIN(FSBL + u-boot)、system.dtb、boot.scr、zImage、system.bit及APP

  2. rootfs(ext4分区):rootfs(驱动挂载在根文件系统目录下)

  3. 流程

  4. 创建Petalinux工程

    sptl

    petalinux-create -t project --template zynq -n MY_ZYNQ_PRJ

    cd MY_ZYNQ_PRJ

    petalinux-config --get-hw-description /<xsa location>

    注意:petalinux-config需要配置 Image Packaging Configuration --> Root filesystem type 为

    EXT4,即从EXT4分区挂载根文件系统

    打包BOOT.BIN

petalinux-build -c bootloader

petalinux-build -c u-boot

petalinux-package --boot --fsbl --u-boot --force

注意:对于Petalinux 21版本及以后版本:必须使用petalinux-package --boot --fsbl --u-boot --force命令构建BOOT.BIN,而不能加上--dtb no选项

原因如下:

2.2 生成boot.scr

petalinux-build //

修改boot.scr,详细见《正点原子领航者ZYNQ之嵌入式Linux开发指南》

主要是从image.ub改为zImage启动内核、添加system.bit启动

注意:编译boot.scr文件,需要使用u-boot-tools工具,使用

sudo apt install u-boot-tools安装

2.3 编译内核

我这里使用的linux内核版本为v5.15_2022,

具体流程同《正点原子领航者ZYNQ之嵌入式Linux开发指南》,

2.4 编译根文件系统

petalinux-config -c rootfs
petalinux-build -c rootfs
sudo tar -xzf rootfs.tar.gz -C /media/rootfs //将根文件系统压缩包解压至SD卡 ext4分区

2.5 启动开发板

将文件拷贝只SD卡:

  1. boot分区(fat分区):BOOT.BIN(FSBL + u-boot)、system.dtb、boot.scr、zImage、system.bit及APP

  2. rootfs(ext4分区):rootfs(驱动挂载在根文件系统目录下)

启动开发板,进入系统

  1. 驱动开发遇到的问题

    1. 驱动编译,报错:<linux/ide.h> :no such file

    是因为我采用linux5.15版本内核编译,在5.14版本后,删除了<ide.h>,可以使用libata相关库替代

改为<linux/libata.h>就不报错了

使用Petalinux2022搭建ZYNQ系统镜像问题记录的更多相关文章

  1. ZYNQ的Linux Linaro系统镜像制作SD卡启动

    ZYNQ的Linux Linaro系统镜像制作SD卡启动 0. 概述 ZYNQ生成uboot的时候和正常的ARM设备不太一样,ZYNQ属于二次辅助启动uboot然后由uboot启动内核,大概意思就是 ...

  2. 初涉定制linux系统之——自动化安装Centos系统镜像制作

    最近碰到个需求:要在内网环境安装centos6.5系统并搭建服务,但由于自动部署脚本里安装依赖包使用的是yum安装,而服务器无法连接外网,实施人员也不会本地yum源搭建O__O "….. 本 ...

  3. 实战 Prometheus 搭建监控系统

    实战 Prometheus 搭建监控系统 Prometheus 是一款基于时序数据库的开源监控告警系统,说起 Prometheus 则不得不提 SoundCloud,这是一个在线音乐分享的平台,类似于 ...

  4. 按照Enterprise Integration Pattern搭建服务系统

    在前一篇文章中,我们已经对Enterprise Integration Pattern中所包含的各个组成进行了简单地介绍.限于篇幅(20页Word以内),我并没有深入地讨论各个组成.但是如果要真正地按 ...

  5. ELK+FileBeat+Log4Net搭建日志系统

    ELK+FileBeat+Log4Net搭建日志系统 来源:https://www.zybuluo.com/muyanfeixiang/note/608470 标签(空格分隔): ELK Log4Ne ...

  6. 搭建本地Ubuntu 镜像服务器

    一.需求分析 最近公司软件Team 有个需求是这样的:能不能在局域网搭建一个Ubuntu 镜像服务器, 这样作的好处是可以节省Ubuntu某些常用工具的安装时间. 二.部署过程 2.1 测试环境 目前 ...

  7. 如何使用win7自带的备份还原以及创建系统镜像------傻瓜式教程

    对于经常鼓捣电脑的童鞋来说,装系统是一件极其平常的事情,不过系统装多了之后,我们会感到比较烦躁,因为每一次装系统意味着驱动的重新安装,程序的重新安装,每次这么鼓捣几次,半天时间就花在这上面了,效率是在 ...

  8. 第三篇——第二部分——第二文 计划搭建SQL Server镜像

    原文:第三篇--第二部分--第二文 计划搭建SQL Server镜像 本文紧跟上一章:SQL Server镜像简介 本文出处:http://blog.csdn.net/dba_huangzj/arti ...

  9. 关于IP核中中断信号的使用---以zynq系统为例

    关于IP核中中断信号的使用---以zynq系统为例 1.使能设备的中断输出信号 2.使能处理器的中断接收信号 3.连接IP核到处理器之间的中断 此处只是硬件的搭建,软件系统的编写需要进一步研究. 搭建 ...

  10. 搭建Harbor私有镜像仓库--v1.5.1

     搭建Harbor私有镜像仓库--v1.5.1 1.介绍 Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境 ...

随机推荐

  1. 如何在 MySQL 中监控和优化慢 SQL?

    如何在 MySQL 中监控和优化慢 SQL? 在 MySQL 中,慢 SQL 查询是指那些执行时间较长的查询,通常会影响数据库的性能和响应时间.通过监控和优化这些慢 SQL 查询,可以提高数据库的效率 ...

  2. 备注一下,SolidColorBrush,自定义颜色

    new SolidColorBrush((Color)ColorConverter.ConvertFromString("#27212B"))

  3. 【ROS】1.1 ROS基本命令介绍

    原视频 ROS基本命令 右键新标签页查看大图! have to do Command Command Result 中文解释 图示 roscore Open the core of the ROS. ...

  4. Pandas 实现 Excel 多列 转 多行

    也是最近的一个需求, 将一个 Excel 表, 多列转多行, 就把那种行的, 业务人员经常搞的那种垃圾表,给它转为咱熟悉的数据库表的形式, 多列转多行. 还要帮他们处理数据, 恶心得一批, 其实也不一 ...

  5. Python基础 - 文件处理(上)

    读写文件, 文件备份, 上传资料这些操作应该是大家日常工作中每天都要做的事情. 而文件呢, 又有不同的类型(后缀名), 比如 .txt, .xls, .xlsx, .csv, .json, .sql ...

  6. 自实现模态对话框-DoModal函数

    参考CDialog::DoModal函数的实现方式,自己实现了模态框相关功能. ModalBase.h头文件 1 #include <afxwin.h> 2 3 #define ID_NU ...

  7. C#之可访问性约束(可访问性不一致)

    C# 语言中的有些构造要求某个类型至少与某个成员或其他类型具有同样的可访问性 (at least as accessible as).如果 T 的可访问域是 M 可访问域的超集,我们就说类型 T 至少 ...

  8. IDEA主题下载仓库地址

    拿去,不多BB https://plugins.jetbrains.com/search?tags=Theme

  9. ODOO14里面qweb使用案例

    在ODOO里面中,通过QWeb来对模板进行渲染后加载到浏览器中,故作笔记以便于查询简介:Qweb被用作OpenERP的Web客户端模板引擎.它是一种基于XML的模板语言,同Genshi, Thymel ...

  10. 详解鸿蒙Next仓颉开发语言中的动画

    大家上午好,今天来聊一聊仓颉开发语言中的动画开发. 仓颉中的动画通常有两种方式,分别是属性动画和显示动画,我们今天以下面的加载动画为例,使用显示动画和属性动画分别实现一下,看看他们有什么区别. 显示动 ...