admin 管理员组文章数量: 1184232
正文
近期,我在Ubuntu 22.04.4 LTS 这个Xilinx官方明确支持的系统版本上,安装和使用最新的 Vitis/Vivado 和 PetaLinux 2024.2 工具链时,遭遇了一系列棘手的技术难题。本文旨在记录整个排查过程,分享最终的解决方案,希望能帮助遇到同样困境的同行们。
核心挑战:三大“拦路虎”
我的整个调试过程主要围绕着三个核心问题展开:
- Vitis HLS神秘崩溃:这是最致命的问题。无论是运行Vivado自动生成的标准视频IP核,还是进行其他HLS综合,都会以一种非常独特的方式失败。
installLibs.sh依赖安装失败:官方依赖安装脚本在安装openssl兼容包时报错。plnx-env-setup.sh环境配置失败:PetaLinux环境脚本找不到python和pylint。
第一战:决战Vitis HLS神秘崩溃
这个问题耗费了我大量的时间,其最典型的症状如下:
典型崩溃日志现象
当你通过vitis_hls -f your_script.tcl运行综合时,终端会输出类似下面的日志。请注意,整个过程非常快,看似“完成”了,但实际上是中途崩溃了。
**** HLS Build v2024.2 5238294
Sourcing Tcl script '/path/to/your/runhls.tcl'
INFO: [HLS 200-1510] Running: open_project -reset prj
... (省略了各种 add_files, set_part 等正常信息) ...
INFO: [HLS 200-1510] Running: csynth_design
INFO: [HLS 200-111] Finished File checks and directory preparation: ...
INFO: [HLS 200-10] Analyzing design file '/path/to/your/source.cpp' ...
INFO: [HLS 200-2161] Finished Command csynth_design Elapsed time: 00:00:02; Allocated memory: 5.484 MB.
command 'ap_source' returned error code
while executing
"source /path/to/your/runhls.tcl"
("uplevel" body line 1)
invoked from within
"uplevel #0 [list source $tclfile] "
INFO: [vitis-run 60-1662] Stopping dispatch session having empty uuid.
关键特征供你比对:
- 日志极短:在
Analyzing design file ...之后,没有任何关于Scheduling, Binding, RTL generation的正常综合日志。 - 耗时极短:
Elapsed time通常只有1-3秒,这对于一个正常的HLS综合来说是不可能的。 - 最终报错:脚本以
command 'ap_source' returned error code结束。
无论我更换哪个标准的视频IP核(如v_vscaler, v_frmbuf_wr, v_demosaic),这个现象都稳定复现。
-
最终结论与解决方案:系统环境冲突 -> 重装纯净系统
在排查了驱动、库依赖等所有可能性之后,我得出的最终结论是:我现有的Ubuntu 22.04.4系统,可能在之前的某次更新或安装了其它软件后,其内部的某些核心库或系统配置与Vitis 2024.2产生了深层次的、难以追踪的冲突。
面对这种“玄学”问题,最彻底、最可靠的解决方案就是“格式化重装”。
关键操作要点:
- 备份数据:在重装前,务必备份好所有重要文件!
- 安装纯净的Ubuntu 22.04.4 LTS:使用官方镜像进行全新安装,选择“清除整个磁盘并安装”,确保不保留任何可能导致冲突的旧配置。
- 在纯净系统上第一时间安装Xilinx工具:在系统刚装好、没有进行任何复杂配置的状态下,立刻安装Vitis/Vivado。
结果:在全新的、纯净的Ubuntu 22.04.4系统上,Vitis HLS的神秘崩溃问题彻底消失,所有综合流程恢复正常。这证明了,一个干净、标准的开发环境对于Xilinx这种大型工业软件的稳定性是多么重要。
第二战:完美解决installLibs.sh依赖问题
- 问题:
installLibs.sh找不到compat-openssl10-
原因:这是脚本自身的缺陷,它在为Ubuntu系统准备的命令里,错误地使用了CentOS的包名。而正确的包
libssl1.0.0也因为版本太老,已从新版Ubuntu的官方常规源中移除。 -
最终解决方案:幸运的是,Ubuntu的安全更新服务器 (
security.ubuntu) 上,为旧的LTS版本(Ubuntu 18.04)准备的软件包依然可以访问。这为我们提供了一个直接、安全且版本较新的解决方案。第一步:下载来自Ubuntu 18.04安全更新的软件包
这个包的版本是1.0.2n,比我们能找到的其他版本更新、更安全。cd ~/Downloads wget http://security.ubuntu/ubuntu/pool/main/o/openssl1.0/libssl1.0.0_1.0.2n-1ubuntu5.13_amd64.deb第二步:手动安装
sudo dpkg -i libssl1.0.0_1.0.2n-1ubuntu5.13_amd64.deb
wget命令)、安全性(来自官方安全服务器)和版本优势(使用了更新的补丁版本)。安装后,installLibs.sh脚本里的这个报错就可以安全地忽略了。 -
第三战:轻松搞定PetaLinux环境依赖
- 问题:
plnx-env-setup.sh找不到python和pylint3- 原因:新版Ubuntu的包名变了。
python命令不再默认提供,pylint3包也已更名为pylint。 - 解决方案:安装新名字的包并创建兼容链接。
# 让`python`命令可用 sudo apt install python-is-python3 # 安装Pylint sudo apt install pylint
plnx-env-setup.sh脚本里的这些报错就可以安全地忽略了,因为PetaLinux实际需要的命令已经可以正常工作。 - 原因:新版Ubuntu的包名变了。
总结
希望这份详尽的排查实录能帮你节省宝贵的调试时间。在Ubuntu 22.04.4上成功部署Xilinx 2024.2工具链,我的最终建议是:
- 强烈建议从一个纯净的、新安装的Ubuntu 22.04.4 LTS系统开始,这是避免各种“玄学”崩溃问题的最佳起点。
- 手动安装
libssl1.0.0_1.0.2n-1ubuntu5.13_amd64.deb,以修正官方脚本的缺陷并满足其对老旧库的依赖。 - 手动安装
python-is-python3和pylint,以适应新版Ubuntu的包名变化。
完成这三步,你的开发环境就会变得无比顺滑。祝大家在FPGA的世界里玩得开心!如果觉得有帮助,欢迎点赞、收藏、转发!
本文标签: 神秘 Ubuntu Vitis vivado plnx
版权声明:本文标题:解决VitisVivado 2024.2在Ubuntu 22.04.4下的神秘崩溃及installLibs.sh和plnx-env-setup.sh依赖问题 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1754265644a2982487.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论