使用Petalinux设计linux系统

文章目录

    • 1.通过 Vivado 创建硬件平台,得到 hdf 硬件描述文件
    • 2.设置 Petalinux 环境变量
    • 3.创建 Petalinux 工程
    • 4.配置Petalinux 工程
    • 5.配置Linux内核
    • 6.配置Linux根文件系统
    • 7.配置设备树文件
    • 8.编译 Petalinux 工程
    • 9.制作BOOT.BIN启动文件
    • 10.制作SD启动卡

1.通过 Vivado 创建硬件平台,得到 hdf 硬件描述文件

home目录下创建一个名为 petalinux 的目录,并在 petalinux 目录下创建 hdf 目录,将Vivado生成的SDK文件夹拷贝到hdf目录下。

2.设置 Petalinux 环境变量

初始化Petalinux 工作环境:source <petalinux安装路径>/settings.sh

绑定的快捷指令:sptl

3.创建 Petalinux 工程

在petalinux 目录下创建Petalinux工程:petalinux-create -t project --template zynq -n 工程名称

4.配置Petalinux 工程

  1. hdf 硬件描述文件导入到 Petalinux 工程中:
cd <petalinux工程目录>
petalinux-config --get-hw-description ../hdf/xxxx.sdk/

注:此时如果终端界面太窄,会产生错误。

Failed to menu config project component

  1. 导入成功之后会自动弹出 petalinux 工程配置窗口:

在这里插入图片描述

  • 如果后面修改了 Vivado 工程,重新生成 hdf 文件后, 可以重新执行“petalinux-config --get-hw-description hdf文件路径”命令以重新配置 Petalinux 工程。

  • 键盘上按下此高亮字母对应的键可以快速选中对应的菜单。中括号里的“*”表示为已使能配置。

  • 在“Auto Config Settings”中的“Advanced bootable images storage Settings”菜单中可配置启动引导镜像和内核镜像的存储媒介,默认为 sd 卡

  1. 按两次“ESC”退出窗口。

5.配置Linux内核

进入petalinux工程目录

petalinux-config -c kernel

Petalinux 默认使用的内核版本为 4.14.0,使用的内核 Xilinx 官方已经做好了基础配置,一般无需更改。

6.配置Linux根文件系统

进入petalinux工程目录

petalinux-config -c rootfs

默认配置一般够用,“PetaLinux RootFS Settings”可以用来设置 root 用户的密码,默认为“root”。

7.配置设备树文件

cd petalinux工程目录
vi project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi
手动配置

配置信息:

  • compatible:用于与内核驱动匹配的名字
  • label:名字
  • gpios:对应的GPIO引脚
  • 默认状态以及触发状态

8.编译 Petalinux 工程

进入petalinux工程目录:

petalinux-build

该命令将生成设备树 DTB 文件、fsbl 文件、U-Boot 文件,Linux 内核和根文件系统映像。 编译完成后,生成的映像(image.ub)将位于工程的 images 目录下。

Petalinux 会根据 hdf 文件和配置的petalinux工程自动配置 fsbl 和 uboot,一般无需手动配置。

9.制作BOOT.BIN启动文件

ZYNQ 的启动文件 BOOT.BIN 一般包含 fsbl 文件、bitstream 文件和 uboot 文件。

image.ub本质上是多个文件组合在一起,包括内核镜像、dtb文件、根文件系统。

生成 BOOT.BIN 文件:petalinux-package --boot --fsbl --fpga --u-boot --force

“–fsbl”用于指定 fsbl 镜像文件所在位置,后面接文件对应的路径信息,如果不指定文件位置,默认对应的是 images/linux/zynq_fsbl.elf;

“–fpga”用于指定bitstream 文 件 所 在 位 置 ,后面接该文件对应的路径信息,默认对应的是 images/linux/system.bit;

“–u-boot”用于指定 U-Boot 镜像所在位置,后面接该文件 所在路径信息,默认为 images/linux/u-boot.elf。

10.制作SD启动卡

使用 SD 卡引导 linux 系统启动,一般需要在 SD 卡上有 2 个分区。一个分区使用FAT32 文件系统,用于放置启动镜像文件(如 BOOT.BIN、linux 镜像等),另一分区使用 EXT4 文件系统,用于存放根文件系统。

(1)将读卡器插入到电脑并连接到Ubuntu系统,找到SD卡对应的设备节点,比如是/dev/sdb。

(2)先给SD卡分区

