0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA技术教程Linux开发:Petalinux安装

FPGA技术专栏 来源:FPGA技术专栏 作者:FPGA技术专栏 2026-04-20 16:30 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本篇Petalinux安装,选自 ALINX 黑金云课堂 FPGA 免费直播课。该课程由 ALINX 资深工程师团队倾力打造,从 0 到 1 系统化教学,帮助每位工程师跨过 FPGA 开发门槛。

Petalinux 安装

工具安装

在 Ubuntu 安装环境依赖

sudo  apt-get  update
sudo dpkg --add-architecture i386
sudo apt-get install iproute2 gawk python3  build-essential gcc git make net-tools libncurses-dev tftpd-hpa zlib1g-dev libssl-dev flex bison libselinux1 gnupg wget diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib automake zlib1g:i386 screen pax gzip cpio python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa-dev libsdl1.2-dev pylint libtinfo5

修改系统默认 shell

sudo dpkg-reconfigure dash  

创建安装目录

sudo  chown  -R  $USER:$USER     /opt
mkdir   -p   /opt/pkg/petalinux/2025.2
sudo  chmod   0755   /opt/pkg/petalinux/2025.2  

确保 en_US.UTF-8 语言集已安装

sudo apt install -y locales
sudo locale-gen en_US.UTF-8 

安装 Petalinux 工具

chmod   +x   petalinux-v2025.2-11160223-installer.run
./petalinux-v2025.2-11160223-installer.run   -d   /opt/pkg/petalinux/2025.2

Petalinux 常用命令讲解

工程创建:petalinux-create project

petalinux-create  project  --template  <  PLATFORM  >  --name  <  PROJECT_NAME  >

硬件配置导入:petalinux-config --get-hw-description

petalinux-config  --get-hw-description  <  PATH-TO-XSA-FILE  >

配置工程:petalinux-config

petalinux-config  -c   <  COMPONENT  >
petalinux-build  -c   <  COMPONENT  >

Petalinux 测试工程创建

创建工作目录

mkdir  -p  ~/peta_prj/linuxPsBase/hardware

拷贝 xsa 文件

将 vivado 工程导出的 xsa 文件拷贝到上一步创建的 hardware 目录中

解压离线资源文件

在 Downloads 目录下创建 offline_pkg 目录

将我们提供的离线资源压缩文件 sstate_aarch64_2025.2_11151021.tar.gz 和 downloads_2025.2_11151021.tar.gz 分别解压到 offline_pkg 目录下

配置 petalinux 环境变量

cd   ~/peta_prj/linuxPsBase
source   /opt/pkg/petalinux/2025.2/settings.sh 

创建petalinux工程

petalinux-create  project  --template  zynqMP  --name  petalinux
cd   petalinux

导入硬件信息,初始化 petalinux 工程

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

配置界面控制说明

导入硬件信息后会进入 petalinux 工程全局配置界面,之后可以通过petalinux-config命令再次进入 在配置界面中,使用键盘的上下方向键控制界面中间蓝色光标移动,使用键盘的左右方向键控制界面底部蓝色光标移动

如果界面中间的光标选中一个选项分支,且界面底部光标选中Select,按下键盘的回车键就会进入该选项分支界面

如果界面底部光标选中Exit,按下回车,会退出当前选项分支界面。如果光标选中Save,则会保存配置到工程中

按下键盘的/,进入配置搜索界面,通过关键词搜索相关配置。在搜索结果界面通过滚轮翻动搜索结果,通过数字键1~9快速跳转到配置选项

配置选项一般可以通过键盘的y键选中,n键取消选中

取消在线编译

进入Yocto Settings ->,取消Enable Network sstate feeds选项

设置离线编译资源路径

进入Yocto Settings -> Local sstate feeds settings ->,修改local sstate feeds url内容为解压出来的离线资源目录 sstate 的路径: /home/alinx/Downloads/offline_pkg/aarch64

