使用 Petalinux 定制 Linux 系统

2023-05-16

离线编译petalinux

本文是基于Alinx FPGA开发板(AXU2CGA)学习过程中踩过的坑,以做记录。

1.创建工程目录 :路径中“~”表示用户 home 路径

mkdir -p ~/peta_prj/linxPsBase

2.导入.xsa文件 :.xsa文件是由vitis vivado导出的,在工作目录下创建一个文件夹hardware ,拷贝.xsa文件至该文件夹下。需要要注意该.xsa文件对应的vivado工程需要包含ZYNQ的ARM硬核(已配置好各个外设),并以include bitstream形式导出.xsa。

mkdir -p ~/peta_prj/linxPsBase/hardware
cd ~/peta_prj/linxPsBase/hardware
cp <.xsa的文件夹路径>/design_1_wrapper.xsa ./

3.进入工作环境 :返回工程目录linxPsBase,设置 petalinux 环境变量,环境变量叧在当前终端中有效,所有与petalinux 相关的命令都要在当前终端中输入,关闭后需要重新运行。

cd ~/peta_prj/linxPsBase/
source /opt/pkg/petalinux/settings.sh     #设置 petalinux 环境变量,需要提前搭好相关环境,这里便不细说了

4.创建 petalinux 工程:名称为“petalinux”,类型为“project”,使用 zynqMP 模板,将自动在linxPsBase目录下创建petalinux目录。

petalinux-create -t project -n petalinux --template zynqMP

5.配置 硬件信息 :进入petalinux下,配置Petalinux工程的硬件信息,上述hardware目录里只能有一个.xsa文件。

petalinux-config --get-hw-description ../hardware/

6.工程配置 :每完成一层目录的配置需要save再exit至上一层目录。

  • 选上kernel autoconfig和u-boot autoconfig,按“y”为选中,“n”为取消。

在这里插入图片描述

  • 此处默认INITRD模式即可,若选用EXT4模式,后续SD卡的镜像需手动刻录,且应设置SD卡的根文件目录(Device node of SD device)为/dev/mmcblk0p2(该路径与FPGA板卡型号有关),具体教程需参考SD卡根文件系统配置说明。

在这里插入图片描述

  • 取消线上编译(Enable Network sstate feeds),选中离线编译(Enable BB NO NETWORK)。

在这里插入图片描述

  • 在Xilinx官网下载downloads_2020.1.tar.gz文件,根据版本要求自行选择下载,该文件是petalinux的镜像文件,放在自定义位置并解压,然后按照文件链接配置以下路径,要十分注意格式。

在这里插入图片描述

  • 在Xilinx官网下载sstate_aarch64_2020.1.tar.gz文件,同样解压到自定义位置,该文件是编译用的,上述两个文件都十分重要,而且数据很大,所以线上下载编译十分费时。解压后,在以下配置中填入解压路径。

在这里插入图片描述

  • 至此配置完成,全部保存并退出,等待配置完成。

在这里插入图片描述
7.修改设备树:将petalinux/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi 文件的内容修改为如下:

/include/ "system-conf.dtsi"
/ {
};
/* SD */
&sdhci1 {
	disable-wp;
	no-1-8-v;
};
/* USB */
&dwc3_0 {
 	status = "okay";
 	dr_mode = "host";
}

8.编译:输入命令petalinux-build,等待编译完成。
在这里插入图片描述
9.生成boot文件:进入文件目录/images/linux打包文件,“–u-boot”参数为要打包合成的内容,会把 u-boot 依赖项全部合成,“–fpga”指带 bit 文件,“–force”为强制合成,覆盖以前合成的 BOOT.BIN,注意命令里是 2 个短横线。

cd ~/peta_prj/linxPsBase/petalinux/images/linux
petalinux-package --boot --u-boot --fpga --force

在这里插入图片描述
10.配置SD卡:在上一步骤目录下将会生成包含有三个文件分别为: boot.bin、boot.scr 和image.ub。如果SD卡应该原先带有出厂镜像,若无需要先回复出厂镜像或者按照上述中的SD卡根文件系统配置教程搭建根文件系统,必须保证SD卡中应有一个完整的文件系统,该系统会分为FAT和EXT两个分区,若是出厂镜像,在EXT分区中会有上述三个文件,只需将编译打包生成的三个文件复制粘贴覆盖原有的文件即可使用。
11.启动Linux:将SD 卡插入板卡,板卡设置为SD卡启动模式,打开串口终端并将板卡上电,在串口上会打印一系列开机信息,使用用户 root,密码 root 登录,进入系统,因为根文件系统为默认的 ram 类型,文件系统不能保存文件和配置。

整个例程到此结束!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Petalinux 定制 Linux 系统 的相关文章

  • 如何在 Python 中将列表变量传递给 subprocess.call 命令

    我有一个清单 apps apps append wq35a5huqlja45jsyukrpmwuiayovrmh apps append q7mimvgduueernwvw4y22t5huemykntw apps append pmudbp
  • 将文件夹中结构化的预构建文件集添加到 android out 文件夹

    我为arm编译了glibc 这与Android glibc或bionic C不同 因为我编译的glibc环境将有助于提供更多api 现在我可以在 Android 运行时将 glibc 环境复制到 system 文件夹中 并且在执行 chro
  • 出现错误 /usr/bin/env: 节点:权限被拒绝

    我已经在我的服务器 Centos 上完成了 ODOO v9 安装 一切都已安装成功 登录页面也可以正常工作 但登录后我收到一个包含以下错误的页面 usr bin env node Permission Denied 我尝试更改权限 但我的问
  • DHCP 服务器将任何 url 重定向到登陆页面

    我有一个 Linux DHCP 服务器 我需要将所有网络流量重定向到一个登陆页面 该页面将包含有关如何在网络上注册计算机的说明 无论用户输入什么 URL 都需要将用户重定向到网页 在 DHCP 服务器上 即 用户输入 google com
  • python kivy在矩形内添加文本

    如何在矩形内添加文本 我使用下面的代码并在画布内添加了一个标签 希望它能显示在矩形内 import kivy from kivy app import App from kivy uix anchorlayout import Anchor
  • 如何将目录路径转换为唯一的数字标识符 (Linux/C++)?

    我正在研究获取目录 文件夹 并派生某种形式的唯一数字标识符的方法 我研究了 字符串到哈希 方法 但是 鸽子洞原理 http www codinghorror com blog 2007 12 hashtables pigeonholes a
  • 什么是 Linux 上易于使用的 C++ 分析器? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我需要分析一些在 Linux 上运行 C 的代码 你们能推荐一些分析器吗 使用 gprof 只需编译 pg标志 我认为 但不确定 你必须关
  • Python 在打开套接字时可以选择哪个网络适配器吗?

    运行 python 应用程序的目标计算机将具有三个可用的网络接口 一般来说 所有三个网络都会有很大不同 但是三个网络中的两个可能位于相似的网络上 在下面的示例中 我无法控制 ETH 2 上的目标地址 因为它是预先配置的系统 因此我被迫以编程
  • Linux 中 NDIS 过滤器的类似物是什么?

    我正在研究一个as close to real time我在linux中尽可能地使用系统 并且需要在收到特定数据包后立即发送大约600 800字节的TCP数据包 为了获得最佳的延迟 我希望这个数据包直接从内核发送 而不是将接收到的数据包一直
  • 如何保护Linux中的堆内存?

    我想将一块堆内存设置为只读 为此我尝试过memalign with mprotect 但是从 memalignment 中我能得到什么 memalign 从进程堆中分配内存 我想将堆的某些部分设为只读 有什么帮助吗 malloc gt mm
  • 使用端口 80 (Ubuntu / Linode) 运行 Node.js 的最佳实践 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在设置我的第一个Node js服务器上的cloud Linux node我对以下细节还很陌生Linux admin 顺便说一句 我并没有尝试
  • 在我的 Linux 机器上安装 lisp

    我使用 Vim 作为我的编辑器 Practical common Lisp 建议安装 Lispbox 我不知道如何使用 emacs 不知道如何用那个 T T 运行 lisp 代码 之后我找到了一个名为 limp vim 的 vim lisp
  • Linux下对多个文件进行排序

    我有多个 很多 文件 每个都非常大 file0 txt file1 txt file2 txt 我不想将它们合并到一个文件中 因为生成的文件将超过 10 场演出 每个文件中的每一行都包含一个 40 字节的字符串 现在字符串的排序相当好 大约
  • Bash:更新文件中的变量

    我知道这是一个简单的答案 在找到答案之前我可能可以继续在谷歌上进行挖掘 但我的日程很紧 我希望能得到一个轻松的答复 我需要在安装时更新 ifcfg eth0 中的变量 换句话说 这就是需要发生的事情 以下变量需要更改 ONBOOT no B
  • 在 docker windows 上运行 linux 容器

    我在 Windows 10 机器上安装了 Docker for Windows 它要求我启用 HyperV 功能 一切都安装正确并且运行良好 虽然有一件事让我大吃一惊 我实际上能够在 docker windows 上运行 Linux 容器
  • 您可以bind()和connect() UDP连接的两端吗

    我正在编写一个点对点消息队列系统 它必须能够通过 UDP 运行 我可以任意选择一侧或另一侧作为 服务器 但这似乎不太正确 因为两端都从另一端发送和接收相同类型的数据 是否可以绑定 和连接 两端 以便它们只能彼此发送 接收 这似乎是一种非常对
  • CMake:不要为链接中使用的单个库设置 rpath

    我想要做的是配置我的 CMakeLists 文件 以便在构建我的项目时 链接器使用驻留在我的构建树中的共享库 so 的副本来链接可执行文件 但不会在中设置 rpath链接的可执行文件 以便系统必须在加载程序请求时提供该库 具体来说 我想在构
  • 为多线程 UDP 客户端执行“close ()”时套接字描述符未释放

    我在下面编写了 UDP 客户端 它基本上生成一个单独的线程来接收数据报 但是数据报仅在主线程中发送 现在 在 Linux 发行版上实例化 udpClient 1 UDP 客户端后按 ctrl D 实现退出循环 围绕 getline 调用 并
  • 更改子进程中的 iostream

    现在 我正在开发一个项目 其中我需要启动一个子进程来使用 C 在 Linux 中执行一个新程序 并且我需要重定向标准输入和输出 就像在 C 中一样 它们是cin and cout 到一个文件 这意味着在子进程中 标准输入和输出都是文件 子进
  • 是否可以允许jenkins访问只有root或某些特定程序可以访问的文件?

    我基本上想做的是允许 jenkins 访问我的 android sdk linux 文件夹和所有子目录 我的老板不想自己更改文件夹的权限 我应该在构建过程中这样做 我见过一些在构建过程中在执行 shell 中运行一些命令的示例 是否可以在该