umount /dev/sdb*
sudo fdisk /dev/sdb

(3)输入“d”,删除以前的分区

(4)输入“n”创建一个新分区。通过选择“p”使其为主,使用默认分区号 1 和第一个扇区 2048。设置最后一个扇区,也就是设置第一个分区的大小,可设置为100MB,输入+100M

(5)设置分区类型,输入“t”,然后输入“c”,设置为“W95 FAT32 (LBA)”。

(6)输入“a”,设为引导分区,第一个分区创建完成。

(7)输入“n”,创建根文件系统分区,然后一路默认。

(8)输入“p”,检查分区表,如没问题,输入“w”写入到SD卡并退出。

(9)格式化分区,将第一个分区格式化成 FAT32 分区并命名为 boot,将第二个分区格式化成 ext4 分区并命名为 rootfs。

sudo mkfs.vfat -F 32 -n boot /dev/sdb1
sudo mkfs.ext4 -L rootfs /dev/sdb2

(10)分别点击两个图标即可自动将这两个分区挂载到 Ubuntu 系统。

(11)将 petalinux 工程目录 image/linux 目录下的 BOOT.BIN 和 image.ub 文件拷贝到名为 boot 的分区。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/864038.shtml

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

相关文章

GaussDB关键技术原理:高性能(三)

GaussDB关键技术原理&#xff1a;高性能&#xff08;二&#xff09;从查询处理综述对GaussDB的高性能技术进行了解读&#xff0c;本篇将从查询重写RBO、物理优化CBO、分布式优化器、布式执行框架、轻量全局事务管理GTM-lite等五方面对高性能关键技术进行分享。 目录 3 高性能…

Jupyter Notebook相关

Jupyter Notebook 相关 一、什么是 Jupyter Notebook&#xff1f; 1.1 基本概念 Jupyter Notebook 是一个基于 web 的应用程序&#xff0c;可以用来创建和共享包含代码、文本、公式、图像和图表的文档。它类似于一个电子笔记本&#xff0c;你可以在一个页面上写代码并立即运行…

.secret勒索病毒详解,如何防御网络隐秘威胁

引言&#xff1a; 在数字化日益普及的今天&#xff0c;网络安全问题愈发凸显&#xff0c;其中勒索病毒作为一种极具破坏性的恶意软件&#xff0c;给个人用户和企业带来了巨大的损失和心理压力。.secret勒索病毒&#xff0c;作为这一威胁中的佼佼者&#xff0c;以其高度的隐蔽性…

Android Graphics 显示系统 - BufferQueue的状态监测

“ BufferQueue作为连接生产者和消费者的桥梁&#xff0c;时刻掌握队列中每一块Buffer的状态&#xff0c;对于解决一些卡死卡顿问题很有帮助&#xff0c;辨别是否有生产者或消费者长期持有大量Buffer不放导致运行不畅的情况。” 01 — 前言 在Android系统中&#xff0c;应用U…

Redis基础教程(四):redis键(key)

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…

多层感知机与CLIP在推荐系统和多模态学习中的应用

MLP多层感知机 在推荐系统中,MLP(Multi-Layer Perceptron,多层感知机)是一种常用的神经网络模型,用于捕捉用户和物品之间的复杂非线性关系,从而生成高质量的推荐结果。以下是 MLP 在推荐系统中的应用及其优势。 MLP 在推荐系统中的作用 用户和物品特征的表示: MLP 能够…

Spring Boot应用的部署与扩展

Spring Boot应用的部署与扩展 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 引言 Spring Boot作为现代化Java应用的首选框架之一&#xff0c;以其简化的配置…

MicroBin好用的粘贴板工具

有时候你可能想从一台电脑上粘贴文本到另一台电脑上&#xff0c;或者是你想要分享一张图片或者是一些文件&#xff0c;某些设备上登陆qq和微信有不太方便&#xff0c;那么就可以使用MicroBin&#xff0c;它不但可以实现跨设备复制粘贴的功能&#xff0c;还支持文件上传等功能 …

微信小程序的在线客服系统源码 附带完整的源代码包以及搭建部署教程

系统概述 微信小程序的在线客服系统源码是一套专门为微信小程序开发的客服解决方案。它通过与微信小程序的紧密集成&#xff0c;为用户提供了便捷、高效的客服沟通渠道。该系统源码采用先进的技术架构&#xff0c;具备良好的稳定性和扩展性&#xff0c;能够满足不同规模企业的…

大数据开发语言 Scala(二):变量和数据类型

目录 1. 变量的基本概念 1.1 不可变变量&#xff08;val&#xff09; 1.2 可变变量&#xff08;var&#xff09; 2. 数据类型详解 2.1 基本数据类型 2.1.1 数字类型 2.1.2 字符类型 2.1.3 布尔类型 2.2 复杂数据类型 2.2.1 数组 2.2.2 元组 2.2.3 列表 2.2.4 集合…

韩顺平0基础学java——第34天

p675-689 UDP网络编程 1.类 DatagramSocket和 DatagramPacket[数据包/数据报]实现了基于UDP协议网络程序。 2.UDP数据报通过数据报套接字DatagramSocket发送和接收&#xff0c;系统不保证UDP数据报一定能够安全送到目的地,也不能确定什么时候可以抵达。 3.DatagramPacket对象…

【前端】从零开始学习编写HTML

目录 一、什么是前端 二、什么是HTML 三、HTML文件的基本结构 四、HTML常见标签 4.1 注释标签 4.2 标题标签 4.3 段落标签 4.4 换行标签 4.5 格式化标签 4.6 图片标签 4.7 超链接标签 4.8 表格标签 4.9 列表标签 4.10 表单标签 &#xff08;1&#xff09;form标…

Python 学习之面向对象(四)

面向对象编程&#xff08;Object-Oriented Programming, OOP&#xff09;是一种编程范式&#xff0c;它使用“对象”来设计应用程序和软件系统。在Python中&#xff0c;面向对象编程是一个核心概念&#xff0c;并得到了广泛的支持。 以下是Python面向对象编程的一些基本概念和特…

MySQL高可用(MHA高可用)

什么是 MHA MHA&#xff08;MasterHigh Availability&#xff09;是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点的问题。 MySQL故障切换过程中&#xff0c;MHA能做到0-30秒内自动完成故障切换操作。 MHA能在故障切换的过程中最大…

内容营销专家刘鑫炜:如何撰写一篇吸睛又能转化的医疗推广软文?

在我每天要处理的稿件中&#xff0c;有1/3以上是医疗软文&#xff0c;但稿件质量情况不容乐观&#xff0c;大部分医疗软文甚至用极其糟糕来形容都为过&#xff0c;互联网都到下半场了&#xff0c;很多医疗机构营销人员的营销思维还是停留在二十几年前&#xff0c;投放的软文还是…

SpringMVC系列八: 手动实现SpringMVC底层机制-第三阶段

手动实现SpringMVC底层机制 实现任务阶段六&#x1f34d;完成控制器方法获取参数-RequestParam1.&#x1f966;将 方法的 HttpServletRequest 和 HttpServletResponse 参数封装到数组, 进行反射调用2.&#x1f966;在方法形参处, 指定 RequestParam, 将对应的实参封装到参数数组…

Perl正则表达式捕获组:深入探索与实战应用

&#x1f575;️‍♂️ Perl正则表达式捕获组&#xff1a;深入探索与实战应用 在Perl的世界里&#xff0c;正则表达式是其强大的文本处理能力的基石。捕获组作为正则表达式中的一个核心概念&#xff0c;允许我们从匹配的文本中提取子字符串。本文将深入探讨如何在Perl中使用正…

【AI应用探讨】—k-means应用场景

目录 数据挖掘 图像分析 自然语言处理 生物信息学 物流配送优化 公共安全与城市规划 社交网络分析 数据挖掘 市场分析&#xff1a;在市场营销中&#xff0c;企业可以利用K-means算法对消费者进行聚类分析&#xff0c;根据消费者的购买行为、消费习惯等信息将客户分成不同…

Redis缓存问题二、缓存雪崩

缓存雪崩 缓存雪崩&#xff1a;是指在同一时段大量的缓存key同时失效或者Redis服务宕机&#xff0c;导致大量请求到达数据库&#xff0c;带来巨大压力。 缓存雪崩的解决方案&#xff1a; 给不同的Key的TTL添加随机值利用Redis集群提高服务的可用性给缓存业务添加降级限流策略…

sql-语句

文章目录 SQL语句的学习sql是什么sql的内置命令sql的种类sql mode库&#xff0c;表属性介绍&#xff1a;字符集&#xff0c;存储引擎列的数据类型&#xff1a;数字&#xff0c;字符串&#xff0c;时间列的约束DDL: 数据定义语言库表 Online DDL(ALGORITHM) *DML :数据操纵语言资…