进入Yocto Settings —> Add pre-mirror url —>,修改pre-mirror url path内容为解压出来的离线资源目录 downloads 的路径,并在路径前添加file://: file:///home/alinx/Downloads/offline_pkg/downloads

选择Save保存配置,然后一直选择Exit直到退出配置界面

修改用户设备树文件

修改plnx-proj-root>/project-spec/meta-user/recipes-bsp/device-tree/files下的设备树文件system-user.dtsi

编译 petalinux 工程

petalinux-build

合成启动镜像文件 BOOT.BIN

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

制作包含 linux 系统启动镜像的 sd 卡

将plnx-proj-root>/images/linux目录下BOOT.BIN、boot.scr、image.ub文件拷贝到 FAT32 格式的 SD 卡中

板卡启动测试

将 SD 卡插入板卡,板卡上拨码设置为 SD 启动模式,通过 usb 线连接板卡 PS_UART 接口和主机的 usb 接口,打开串口终端软件,上电启动

登录系统

等待系统启动完成后,输入用户名(默认用户名是 petalinux)

初次登录会提示设置用户密码,设置完成后进入系统

因为 petalinux 制作的根文件默认为 ram 类型,所以文件系统不能保存文件和配置,即重启后恢复初始状态

使用 petalinux 的 bsp 包,可以方便快速地复现别人验证好的 petalinux 工程,或者导出我们验证好的 petalinux 工程的 bsp 包供他人使用。

创建 bsp 包

petalinux-package  --bsp   -p   ./petalinux/   --output   petalinux.bsp

使用 bsp 包

petalinux-create  project   -n   petalinux   -s   ./petalinux.bsp

配置 SD 卡根文件系统

Petalinux 默认的根文件系统类型是 INITRAMFS,不能保存文件和配置。需要使用 sd 卡挂载根文件系统,制作一个可以保存文件和配置的板载 linux 系统。

进入全局配置界面

petalinux-config

配置 SD 卡根文件系统

进入Image Packaging Configuration ->Root filesystem type选项,选择EXT4 (SD/eMMC/QSPI/SATA/USB)

选择Device node of SD device选项,设置根文件系统路径为/dev/mmcblk1p2

保存配置后,退出配置界面,编译 petalinux 工程,合成 BOOT.BIN 文件

使用 disks 软件对 SD 卡进行分区

将 SD 卡插入读卡器,然后将读卡器插入电脑的 USB 口

在 Ubuntu 的搜索栏中搜索 disks,打开 disks 软件

对 SD 卡重新分区

在 disks 界面中选择 SD 卡对应设备,如果 SD 卡已经有分区,需要点击分区删除图标,将所有分区删除

点击创建分区图标,创建第一个分区,分区大小设置为 1GB,分区名称为 BOOT,分区格式为 FAT

点击创建分区图标,创建第二个分区,分区大小设置为 5GB,分区名称为 ROOTFS,分区格式为 EXT4

点击分区挂载图标,手动挂载 SD 卡的两个新分区到 Ubuntu 系统

解压根文件系统到 SD 卡

sudo   tar   -zxvf   rootfs.tar.gz   -C   /media/alinx/ROOTFS/
sudo   sync

拷贝启动镜像文件到 SD 卡

将 /images/linux 目录下 BOOT.BIN、boot.scr、image.ub 文件拷贝到 SD 卡的 BOOT 分区

完成拷贝后,在 Ubuntu 系统中弹出 SD 卡

板卡启动测试

将 SD 卡插入板卡,板卡上拨码设置为 SD 启动模式,上电启动

本次启动后系统就能够保存配置和文件了

应用开发工具安装

SDK 生成及安装

进入 rootfs 配置界面

petalinux-config   -c   rootfs

配置组合包选项