随机推荐

  • KEIL MDK平台 S3C2440 汇编语言软件仿真

    KEIL MDK平台 S3C2440 汇编语言软件仿真 KEIL MDK平台 S3C2440 汇编语言软件仿真建立工程 xff0c 编辑汇编语言程序编译链接源程序调试博客同款例程https download csdn net downloa
  • matlab 语法_MATLAB中的语法

    matlab 语法 The syntax is the method by which the programmer give various commands to the system or the software These com
  • 什么是SSR/SSG/ISR?如何在AWS上托管它们?

    概述 在这篇文章中 xff0c 我们将讨论如何在AWS上运行SSR SSG ISR以及App Runner的魅力 内容 我们将首先分别解释传统和现代网络应用 接下来 xff0c 我们将介绍如何在AWS上托管SSR SSG ISR 传统网络应
  • 一篇让你上手mysql安装以及my.ini配置

    mysql目前已经作为我们常用的数据库了 xff0c 今天我们学习来安装一下它 1 下载 从官网上下载安装包 xff08 也可以公众号回复mysql可以获取 xff09 https dev mysql com downloads mysql
  • ESP8266型号、下载、接线、烧录等怕忘总结

    ESP8266型号 下载 接线 烧录等怕忘总结 1 不同模块参数 下载接线等 xff08 1 xff09 ESP01 xff08 2 xff09 ESP01S xff08 3 xff09 ESP07 xff08 4 xff09 ESP07S
  • github下载慢

    方法一 xff1a 从GitHub下载文件一直非常慢 xff0c 查看下载链接发现最终被指向了Amazon的服务器 xff0c 下载地址是 http github cloud s3 amazonaws com xff0c 从国内访问Amaz
  • 再次安装Arch Linux!(Vmware,KDE\Gnome桌面,EFI/BIOS引导,双系统配置)更新时间2018/11/11

    1 下载Arch Linux镜像 下载地址 xff1a https xff1a www archlinux org download 可以看到一个磁力一个种子 xff0c 任意下载一个并使用支持的下载软件进行镜像的下载 2 1 xff08
  • ozone调试

    对于keil编译的工程没法用gdb调试 xff08 我没发现方法 xff09 xff0c 那就用Ozone调试 xff0c 官网 https www segger com products development tools ozone j
  • pat1068

    对于计算机而言 xff0c 颜色不过是像素点对应的一个 24 位的数值 现给定一幅分辨率为 M N 的画 xff0c 要求你找出万绿丛中的一点红 xff0c 即有独一无二颜色的那个像素点 xff0c 并且该点的颜色与其周围 8 个相邻像素的
  • windows7系统下如何升级powershell(2.0升级到3.0版本)

    最近在使用vagrant命令时提示2 0的版本不支持需要升级powershell操作如下 查看本机powershell版本号 开始 运行 xff0c 输入powershell进入命令行窗口 在命令行中输入 PSVersionTable PS
  • python+pytesseract 中文识别

    继写了第一篇 包含验证码识别的自动化登录脚本后在一次与朋友聊天中谈到中文识别 想起Tesseract OCR是有这个包的 xff0c 然后我就搞了搞 coding 61 utf 8 from PIL import Image import
  • Codeforces1153A-Serval and Bus(数学)

    原题链接 xff1a http codeforces com contest 1153 problem A 题目原文 xff1a A Serval and Bus time limit per test 1 second memory li
  • tinode登录流程

    登录 交互消息 out是客户端发出 in是客户端接收 客户端发出hi消息 里面主要包括了版本 ua lang消息out span class token punctuation span span class token punctuati
  • While(true)无限循环

    while true 作为无限循环 xff0c 经常在不知道循环次数的时候使用 xff0c 并且需要在循环内使用break才会停止 run 方法中基本都会写while true 的循环 xff0c 如下 xff1a public class
  • python 判断两个字符串的相似度

    import difflib import Levenshtein def get equal rate 1 str1 str2 return difflib SequenceMatcher None str1 str2 quick rat
  • 关于wujian100 SDK中GPIO的调试问题

    学习笔记 问题一 xff1a 引脚电平不稳定问题二 xff1a 进入GPIO中断后出不来 第一次在CSDN写博客 xff0c 用来记录一些学习笔记 xff0c 小白一只 xff0c 如有不足之处望大家多多理解和指导 xff01 分享一下关于
  • 嵌入式C语言-关于if条件判断为真但不执行if块语句的问题

    关于if条件判断为真但不执行if块语句的问题 xff0c 我一直也还不是很清楚是什么原因造成的 在网上查看了一些网友的评论但回答也不是非常的准确 xff0c 或者说每个人遇到的情况都略有不同 我是在调试开发板的时候遇到两类这样的bug xf
  • UEFI模式下双系统安装并引导启动注意事项(RHLE7.9&WIN10)

    UEFI模式下双系统安装并引导启动注意事项 xff08 RHLE7 9 amp WIN10 xff09 引言新的改变资源链接注意事项 引言 就如同大佬说的一样 xff0c 知识也是需要与时俱进的 xff0c 在技术高速革新的时代 xff0c
  • WAV音频文件格式分析

    用notepad 43 43 gt gt plugins gt gt HexEditor notepad 43 43 的一个二进制编辑器插件 可以以16进制查看文件内容 打开一个波形文件如下 xff1a 所有WAV波形文件都可以套用一下一下
  • 使用 Petalinux 定制 Linux 系统

    离线编译petalinux 本文是基于Alinx FPGA开发板 xff08 AXU2CGA xff09 学习过程中踩过的坑 xff0c 以做记录 1 创建工程目录 xff1a 路径中 表示用户 home 路径 mkdir span cla