This repository contains a Xilinx Unified SDI 2025.1 docker image based on Ubuntu 24.04. It is based on Thierry Delafontaine's (delafthi) repo, original credits to him. Many upgrades went in to make sure the Vivado and Vitis work well in Ubuntu 24.04.
- Download the
Xilinx Unified Installer 2025.1: Linux Self Extracting Web Installerand place into the directory. - Adapt
install_config.txtto your likings, or regenerateinstall_config.txtby running./FPGAs_AdaptiveSoCs_Unified_SDI_2025.1_0530_0145_Lin64.bin -- --batch ConfigGenand copying the generated file into the directory. - Build the docker image by running
./build.sh. - At the beginning of the
./build.shscript you need to log in with your Xilinx credentials in order to create a authenication token for the web installer. - Adjust the
PROJECT_PATHvariable inrun.shto mount your project, workspace and miscelaneous folders, as well as device names (for instance, USB to serial adapters, cable devices) and run the docker image with./run.sh. - Start Vivado from the docker terminal with
vivado. Vitis can be started usingvitis - The password for sudo is the username that gets registered at the start of the session
- The root password in the container is root
--privileged option was removed to make this container more secure. To
add access to other HW types:
- Use the command
--device-cgroup-rule='c major_number:* rmw'on therun.shscript - The major number can be found by issuing
ls -la /dev/and noting down the number that appears by the side of the group that the device belongs - Example for the
ttyACM0:crw-rw----+ 1 root plugdev 166, 0 jul 24 22:32 /dev/ttyACM0 - Then the docker command is
--device-cgroup-rule='c 166:* rmw' - Other example for the
ttyUSB0:crw-rw----+ 1 root dialout 188, 0 jul 24 22:32 /dev/ttyUSB0 - Then the docker command for this other example becomes
--deice-cgroup-rule='c 188:* rmw' - Note that for hardware access to work, it is necessary that the host has the correct udev rules (or drivers, depending on the hardware) configured on the HOST. For Vivado, for instance, the udev rules from /etc/udev/rules.d from the Docker need to be copied to the equivalent folder on the host.
I am adding this list here as it might help other users, even if not using this containerized version
- GID PID conflict blocks the usage of sudo - Ubuntu creates a default GID PID 1000 called "ubuntu" that conflicts with the current user - Fixed by deleting this "ubuntu" user
- Vitis does not open at all - Wrong libstdc++ bundled - Fix discussed in
a post on Xilinx forum - XSDB crashes upon being launched from Vitis - Wrond rlwrap package version
bundled - Fix discussed in
another post on Xilinx forum - Petalinux DOES NOT WORK if two options are selected. It will fail with the error "Unknown option microblaze_full" or sonething similar. Either select only one architecture or all of them.