packagegroup-xilinx-audio   ---> 	[*] packagegroup-xilinx-audio 
packagegroup-xilinx-gstreamer   ---> 	[*] packagegroup-xilinx-gstreamer 
packagegroup-xilinx-matchbox   ---> 	[*] packagegroup-xilinx-matchbox 
packagegroup-xilinx-multimedia   --->	 [*] packagegroup-xilinx-multimedia 
packagegroup-networking-stack   --->	[*] packagegroup-networking-stack
packagegroup-opencv   --->	 [*] packagegroup-opencv 
packagegroup-xilinx-qt   --->	[*] packagegroup-xilinx-qt 
                     			 [*] populate_sdk_qt5 
packagegroup-xilinx-qt-extended   --->	[*] packagegroup-xilinx-qt-extended
packagegroup-core-x11   --->	 [*] packagegroup-core-x11

配置 GPU 库和 GDB 调试选项

libs   ---> libmali-xlnx   --->	               [*] libmali-xlnx
misc   ---> gdb   --->	               [*] gdb
[*] gdbserver

编译 petalinux 工程

选择Save保存配置,然后选择Exit退出配置界面,编译 petalinux 工程

生成 SDK

petalinux-build    --sdk

安装 SDK

#  创建安装目录
mkdir  -p  /opt/petalinux/2025.2/aarch64
#  安装SDK
./sdk.sh   -d   /opt/petalinux/2025.2/aarch64/

QtCreator 安装及配置

安装 QtCreator 以及 Qt5 的库

sudo   apt   update 
sudo   apt   install  qtcreator  qtbase5-dev
sudo   apt   install  qt5*

打开 QtCreator

qtcreator  & 

添加 SDK 对应的 qmake 版本

在 QtCreator 界面中选择 Tools -> Options,进入配置界面

点击左侧 Kits 栏目,选择上方 Qt Versions 标签

点击Add...选项,添加 /opt/petalinux/2025.2/aarch64/sysroots/x86_64-petalinux-linux/usr/bin/ 路径下的 qmake 文件

添加 SDK 对应的 C 编译器

选择上方 Compilers 标签页,点击 Add -> GCC -> C

设置 Name 为 GCC_zynqMP,Compiler path 为 /opt/petalinux/2025.2/aarch64/sysroots/x86_64-petalinux-linux/usr/bin/aarch64-amd-linux/aarch64-amd-linux-gcc

添加 SDK 对应的 C++ 编译器 点击 Add -> GCC -> C++ 设置 Name 为 G++_zynqMP,Compiler path 为 /opt/petalinux/2025.2/aarch64/sysroots/x86_64-petalinux-linux/usr/bin/aarch64-amd-linux/aarch64-amd-linux-g++

添加 SDK 对应的 GDB 调试器

选择上方 Debuggers 标签页,点击 Add,添加调试器

设置 Name 为 GDB_ZYNQMP,path 为 /opt/petalinux/2025.2/aarch64/sysroots/x86_64-petalinux-linux/usr/bin/aarch64-amd-linux/aarch64-amd-linux-gdb

点击 Apply,使之前的所有配置生效

添加 SDK 对应的 Kits

选择上方 Kits 标签页,点击 Add,添加新的开发套件

设置 File system name 为 ZynqMP,Compiler C 为 GCC_ZYNQMP,Compiler C++ 为 G++_ZYNQMP

Debugger 为GDB_ZYNQMP,Qt version 为 Qt 5.15.13(system)

点击 Apply,使配置生效,最后点击 OK,完成环境配置

创建 Qt 测试程序

创建 Qt 工程

在 QtCreator 界面中,点击File-> New File or Project

在工程创建界面中保持默认配置,点击 Choose,创建一个 Qt Widgets Application

设置工程的 Name 为 qt_demo,工程位置为/home/alinx/peta_prj/linuxPsBase/app(app目录需自己创建)

Build system、Details、Translation 配置界面保持默认选项

在 Kits 界面中,选择开发套件 ZynqMP

最后在 Summary 界面中点击 Finish,完成工程创建

添加头文件索引

