[FPGA] Ubuntu 22.04 安装 Vivado 2023.1 和 PetaLinux 踩坑记录

最近在 Ubuntu 22.04 上折腾 Xilinx Vivado 2023.1 和 PetaLinux 开发环境,碰到了一些零零碎碎的问题。把解决过程记下来,方便以后自己查阅,也给遇到同样问题的朋友一个参考。

本章节所有的文件来源均来自正点原子ZYNQ7100开发板B盘, 附上链接免得兄弟们找不到:)

正点原子-ZYNQ 7035/7045/7100开发板Z100:

http://www.openedv.com/docs/boards/fpga/Z100.html

正点原子-ZYNQ 7035/7045/7100开发板Z100-资料链接B盘:

https://pan.baidu.com/s/1h0MdlUDKGMJvTB2gFiJ2lg 提取码:hdwv

一、环境说明

操作系统: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 就能正常跑起来了。如果遇到别的坑,欢迎留言讨论。

相关推荐
Bruce_kaizy12 分钟前
c++ linux环境编程——文件io介绍以及open 、write 、read 三剑客深度详解
linux·服务器·c++·ubuntu·操作系统·文件io
亦良Cool27 分钟前
VMware虚拟机ubuntu瘦身,解决虚拟机越用越大
linux·运维·ubuntu
liuluyang5302 小时前
SV中#和##的区别与用法
fpga开发·sva
星辰&与海2 小时前
KVM + QEMU虚拟化方案
linux·运维
宋浮檀s2 小时前
应急响应——恶意流量&攻击行为识别
linux·运维·网络·网络安全·应急响应
REDcker2 小时前
Linux OverlayFS详解
java·linux·运维
lwx9148523 小时前
Linux系统中用户锁定后如何解锁
linux·运维·服务器
zhangrelay4 小时前
ROS 2 Lyrical Luth启程-Ubuntu26.04-
linux·笔记·学习·ubuntu
WoY20204 小时前
使用iostat看磁盘IO
linux
kebidaixu4 小时前
VS Code Remote-SSH 远程开发:解决无法安装扩展、市场加载失败的问题
linux