Skip to content

Instantly share code, notes, and snippets.

@klpx
Created July 8, 2022 10:09
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save klpx/2e1d8a6a3a8b8d4e8407946a3e4cba3e to your computer and use it in GitHub Desktop.
Save klpx/2e1d8a6a3a8b8d4e8407946a3e4cba3e to your computer and use it in GitHub Desktop.
Vivado 2022.1 installation gets stuck at ‘Generating installed device list’

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.

Fix

The idea is to fix LD_LIBRARY_PATH environment varible for commands the installer runs.

  1. 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

  1. 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.

  1. 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.

  1. 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:

  1. 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
  1. 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment