After some experimentation, I was able to install a fully updated copy of the Xilinx tools (2023.2.2 – May 2024) on Ubuntu 24.04 LTS. The following script outlines the process. Just my 4 cents (inflation). Maybe this will help someone; maybe not.
My installation would hang at “Generating installed device list” due to the absence of libncurses.so.5 on Ubuntu 24.04. Brief attempts to build libncurses.so.5 were not successful for me. Instead I created a few symbolic links to libncurses.so.6 which allow the installation to proceed.
#!/bin/bash
# Fixes "Generating installed device list" hang during Final Processing in the Xilinx installers caused by the absence of libncurses.so.5
# Assumes a 'clean' install of Ubuntu 24.04 LTS (May 2024) meaning libncurses.so.5 does not exist and xilinx 2023.2 has not been installed
if [ "$(id -u)" -ne 0 ]; then
echo "Run with root privileges."
exit 1
fi
# Define where the xilinx tools will eventually be installed
install_path="/Tools/Xilinx" # This must agree with the user entered installation location set in each Xilinx Installer when it executes
# Create a symbolic link to libcurses.so.6 in /lib64 if it doesn't exist
if [ ! -f /lib64/libncurses.so.6 ]; then
mkdir -p /lib64
ln -s /usr/lib/x86_64-linux-gnu/libncurses.so.6 /lib64/libncurses.so.6
fi
# Create a symbolic link to existing libtinfo.so.6
if [ ! -e /usr/lib/x86_64-linux-gnu/libtinfo.so.5 ]; then
ln -s /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5
fi
# Ensure the install directory for the xilinx required SuSE libncurses.so.5 exists before xilinx install
mkdir -p "${install_path}/lib/lnx64.o/SuSE"
suse_lib_path="${install_path}/lib/lnx64.o/SuSE/libncurses.so.5"
# Link libncurses.so.5 to the existing libncurses.so.6
if [ ! -e "${suse_lib_path}" ]; then
ln -s /usr/lib/x86_64-linux-gnu/libncurses.so.6 "${suse_lib_path}"
fi
# ###############################################################################################
# Manual command line xilinx installation should now be possible - stop here?
# The following code just helps automate a complete Xilinx 2023.2 toolset install (May 2024)
# ###############################################################################################
# Define installer path and packages/scripts to be installed
installer_packages=(
"FPGAs_AdaptiveSoCs_Unified_2023.2_1013_2256"
"${install_path}/Vitis/2023.2/scripts/installLibs.sh"
"Vivado_Vitus_Update_2023.2.1_1214_1912"
"Vivado_Vitis_Update_2023.2.2_0209_0950"
"Vivado_Lab_Lin_2023.2_1013_2256"
)
installer_path="/Data/Applications/Xilinx/2023.2/Installers"
# Loop through each package and install with debug switch -x
rm -f xilinxFailed.log
for installer_package in $installer_packages; do
rm -f "${installer_package}".log
# If xsetup is not found, assume the installer_package is a post-install script - execute it
if [ ! -f "${installer_path}/${installer_package}/xsetup" ]; then
if ! "${installer_package}" 2>&1 | tee "${installer_package}.log"; then
exit 1
fi
continue
fi
echo "Installing package: ${installer_package}"
if ! "${installer_path}/${installer_package}/xsetup" -x 2>&1 | tee "${installer_package}".log; then
echo "Installation of $installer_package failed." >> xilinxFailed.log
exit 1
fi
done
Apoplectic1 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.