INCLUDEPATH += /opt/petalinux/2025.2/aarch64/sysroots/cortexa72-cortexa53-amd-linux/usr/include 

qt 界面设计

双击mainwindow.ui文件,进入设计界面

拖动设计界面左侧的Push Button组件到主界面,鼠标可以拉伸组件大小,双击组件的文字部分,修改内容为ALINX DEMO

编译 qt 工程

使用ctrl+s保存后,点击界面左下角的锤子图标,编译工程

编译完成后,可以在/home/alinx/peta_prj/linuxPsBase/app/build-qt_demo-ZynqMP-Debug目录下找到可执行程序qt_demo

制作测试 SD 卡

qt 程序运行会依赖新的 rootfs.tar.gz 里的qt库

将 SD卡的 ROOTFS 分区旧文件全部删除,解压新的 rootfs.tar.gz 文件到 SD 卡的 ROOTFS 分区

同步缓存数据后,弹出 SD

执行测试程序

将 SD 卡插入板卡,板卡 dp 接口连接显示器,上电启动

系统启动完成并登录后,在串口终端中输入如下命令,执行 qt 测试程序

export  DISPLAY=:0.0
./qt_demo 

更多细节欢迎关注我们黑金云课堂全年免费直播课, 黑金云课堂四月直播日历 我们将在每周二、三、四,同步推进Verilog开发、Vitis开发、Linux开发三大系列,带你从零开始,稳扎稳打掌握 FPGA 开发全流程!

系列 内容定位
Verilog开发 硬件描述语言基础、逻辑设计、仿真调试
Vitis开发 Zynq软硬件协同、外设驱动、网络协议栈
Linux开发 嵌入式Linux系统移植、驱动编写、应用开发


