Just like Lukas Prokop, I ran into an issue installing Vivado 2022.1 on Ubuntu 22.04. The error looks just like in their article: https://lukas-prokop.at/articles/2021-02-02-vivado-install-stuck
His article gives a recipe to fix 2018.1 version but it's not exactly fit for 2022.1, though an underlying issue is probably the same. Fix is very similar as well, and I'm trying to give more generalized approach.
The idea is to fix LD_LIBRARY_PATH environment varible for commands the installer runs.
- Determine LD_LIBRARY_PATH that is used
% ps aux | grep -i xilinx | grep nolog
hasselbach 3962997 0.0 0.0 2892 96 pts/0 S+ 08:45 0:00 /bin/sh -c /home/hasselbach/Xilinx/Vivado/2022.1/bin/vivado -nolog -nojournal -mode batch -source /home/hasselbach/Xilinx/Vivado/2022.1/scripts/sysgen/tcl/xlpartinfo.tcl -tclargs /home/hasselbach/Xilinx/Vivado/2022.1/data/parts/installed_devices.txt
hasselbach 3963000 0.0 0.0 18756 484 pts/0 S+ 08:45 0:00 /bin/bash /home/hasselbach/Xilinx/Vivado/2022.1/bin/vivado -nolog -nojournal -mode batch -source /home/hasselbach/Xilinx/Vivado/2022.1/scripts/sysgen/tcl/xlpartinfo.tcl -tclargs /home/hasselbach/Xilinx/Vivado/2022.1/data/parts/installed_devices.txt
hasselbach 3963031 0.0 0.0 18756 472 pts/0 S+ 08:45 0:00 /bin/bash /home/hasselbach/Xilinx/Vivado/2022.1/bin/loader -exec vivado -nolog -nojournal -mode batch -source /home/hasselbach/Xilinx/Vivado/2022.1/scripts/sysgen/tcl/xlpartinfo.tcl -tclargs /home/hasselbach/Xilinx/Vivado/2022.1/data/parts/installed_devices.txt
hasselbach 3963118 0.0 0.0 257016 22416 pts/0 Sl+ 08:45 0:00 /home/hasselbach/Xilinx/Vivado/2022.1/bin/unwrapped/lnx64.o/vivado -nolog -nojournal -mode batch -source /home/hasselbach/Xilinx/Vivado/2022.1/scripts/sysgen/tcl/xlpartinfo.tcl -tclargs /home/hasselbach/Xilinx/Vivado/2022.1/data/parts/installed_devices.txt
These are stuck processes. We take PID of one of them to get the LD_LIBRARY_PATH:
% cat /proc/3963118/environ
IL_PA_NO_MYVIVADO_OVERRIDE=1SHELL=/usr/bin/zshSESSION_MANAGER=...
...LD_LIBRARY_PATH=/home/hasselbach/Xilinx/Vivado/2022.1/tps/lnx64/python-3.8.3/lib:/home/hasselbach/Xilinx/Vivado/2022.1/tps/lnx64/java-cef-78.3.9.242/bin/lib/linux64:/home/hasselbach/Xilinx/Vivado/2022.1/tps/lnx64/javafx-sdk-11.0.2/lib:/home/hasselbach/Xilinx/Vivado/2022.1/lib/lnx64.o/Ubuntu:/home/hasselbach/Xilinx/Vivado/2022.1/lib/lnx64.o:/home/hasselbach/Xilinx/Vivado/2022.1/tps/lnx64/jre11.0.11_9/lib/:/home/hasselbach/Xilinx/Vivado/2022.1/tps/lnx64/jre11.0.11_9/lib//server:/tmp/TMP_LD_LIB_PATH2022-07-07-22-54-55-1657223695:/tmp/selfgz3168759/lib/lnx64.o/Ubuntu:/tmp/selfgz3168759/lib/lnx64.o::/home/hasselbach/Xilinx/Vivado/2022.1/bin/../lnx64/tools/dot/libHDIPRELDPATH=/tmp/TMP_LD_LIB_PATH2022-07-07-22-54-55-1657223695:/tmp/selfgz3168759/lib/lnx64.o/Ubuntu:/tmp/selfgz3168759/lib/lnx64.o::/home/hasselbach/Xilinx/Vivado/2022.1/bin/../lnx64/tools/dot/libXDG_RUNTIME_DIR=/run/user/1000...
None that the output of this command is glued variables, you have carefully cut the value until next variable which vcan be recognized by following =
character.
In my case the path end here: /tools/dot/libXDG_RUNTIME_DIR=/run/use
- Run the stuck command with that LD_LIBRARY_PATH:
% export LD_LIBRARY_PATH=/home/hasselbach/Xilinx/Vivado/2022.1/tps/lnx64/python-3.8.3/lib:/home/hasselbach/Xilinx/Vivado/2022.1/tps/lnx64/java-cef-78.3.9.242/bin/lib/linux64:/home/hasselbach/Xilinx/Vivado/2022.1/tps/lnx64/javafx-sdk-11.0.2/lib:/home/hasselbach/Xilinx/Vivado/2022.1/lib/lnx64.o/Ubuntu:/home/hasselbach/Xilinx/Vivado/2022.1/lib/lnx64.o:/home/hasselbach/Xilinx/Vivado/2022.1/tps/lnx64/jre11.0.11_9/lib/:/home/hasselbach/Xilinx/Vivado/2022.1/tps/lnx64/jre11.0.11_9/lib//server:/tmp/TMP_LD_LIB_PATH2022-07-07-22-54-55-1657223695:/tmp/selfgz3168759/lib/lnx64.o/Ubuntu:/tmp/selfgz3168759/lib/lnx64.o::/home/hasselbach/Xilinx/Vivado/2022.1/bin/../lnx64/tools/dot/lib
% /home/hasselbach/Xilinx/Vivado/2022.1/bin/vivado -nolog -nojournal -mode batch -source /home/hasselbach/Xilinx/Vivado/2022.1/scripts/sysgen/tcl/xlpartinfo.tcl -tclargs /home/hasselbach/Xilinx/Vivado/2022.1/data/parts/installed_devices.txt
application-specific initialization failed: couldn't load file "librdi_commontasks.so": libtinfo.so.5: cannot open shared object file: No such file or directory
Now we can see an actuall error: libtinfo.so.5
is missing from LD_LIBRARY_PATH.
- Fix LD_LIBRARY_PATH:
Find lost library and add that path to the variable:
% find . | grep libtinfo.so.5
./xic/lib/lnx64.o/SuSE/libtinfo.so.5
./Model_Composer/2022.1/lib/lnx64.o/SuSE/libtinfo.so.5
./Vivado/2022.1/lib/lnx64.o/SuSE/libtinfo.so.5
./.xinstall/Vivado_2022.1/lib/lnx64.o/SuSE/libtinfo.so.5
./.xinstall/xic/lib/lnx64.o/SuSE/libtinfo.so.5
./.xinstall/DocNav/lib/lnx64.o/SuSE/libtinfo.so.5
./Vitis_HLS/2022.1/lib/lnx64.o/SuSE/libtinfo.so.5
./Vitis_HLS/2022.1/lnx64/tools/clang-3.9/lib/libtinfo.so.5
./Vitis_HLS/2022.1/lnx64/tools/clang-3.9/lib/libtinfo.so.5.7
Many paths have the library, I chose the last one because it does not mention SuSE (I was running Ubuntu), run fixed command:
% export LD_LIBRARY_PATH=/home/hasselbach/Xilinx/Vivado/2022.1/tps/lnx64/python-3.8.3/lib:/home/hasselbach/Xilinx/Vivado/2022.1/tps/lnx64/java-cef-78.3.9.242/bin/lib/linux64:/home/hasselbach/Xilinx/Vivado/2022.1/tps/lnx64/javafx-sdk-11.0.2/lib:/home/hasselbach/Xilinx/Vivado/2022.1/lib/lnx64.o/Ubuntu:/home/hasselbach/Xilinx/Vivado/2022.1/lib/lnx64.o:/home/hasselbach/Xilinx/Vivado/2022.1/tps/lnx64/jre11.0.11_9/lib/:/home/hasselbach/Xilinx/Vivado/2022.1/tps/lnx64/jre11.0.11_9/lib//server:/tmp/TMP_LD_LIB_PATH2022-07-07-22-54-55-1657223695:/tmp/selfgz3168759/lib/lnx64.o/Ubuntu:/tmp/selfgz3168759/lib/lnx64.o:/home/hasselbach/Xilinx/Vivado/2022.1/bin/../lnx64/tools/dot/lib:/home/hasselbach/Xilinx/Vitis_HLS/2022.1/lnx64/tools/clang-3.9/lib
% /home/hasselbach/Xilinx/Vivado/2022.1/bin/vivado -nolog -nojournal -mode batch -source /home/hasselbach/Xilinx/Vivado/2022.1/scripts/sysgen/tcl/xlpartinfo.tcl -tclargs /home/hasselbach/Xilinx/Vivado/2022.1/data/parts/installed_devices.txt
****** Vivado v2022.1 (64-bit)
**** SW Build xxxxx on xxxxx MDT 2022
**** IP Build xxxxx on xxxxx MDT 2022
** Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
source /home/alice/Xilinx/Vivado/2022.1/scripts/sysgen/tcl/xlpartinfo.tcl
# proc dsp_get_all_families { } {
# set parts [get_parts]
....
# exit
# }
# exit
INFO: [Common 17-206] Exiting Vivado at Fri Jul 8 12:37:12 2022...
This is success.
- Kill the stuck processes (see paragraph 1):
kill 3962997 3963000 3963031 3963118
Now the installer will proceed, but it may stcck again with another similar command:
- Repeat 3-4 for other stuck processes:
% ps aux | grep -i xilinx | grep nolog
hasselbach 4139736 0.0 0.0 2892 800 pts/0 S+ 12:38 0:00 /bin/sh -c /home/hasselbach/Xilinx/Vivado/2022.1/bin/vivado -nolog -nojournal -mode batch -source /home/hasselbach/Xilinx/Model_Composer/2022.1/data/xmcGenBoardParts.tcl -tclargs /home/hasselbach/Xilinx/Model_Composer/2022.1/../../Vivado/2022.1 librdi_dsp_tcltasks.so /home/hasselbach/Xilinx/Model_Composer/2022.1/data
hasselbach 4139740 0.0 0.0 18756 2524 pts/0 S+ 12:38 0:00 /bin/bash /home/hasselbach/Xilinx/Vivado/2022.1/bin/vivado -nolog -nojournal -mode batch -source /home/hasselbach/Xilinx/Model_Composer/2022.1/data/xmcGenBoardParts.tcl -tclargs /home/hasselbach/Xilinx/Model_Composer/2022.1/../../Vivado/2022.1 librdi_dsp_tcltasks.so /home/hasselbach/Xilinx/Model_Composer/2022.1/data
hasselbach 4139756 0.0 0.0 18756 2596 pts/0 S+ 12:38 0:00 /bin/bash /home/hasselbach/Xilinx/Vivado/2022.1/bin/loader -exec vivado -nolog -nojournal -mode batch -source /home/hasselbach/Xilinx/Model_Composer/2022.1/data/xmcGenBoardParts.tcl -tclargs /home/hasselbach/Xilinx/Model_Composer/2022.1/../../Vivado/2022.1 librdi_dsp_tcltasks.so /home/hasselbach/Xilinx/Model_Composer/2022.1/data
hasselbach 4139775 6.2 0.1 257012 43468 pts/0 Sl+ 12:38 0:00 /home/hasselbach/Xilinx/Vivado/2022.1/bin/unwrapped/lnx64.o/vivado -nolog -nojournal -mode batch -source /home/hasselbach/Xilinx/Model_Composer/2022.1/data/xmcGenBoardParts.tcl -tclargs /home/hasselbach/Xilinx/Model_Composer/2022.1/../../Vivado/2022.1 librdi_dsp_tcltasks.so /home/hasselbach/Xilinx/Model_Composer/2022.1/data
In my case it was enough to run this command because I have exported LD_LIBRARY_PATH:
% /home/hasselbach/Xilinx/Vivado/2022.1/bin/vivado -nolog -nojournal -mode batch -source /home/hasselbach/Xilinx/Model_Composer/2022.1/data/xmcGenBoardParts.tcl -tclargs /home/hasselbach/Xilinx/Model_Composer/2022.1/../../Vivado/2022.1 librdi_dsp_tcltasks.so /home/hasselbach/Xilinx/Model_Composer/2022.1/data
****** Vivado v2022.1 (64-bit)
**** SW Build xxxxx on xxxxx MDT 2022
**** IP Build xxxxx on xxxxx MDT 2022
** Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
source /home/hasselbach/Xilinx/Model_Composer/2022.1/data/xmcGenBoardParts.tcl
# if {$argc != 3} {
# puts "The script requires two input arguments."
...
# dsp_write_part_objects -dirpath [lindex $argv 2]
# exit
INFO: [Common 17-206] Exiting Vivado at Fri Jul 8 12:38:58 2022...
After succesful run I have killed them as well:
% kill 4139736 4139740 4139756 4139775
- Success
After killing the last stuck process, a message from installer will pop up with the very same errors that we have seen in the terminal, just press ok and you will see:
Installation completed succefully