本篇 Petalinux 安装,选自 ALINX 黑金云课堂 FPGA 免费直播课。该课程由 ALINX 资深工程师团队倾力打造,从 0 到 1 系统化教学,帮助每位工程师跨过 FPGA 开发门槛。
🔍 ALINX:完整黑金云课堂 FPGA 视频教程可登录 ALINX 视频号进行回看,配合笔记学习效果更佳。
sudo apt-get updatesudo dpkg --add-architecture i386sudo 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 libtinfo5sudo dpkg-reconfigure dash sudo chown -R $USER:$USER /optmkdir -p /opt/pkg/petalinux/2025.2sudo chmod 0755 /opt/pkg/petalinux/2025.2 sudo apt install -y localessudo locale-gen en_US.UTF-8 chmod +x petalinux-v2025.2-11160223-installer.run./petalinux-v2025.2-11160223-installer.run -d /opt/pkg/petalinux/2025.2petalinux-create project --template <PLATFORM> --name <PROJECT_NAME>petalinux-config --get-hw-description <PATH-TO-XSA-FILE>petalinux-config -c <COMPONENT>petalinux-build -c <COMPONENT>mkdir -p ~/peta_prj/linuxPsBase/hardware将 vivado 工程导出的 xsa 文件拷贝到上一步创建的 hardware 目录中
在 Downloads 目录下创建 offline_pkg 目录
将我们提供的离线资源压缩文件 sstate_aarch64_2025.2_11151021.tar.gz 和 downloads_2025.2_11151021.tar.gz 分别解压到 offline_pkg 目录下
cd ~/peta_prj/linuxPsBasesource /opt/pkg/petalinux/2025.2/settings.sh petalinux-create project --template zynqMP --name petalinuxcd petalinuxpetalinux-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-buildpetalinux-package boot --u-boot --fpga --fsbl --force将plnx-proj-root>/images/linux目录下BOOT.BIN、boot.scr、image.ub文件拷贝到 FAT32 格式的 SD 卡中
14. 板卡启动测试
将 SD 卡插入板卡,板卡上拨码设置为 SD 启动模式,通过 usb 线连接板卡 PS_UART 接口和主机的 usb 接口,打开串口终端软件,上电启动
等待系统启动完成后,输入用户名(默认用户名是 petalinux)
初次登录会提示设置用户密码,设置完成后进入系统
因为 petalinux 制作的根文件默认为 ram 类型,所以文件系统不能保存文件和配置,即重启后恢复初始状态
使用 petalinux 的 bsp 包,可以方便快速地复现别人验证好的 petalinux 工程,或者导出我们验证好的 petalinux 工程的 bsp 包供他人使用。
petalinux-package --bsp -p ./petalinux/ --output petalinux.bsppetalinux-create project -n petalinux -s ./petalinux.bspPetalinux 默认的根文件系统类型是 INITRAMFS,不能保存文件和配置。需要使用 sd 卡挂载根文件系统,制作一个可以保存文件和配置的板载 linux 系统。
petalinux-config进入Image Packaging Configuration ->Root filesystem type选项,选择EXT4 (SD/eMMC/QSPI/SATA/USB)
选择Device node of SD device选项,设置根文件系统路径为/dev/mmcblk1p2
保存配置后,退出配置界面,编译 petalinux 工程,合成 BOOT.BIN 文件
将 SD 卡插入读卡器,然后将读卡器插入电脑的 USB 口
在 Ubuntu 的搜索栏中搜索 disks,打开 disks 软件
在 disks 界面中选择 SD 卡对应设备,如果 SD 卡已经有分区,需要点击分区删除图标,将所有分区删除
点击创建分区图标,创建第一个分区,分区大小设置为 1GB,分区名称为 BOOT,分区格式为 FAT
点击创建分区图标,创建第二个分区,分区大小设置为 5GB,分区名称为 ROOTFS,分区格式为 EXT4
点击分区挂载图标,手动挂载 SD 卡的两个新分区到 Ubuntu 系统
sudo tar -zxvf rootfs.tar.gz -C /media/alinx/ROOTFS/sudo sync将 <plnx-proj-root>/images/linux 目录下 BOOT.BIN、boot.scr、image.ub 文件拷贝到 SD 卡的 BOOT 分区
完成拷贝后,在 Ubuntu 系统中弹出 SD 卡
将 SD 卡插入板卡,板卡上拨码设置为 SD 启动模式,上电启动
本次启动后系统就能够保存配置和文件了
petalinux-config -c rootfspackagegroup-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-stackpackagegroup-opencv ---> [*] packagegroup-opencv packagegroup-xilinx-qt ---> [*] packagegroup-xilinx-qt [*] populate_sdk_qt5 packagegroup-xilinx-qt-extended ---> [*] packagegroup-xilinx-qt-extendedpackagegroup-core-x11 ---> [*] packagegroup-core-x11libs ---> libmali-xlnx ---> [*] libmali-xlnxmisc ---> gdb ---> [*] gdb[*] gdbserver选择Save保存配置,然后选择Exit退出配置界面,编译 petalinux 工程
petalinux-build --sdk# 创建安装目录mkdir -p /opt/petalinux/2025.2/aarch64# 安装SDK./sdk.sh -d /opt/petalinux/2025.2/aarch64/sudo apt update sudo apt install qtcreator qtbase5-devsudo apt install qt5*qtcreator & 在 QtCreator 界面中选择 Tools -> Options,进入配置界面
点击左侧 Kits 栏目,选择上方 Qt Versions 标签页
点击Add...选项,添加 /opt/petalinux/2025.2/aarch64/sysroots/x86_64-petalinux-linux/usr/bin/ 路径下的 qmake 文件

选择上方 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
5. 添加 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++
6. 添加 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,使之前的所有配置生效

选择上方 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,完成环境配置
在 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 双击mainwindow.ui文件,进入设计界面
拖动设计界面左侧的Push Button组件到主界面,鼠标可以拉伸组件大小,双击组件的文字部分,修改内容为ALINX DEMO
使用ctrl+s保存后,点击界面左下角的锤子图标,编译工程
编译完成后,可以在/home/alinx/peta_prj/linuxPsBase/app/build-qt_demo-ZynqMP-Debug目录下找到可执行程序qt_demo
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 开发全流程!