审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1663

    文章

    22493

    浏览量

    638951
  • Linux
    +关注

    关注

    88

    文章

    11807

    浏览量

    219512
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Linux内核驱动开发技术核心精要

    嵌入式Linux驱动开发是连接硬件与操作系统的关键环节。随着内核演进(如Linux 6.13)和硬件复杂度提升,开发者需掌握并发控制、中断分层、内存管理、设备树、调试工具等核心知识。本
    发表于 03-10 13:56

    linux-arm开发环境的简单配置

    都会给你解释(很多视频都不会给你解释),适合初学者。 fedora8开发环境简单配置 linux-arm开发环境简单配置 Window上: 安装终端软件 SecureCRT,
    发表于 01-13 07:56

    如何在2026年Rocky Linux(8、9和10)上安装Docker

    Docker 已成为现代应用部署、开发和基础设施自动化的核心技术。如果你在服务器或VPS上运行Rocky Linux,学会在Rocky Linux
    的头像 发表于 01-12 17:21 1808次阅读

    从小白到大牛:Linux嵌入式系统开发的完整指南

    推荐安装 Ubuntu 20.04 LTS,目标板优先选择资料丰富的开发板(树莓派4B 性价比最高),通过 SSH 实现主机与目标板的通信,完成交叉编译环境(如 ARM-GCC)的配置。​ Linux
    发表于 12-16 10:42

    【免费送书】成为硬核Linux开发者:《Linux 设备驱动开发(第 2 版)》

    Linux系统的设备驱动开发,一直给人门槛较高的印象,主要因内核机制抽象、需深度理解硬件原理、开发调试难度大所致。2021年,一本讲解驱动开发的专著问世即获市场青睐,畅销近万册——这便
    的头像 发表于 11-18 08:06 1761次阅读
    【免费送书】成为硬核<b class='flag-5'>Linux</b><b class='flag-5'>开发</b>者:《<b class='flag-5'>Linux</b> 设备驱动<b class='flag-5'>开发</b>(第 2 版)》

    硬件黑客集结:开源FPGA开发板测评活动全网火热招募中......

    了众多开发者的关注,涉及工业、通信、车载等多个行业的100+位工程师报名参与设计,并分为:硬件组、FPGA组、Linux组,其中硬件组率先开始启动项目。经过和所有
    的头像 发表于 10-29 08:05 837次阅读
    硬件黑客集结:开源<b class='flag-5'>FPGA</b><b class='flag-5'>开发</b>板测评活动全网火热招募中......

    RK3506开发Linux开发板极致性价比之选

    RK3506开发Linux开发板极致性价比之选瑞芯微RK3506开发板,3核Cortex-A7@1.5GHz+Cortex-M0,Linux
    的头像 发表于 09-11 16:26 3841次阅读
    RK3506<b class='flag-5'>开发</b>板<b class='flag-5'>Linux</b><b class='flag-5'>开发</b>板极致性价比之选

    国产!全志T113-i 双核Cortex-A7@1.2GHz 工业开发板—Linux系统使用手册(三)

    本文档详细介绍了T113开发板的Linux环境搭建与系统编译流程。主要内容包括:1)开发环境要求(Windows/VMware/Ubuntu版本);2)Linux SDK
    的头像 发表于 09-04 14:56 840次阅读
    国产!全志T113-i 双核Cortex-A7@1.2GHz 工业<b class='flag-5'>开发</b>板—<b class='flag-5'>Linux</b>系统使用手册(三)

    国产!全志T113-i 双核Cortex-A7@1.2GHz 工业开发板—Linux系统使用手册(二)

    本文档详细介绍了T113开发板的Linux环境搭建与系统编译流程。主要内容包括:1)开发环境要求(Windows/VMware/Ubuntu版本);2)Linux SDK
    的头像 发表于 09-02 16:36 835次阅读
    国产!全志T113-i 双核Cortex-A7@1.2GHz 工业<b class='flag-5'>开发</b>板—<b class='flag-5'>Linux</b>系统使用手册(二)

    Linux 应用开发手册

    T507linux应用开发手册
    发表于 08-22 17:01 15次下载

    怎么结合嵌入式,Linux,和FPGA三个方向达到一个均衡发展?

    在嵌入式领域,不少人都怀揣着让嵌入式、LinuxFPGA 三个方向实现均衡发展的梦想,然而实践中却面临诸多挑战。就像备受瞩目的全栈工程师稚晖君,他从大学玩单片机起步,凭借将智能算法融入嵌入式而
    的头像 发表于 06-25 10:08 1006次阅读
    怎么结合嵌入式,<b class='flag-5'>Linux</b>,和<b class='flag-5'>FPGA</b>三个方向达到一个均衡发展?

    拥抱开源!一起来做FPGA开发板啦!

    开发板吧!30号直播见面会 分组及任务发布 本次FPGA开发板开源设计活动将围绕硬件设计、FPGA开发以及
    发表于 06-06 14:05

    技术分享 | 迅为RK3568开发板如何将 Linux 板卡虚拟成U盘

    技术分享 | 迅为RK3568开发板如何将 Linux 板卡虚拟成U盘
    的头像 发表于 06-04 10:57 1276次阅读
    <b class='flag-5'>技术</b>分享 | 迅为RK3568<b class='flag-5'>开发</b>板如何将 <b class='flag-5'>Linux</b> 板卡虚拟成U盘

    迅为RK3588开发板RKLLM-Toolkit 环境搭建安装 Miniconda

    Linux-aarch64 64-bit 两个版本的安装包进行下载,如下图所示: 为了方便,已经将两个安装包存放到了“iTOP-3588 开发板\\\\02_【iTOP-RK3588
    发表于 06-03 17:06

    在任何平台上使用PetaLinux的先决条件

    本篇文章介绍了在任何平台上使用 PetaLinux 的先决条件。PetaLinux 是一种嵌入式 Linux 软件开发套件 (SDK),主要用于基于
    的头像 发表于 04-24 10:40 1719次阅读
    在任何平台上使用<b class='flag-5'>PetaLinux</b>的先决条件