最近在 Ubuntu 22.04 上折腾 Xilinx Vivado 2023.1 和 PetaLinux 开发环境,碰到了一些零零碎碎的问题。把解决过程记下来,方便以后自己查阅,也给遇到同样问题的朋友一个参考。
本章节所有的文件来源均来自正点原子ZYNQ7100开发板B盘, 附上链接免得兄弟们找不到:)
正点原子-ZYNQ 7035/7045/7100开发板Z100:
正点原子-ZYNQ 7035/7045/7100开发板Z100-资料链接B盘:
一、环境说明
操作系统:Ubuntu 22.04 LTS
Vivado 版本:2023.1
PetaLinux 版本:2023.1
二、安装前的准备工作
2.1 解决 libtinfo5 缺失问题
这是 Ubuntu 22.04 安装 Vivado 最容易卡住的一步。旧版 Ubuntu 自带 libtinfo5,但 22.04 升级到了 libtinfo6。Vivado 安装程序在生成设备列表阶段需要 libtinfo.so.5,直接装 libtinfo5 会报找不到包。
解决办法是手动建一个软链接:
bash
# 先装 libncurses5
sudo apt-get update
sudo apt-get install libncurses5
# 将 libtinfo.so.5 指向现有的 libtinfo.so.6
sudo ln -s /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5
验证一下:
bash
ldconfig -p | grep libtinfo
如果同时看到 libtinfo.so.5 和 libtinfo.so.6,说明成功了。
2.2 安装其他依赖包
Vivado 和 PetaLinux 需要很多依赖,我整理了一下,直接复制执行就行:
bash
# 安装依赖(注意:pylint3 改成了 pylint)
sudo apt-get install --fix-missing \
iproute2 gawk python3 python2 build-essential gcc git make \
net-tools libncurses5-dev tftpd zlib1g-dev libssl-dev flex bison \
libselinux1 gnupg wget git-core 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 \
libsdl1.2-dev pylint
几点说明:
-
pylint3 在新版 Ubuntu 里已经没了,改用 pylint
-
python 要写成 python2,因为系统默认只带 python3
-
加了 --fix-missing 参数,防止网络问题导致中断
另外,Vivado 安装最后阶段可能在 "Generating installed device list" 卡住,可以提前装这个:
bash
sudo apt-get install libcanberra-gtk-module
2.3 下载安装包
从 Xilinx/AMD 官网下载:
-
Vivado 2023.1 安装包
-
PetaLinux 2023.1 安装包(.run 文件)
2026年5月26日 更新, 当前已经无法使用这个方法下载了, 建议使用正点原子的资料.
三、安装 Vivado 2023.1
3.1 解压安装包
bash
tar -xzf Xilinx_Unified_2023.1_0507_1903.tar.gz -C /opt/Xilinx
注意目标目录需要有足够空间(解压预留 150GB, 安装需要额外预留至少300G)。
3.2 运行安装程序
bash
cd /opt/Xilinx
sudo ./xsetup
图形界面出来后,建议选择:
Vivado HL System Edition(包含 Vitis 和 HLS)
勾选需要的器件家族(如果空间有限,只选手头开发板对应的系列)
安装路径保持默认或改成 /tools/Xilinx

执行 sudo ./xsetup 后,安装向导会启动。上图是 2024.2 版本的组件选择界面,2023.1 的界面布局基本一致,可以参考。
1. Design Tools(设计工具)
| 组件 | 说明 | 建议 |
|---|---|---|
| Vitis Unified Software Platform | 统一软件平台,包含了 Vivado、Vitis HLS 等核心工具。勾选后会展开子选项 | 必选 |
| Vitis | 嵌入式软件开发和加速应用开发套件 | 必选 |
| Vitis IP Cache | IP 缓存,加快首次打开工程的速度 | 推荐勾选 |
| Vivado | FPGA 逻辑设计主工具 | 必选 |
| Vitis HLS | 高级综合,C/C++ 转 RTL | 推荐勾选 |
| Vitis Networking P4 | P4 网络编程支持 | 不需要可以不选 |
| Vitis Model Composer | MATLAB/Simulink 工具箱,包含原 System Generator for DSP 的功能 | 用不到可以不选 |
| Power Design Manager (PDM) | 功耗评估工具,用于 Versal、UltraScale+、Kria 系列 | 按需选择 |
| DocNav | 文档浏览器,可离线查阅 Xilinx 文档 | 看个人习惯 |
2. Devices(器件支持)
这是占用磁盘空间的大头,只勾选你手里开发板对应的器件系列,不要全选。
| 选项 | 包含系列 | 建议 |
|---|---|---|
| Install devices for Alveo and edge acceleration platforms | Alveo 加速卡、Edge 平台 | 没有 Alveo 卡可以不选 |
| Install Devices for Kria S0Ms and Starter Kits | Kria 核心板和套件 | 用 Kria 开发板才选 |
| Devices for Custom Platforms | 自定义平台,下面可进一步选择 | 展开后按需选择 |
| SoCs | Zynq-7000、Zynq UltraScale+ MPSoC/RFSoC | 用 Zynq 系列就选 |
| 7 Series | Artix-7、Kintex-7、Virtex-7、Spartan-7 | 用 7 系列 FPGA 就选 |
| UltraScale | Kintex UltraScale、Virtex UltraScale | 按需 |
| UltraScale+ | Zynq UltraScale+、Kintex/Virtex UltraScale+ | 常见,推荐勾选 |
| Versal ACAP | Versal AI Core、Prime、Premium 等 | 用 Versal 才选 |
| Engineering Sample Devices | 工程样片支持 | 一般不用选 |
四、安装 PetaLinux 2023.1
4.1 解压 .run 文件
bash
chmod +x petalinux-v2023.1-05010539-installer.run
./petalinux-v2023.1-05010539-installer.run --dir /opt/pkg/petalinux/2023.1
注意:安装路径不能是 /opt/petalinux 这种需要 root 权限的目录,建议装在自己的家目录下,或者用 --dir 指定一个有写权限的地方。
4.2 设置环境变量
bash
source /opt/pkg/petalinux/2023.1/settings.sh
同样加到 ~/.bashrc 里。
验证一下:
bash
petalinux-version
4.3 离线编译配置(可选)
如果网速不好,可以从官网下载 sstate-cache 和 downloads 离线包。
解压 sstate-cache(注意是 .rar 格式):
bash
sudo apt-get install unrar
unrar x sstate_arm_2023.1_05010539.rar /opt/xilinx/peta_sstate/
解压 downloads 包(通常是 .tar.gz):
bash
mkdir -p ~/petalinux_2023.1/downloads
tar -zxvf downloads_2023.1_05010539.tar.gz -C ~/petalinux_2023.1/downloads
然后在 petalinux-config 里设置:
Local sstate feeds url:指向解压后的 sstate 目录中的 arm 文件夹
Local downloads directory:指向 downloads 目录
五、可能遇到的问题汇总
| 问题现象 | 原因 | 解决办法 |
|---|---|---|
| 安装时提示 "Please use standard Latin letters" | 注册信息里用了中文或特殊符号 | 改成纯英文,去掉逗号括号等 |
| "export compliance verification failed" | IP 地址和注册国家不一致 | 关闭 VPN,提交审查表 |
| "无法定位软件包 libtinfo5" | Ubuntu 22.04 没有这个包 | 用 ln 命令创建软链接 |
| "无法定位软件包 pylint3" | 新版 Ubuntu 改名了 | 改用 pylint |
| 安装最后卡在 "Generating installed device list" | 缺少图形库 | sudo apt install libcanberra-gtk-module |
petalinux-build 时网络报错 |
默认会去外网下载源码 | 配置本地 downloads 和 sstate 路径 |
六、一点经验
尽量离线编译:PetaLinux 默认会从外网拉源码,速度慢而且容易失败。提前把 sstate-cache 和 downloads 下好,能省不少时间。
磁盘空间要预留够:Vivado 装完大约 100GB,PetaLinux 工作目录随便一个工程也能到 10-20GB,加上源码包,500GB 起步比较稳妥。
不要随便改路径:装完 PetaLinux 后如果移动了目录,settings.sh 里写死的路径会失效。要么重装,要么手动改脚本里的路径。
遇到依赖问题先查版本:很多 .deb 包在新版 Ubuntu 里改名或取消了,用 apt-cache search 搜一下实际包名再装。
基本上做完这些,Vivado 和 PetaLinux 就能正常跑起来了。如果遇到别的坑,欢迎留言讨论。