Quick Start
- 确认操作系统版本(Ubuntu 20.04/22.04 或 CentOS 7/8),打开终端执行
cat /etc/os-release。 - 下载 Vivado 2026.1 安装包(约 45 GB)并解压到
/opt/xilinx_install。 - 运行
sudo ./xsetup启动图形安装程序;若终端报错“缺少依赖库”,记录缺失库名(如libncurses.so.5)。 - 执行
sudo apt update(Ubuntu)或sudo yum check-update(CentOS)。 - 安装缺失库:
sudo apt install libncurses5 libtinfo5 libc6-i386(Ubuntu)或sudo yum install ncurses-libs glibc.i686(CentOS)。 - 重新运行
sudo ./xsetup,安装程序应正常启动;若仍有报错,执行ldd /opt/xilinx_install/bin/unwrapped/lnx64.o/vivado检查所有依赖。 - 安装完成后,运行
source /opt/Xilinx/Vivado/2026.1/settings64.sh并输入vivado,观察 GUI 是否正常启动。 - 验收:Vivado 主界面出现,无“Library missing”弹窗,可新建工程。
前置条件与环境
| 项目 | 推荐值 | 说明 | 替代方案 |
|---|---|---|---|
| 操作系统 | Ubuntu 22.04 LTS 或 CentOS 7.9 | Vivado 2026.1 官方支持 | Ubuntu 20.04 / RHEL 8.6 |
| Vivado 版本 | 2026.1 | 本文以该版本为例 | 2025.x / 2024.x,依赖库可能不同 |
| CPU 架构 | x86_64 | 仅支持 64 位 | ARM64 需用 QEMU 模拟,不推荐 |
| 磁盘空间 | ≥ 100 GB | 安装后约 60 GB | SSD 优先 |
| 内存 | ≥ 8 GB | 建议 16 GB | — |
| 依赖库 | libncurses5, libtinfo5, libc6-i386 | 32 位兼容库 | libncurses6(部分版本) |
| 权限 | sudo 权限 | 安装需 root | — |
| 网络 | 稳定互联网 | 下载安装包与更新 | 离线安装需预下载所有依赖 |
目标与验收标准
完成 Vivado 安装并成功启动,无“缺少依赖库”错误。具体验收点:
- 安装程序(xsetup)无报错退出。
- 执行
vivado命令后 GUI 窗口弹出,无终端“error while loading shared libraries”提示。 - 新建任意工程,综合与实现步骤可正常启动(不要求跑完)。
- 资源占用:安装后磁盘使用量 ≤ 70 GB(典型值)。
实施步骤
阶段一:环境准备与依赖检查
- [object Object]
阶段二:安装 Vivado 与即时修复
- [object Object]
阶段三:安装后验证与配置
- [object Object]
常见坑与排查
- 坑 1:Ubuntu 22.04 默认不含 libncurses5,需手动安装
libncurses5包(非libncurses-dev)。 - 坑 2:CentOS 7 中 glibc.i686 与 glibc.x86_64 版本不匹配导致冲突;先卸载旧 32 位库再重装:
sudo yum remove glibc.i686 && sudo yum install glibc.i686。 - 坑 3:Java 版本过低(Java 8)导致安装器无响应;安装 OpenJDK 11 后设置
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64。 - 坑 4:ldd 显示 libtinfo.so.5 缺失但系统仅有 libtinfo.so.6;创建符号链接:
sudo ln -s /lib/x86_64-linux-gnu/libtinfo.so.6 /lib/x86_64-linux-gnu/libtinfo.so.5。
原理与设计说明
Vivado 安装器与运行时依赖大量 32 位库(即使主机是 64 位),原因如下:
- 历史兼容性:Vivado 核心引擎(如 vivado 二进制)使用 32 位编译,以兼容旧版 Linux 发行版;这要求系统开启多架构支持(i386)。
- 库版本差异:Ubuntu 22.04 默认仅提供 libncurses6,但 Vivado 2026.1 仍链接 libncurses5;符号链接是临时修复,长期需安装兼容包。
- Java 依赖:安装器使用 Java 图形界面,OpenJDK 11 是 LTS 版本,避免 Java 8 的过时 API 问题。
- Trade-off:官方不提供纯 64 位版本以降低维护成本,用户需自行处理 32 位兼容层;替代方案是使用 Docker 容器化安装(见扩展章节)。
修复策略优先级:先装官方推荐依赖包 → 用 ldd 定位缺失库 → 符号链接或降级库版本 → 容器化兜底。
验证与结果
| 测试项 | 预期结果 | 实测结果(示例) | 测量条件 |
|---|---|---|---|
| 安装器启动 | 无报错,显示 GUI | 通过 | Ubuntu 22.04, Vivado 2026.1 |
| vivado 命令 | GUI 弹出,无终端错误 | 通过 | 同上 |
| 综合测试 | synth_design 完成 | 通过(Fmax 约 150 MHz 示例) | XC7K325T, 空工程 |
| 磁盘占用 | ≤ 70 GB | 62.3 GB | WebPACK 安装 |
| 依赖库检查 | ldd 无“not found” | 0 缺失 | — |
注:以上数据基于典型配置,实际结果以用户环境为准。
故障排查(Troubleshooting)
- 现象 1:
./xsetup: error while loading shared libraries: libncurses.so.5
原因:缺少 32 位 ncurses 库。检查点:dpkg -l | grep libncurses。修复:sudo apt install libncurses5:i386。 - 现象 2:
vivado: symbol lookup error: /lib/x86_64-linux-gnu/libtinfo.so.5: undefined symbol
原因:符号链接指向错误版本。检查点:ls -la /lib/x86_64-linux-gnu/libtinfo*。修复:删除符号链接,安装 libtinfo5 包。 - 现象 3:安装器无响应或白屏。
原因:Java 版本不兼容或显卡驱动。检查点:java -version;export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on"。修复:安装 OpenJDK 11,设置 JAVA_HOME。 - 现象 4:ldd 显示 libc.so.6 缺失。
原因:32 位 glibc 未安装。检查点:dpkg -l | grep libc6:i386。修复:sudo apt install libc6:i386。 - 现象 5:CentOS 中 yum install glibc.i686 报依赖冲突。
原因:系统 glibc 版本与 32 位不匹配。检查点:rpm -qa | grep glibc。修复:先移除冲突包sudo yum remove glibc.i686,再安装。 - 现象 6:安装成功但 vivado 启动后闪退。
原因:缺少 libXrender.so.1 等图形库。检查点:ldd $(which vivado) | grep "not found"。修复:sudo apt install libxrender1 libxtst6 libxi6。 - 现象 7:source settings64.sh 后 vivado 命令找不到。
原因:脚本未正确执行或路径错误。检查点:echo $XILINX_VIVADO。修复:检查安装路径,重新 source。 - 现象 8:安装过程中磁盘空间不足。
原因:/tmp 或安装目录空间不够。检查点:df -h。修复:清理临时文件,或指定--tmpdir到有大空间的目录。
扩展与下一步
- Docker 化安装:使用 Xilinx 官方 Docker 镜像(xilinx/vivado:2026.1)避免依赖问题,适合 CI/CD 环境。
- 自动化脚本:编写 Shell 脚本自动检测缺失库并安装,减少手动操作。
- 多版本共存:通过 settings64.sh 切换不同 Vivado 版本,注意环境变量覆盖。
- 离线安装:预下载所有依赖包(apt-get download),在内网环境部署。
- 性能调优:安装后调整 vivado.ini 中的 maxThreads 参数,提升综合速度。
- 交叉编译支持:为 ARM64 或 RISC-V 平台交叉编译 Vivado 插件,需额外配置 32 位模拟层。
参考与信息来源
- Xilinx UG973 (Vivado Design Suite User Guide: Release Notes, Installation, and Licensing) – 2026.1 版本。
- AMD/Xilinx 官方论坛:https://support.xilinx.com/ – 搜索“missing library”关键词。
- Ubuntu 社区文档:32-bit and 64-bit。
- CentOS 维基:Install Vivado on CentOS(社区维护)。
- Docker Hub Xilinx 镜像:xilinx/vivado。
技术附录
术语表
| 术语 | 解释 |
|---|---|
| ldd | Linux 命令,列出可执行文件依赖的动态库。 |
| i386 | 32 位 x86 架构的 Debian/Ubuntu 包后缀。 |
| glibc | GNU C 库,Linux 程序的基础运行时。 |
| ncurses | 终端界面库,Vivado 安装器依赖其 32 位版本。 |
| WebPACK | Vivado 免费版本,支持部分器件。 |
检查清单
- ☐ 操作系统版本符合要求
- ☐ 磁盘空间 ≥ 100 GB
- ☐ 已安装 32 位兼容库(libncurses5, libtinfo5, libc6-i386)
- ☐ Java 11+ 已安装并配置 JAVA_HOME
- ☐ ldd 检查无“not found”输出
- ☐ 安装后 vivado 命令可正常启动
关键约束速查
# Ubuntu 22.04 一键安装依赖
sudo apt install -y libncurses5 libtinfo5 libc6-i386 libstdc++6:i386 libxrender1 libxtst6 libxi6 openjdk-11-jre
# CentOS 7 一键安装依赖
sudo yum install -y ncurses-libs glibc.i686 libstdc++.i686 libXrender.i686 libXtst.i686 libXi.i686 java-11-openjdk
# 创建符号链接(仅当 libtinfo.so.5 缺失时)
sudo ln -s /lib/x86_64-linux-gnu/libtinfo.so.6 /lib/x86_64-linux-gnu/libtinfo.so.5逐行说明
- 第 1 行:
sudo apt install -y libncurses5 libtinfo5 libc6-i386 libstdc++6:i386 libxrender1 libxtst6 libxi6 openjdk-11-jre——Ubuntu 下批量安装所有可能缺失的 32 位库与 Java 11;-y自动确认;libc6-i386提供 32 位 glibc;libxrender1等是图形库。 - 第 2 行:
sudo yum install -y ncurses-libs glibc.i686 libstdc++.i686 libXrender.i686 libXtst.i686 libXi.i686 java-11-openjdk——CentOS 等效命令;.i686后缀表示 32 位包。 - 第 3 行:
sudo ln -s /lib/x86_64-linux-gnu/libtinfo.so.6 /lib/x86_64-linux-gnu/libtinfo.so.5——创建符号链接,将libtinfo.so.5指向libtinfo.so.6,解决 Vivado 对旧版本库的硬编码需求;风险是 API 不兼容时可能崩溃,优先安装libtinfo5包。




