FPGA技术教程Linux开发:Petalinux安装 本篇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系统移植、驱动编写、应用开发 |
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !