Arch Linux - ChacyOS support for Alchitry Labs V2 2.0.24

I was able to install both Alchitry Labs V2 and Xilinx Vitis 2024.2 plus testing a demo project. I do not see any issues for now, unless I am missing something. Hopefully Alchitry will provide full support for Arch Linux :joy:

The main reason to use CachyOS is the Plasma6 running in Wayland. At least for me, the system is much more responsive, looks like a very significant upgrade, and works flawlessly.

Here is what I did.

Alchitry Labs V2:
The basic idea is to simply extract and put the whole package in /usr/lib. Then, add the USB rules to the system and activate them. Maybe there is an easier way I am not aware of. Follow this:

From Alchitry Labs

cd /home/work/tmp
wget https://github.com/alchitry/Alchitry-Labs-V2/releases/download/2.0.24/alchitry-labs-2.0.24-linux-amd64.tar.gz
tar -xvf alchitry-labs-2.0.24-linux-amd64.tar.gz
sudo mkdir /usr/lib/alchitry
sudo mv /home/work/tmp/alchitry-labs-2.0.24 /usr/lib/alchitry/alchitry-labs

From https://www.baeldung.com/linux/arch-install-deb-package

cd /home/work/tmp
wget xxxhttps://github.com/alchitry/Alchitry-Labs-V2/releases/latest/download/alchitry-alchitry-labs_2.0.24_amd64.deb
yay -S debtap
sudo debtap -u
debtap alchitry-alchitry-labs_2.0.24_amd64.deb

Copy the device rules into the system and activate:

sudo cp /home/work/tmp/alchitry-alchitry-labs_2.0.24_amd64-working-directory/etc/udev/rules.d/99-alchitry.rules /etc/udev/rules.d/
sudo udevadm control --reload
sudo udevadm trigger

Now the funny part, installing Xilinx Vitis in ChachyOS (Arch Linux). I will just copy/paste the whole set of instructions. I used ChatGPT and I followed some instructions, to avois graphics issues, although I suspect it was overkill. Probably it will just work without too much fuss. You have to register and download the whole offline “FPGAs_AdaptiveSoCs_Unified_2024.2_1113_1001.tar” package, although I am not sure the web installer will work the same.

Here is what I did.

Xilinx Vitis 2024.2
From Xilinx Vivado - ArchWiki

Install XWayland:

sudo pacman -S cachyos-extra-v4/xorg-xwayland

Confirm XWayland is installed;

pacman -Q xorg-xwayland

Verify that your current session is Wayland:

echo $XDG_SESSION_TYPE

Install GTK2 and GTK3:

sudo pacman -S cachyos-extra-v4/gtk2 cachyos-extra-v4/gtk3

Install QT5 base libraries:

sudo pacman -S cachyos-extra-v4/qt5-base cachyos-extra-v4/qt5-svg

Install 32-bit Compatibility Libraries glibc and gcc-libs:

sudo pacman -S cachyos-v4/lib32-glibc cachyos-v4/lib32-gcc-libs

Install libstdc++5 (for 32-bit and 64-bit):
yay -S libstdc++5 lib32-libstdc++5

Install ncurses5 (for 32-bit and 64-bit):
From archlinux - Manjaro install ncurses5-compat-libs - Stack Overflow

yay -S ncurses5-compat-libs
sudo pacman -S cachyos-core-v4/ncurses
sudo pacman -S lib32-ncurses

Install libxcrypt (for 32-bit and 64-bit):

yay -S libxcrypt-compat lib32-libxcrypt

Install OpenJDK:

sudo pacman -S jre-openjdk

Verify the installation:

java -version

Install core fonts:

sudo pacman -S ttf-dejavu ttf-liberation

Install Microsoft fonts (optional):

yay -S ttf-ms-fonts

Extract the tar package (skip if already done):

tar -xvf /home/work/src/electro/Xilinx_Vivado/FPGAs_AdaptiveSoCs_Unified_2024.2_1113_1001.tar

Configure Environment for XWayland:

echo '
#!/bin/bash

#Set environment variables for XWayland compatibility
export GDK_BACKEND=x11           # GTK apps use X11 under XWayland
export QT_QPA_PLATFORM=xcb       # QT apps use X11 under XWayland
export LIBGL_ALWAYS_SOFTWARE=1   # Force software rendering for compatibility
export SWT_GTK3=0                # Use GTK2 instead of GTK3


#Launch the Vivado installer
/home/work/src/electro/Xilinx_Vivado/FPGAs_AdaptiveSoCs_Unified_2024.2_1113_1001/xsetup
' > /home/work/src/electro/Xilinx_Vivado/launch_vitis_installer.sh
chmod +x /home/work/src/electro/Xilinx_Vivado/launch_vitis_installer.sh

Run the graphical installer using the script:

sudo mkdir -p /tools/Xilinx
sudo chown -R daddyzaur:daddyzaur /tools/Xilinx
/home/work/src/electro/Xilinx_Vivado/launch_vitis_installer.sh

After installation, verify the Vivado directory:

ls /tools/Xilinx/Vitis/2024.2

To ensure Vitis runs in graphical mode under XWayland without affecting other applications:

echo '
#!/bin/bash

#Set environment variables for XWayland compatibility
export GDK_BACKEND=x11           # GTK apps use X11 under XWayland
export QT_QPA_PLATFORM=xcb       # QT apps use X11 under XWayland
export LIBGL_ALWAYS_SOFTWARE=1   # Force software rendering
export SWT_GTK3=0                # Use GTK2 instead of GTK3

#Launch Vivado
/tools/Xilinx/Vitis/2024.2/bin/vitis "$@"
' > /home/work/src/electro/Xilinx_Vivado/launch_vitis_xwayland.sh
chmod +x /home/work/src/electro/Xilinx_Vivado/launch_vitis_xwayland.sh

(Optional) Add to PATH:

sudo ln -s /home/work/src/electro/Xilinx_Vivado/launch_vitis_xwayland.sh /usr/local/bin/vitis-xwayland

Verify session type outputs wayland:

echo $XDG_SESSION_TYPE

To launch Vitis in graphical mode under XWayland:

/home/work/src/electro/Xilinx_Vivado/launch_vitis_xwayland.sh

Or, if you added it to your PATH:

vitis-xwayland

If needed, capture logs for debugging:

/home/work/src/electro/Xilinx_Vivado/launch_vitis_xwayland.sh 2>&1 | tee vitis_log.txt
1 Like

Thanks for taking the time to write this up. I edited your post to fix the links and some formatting.

For future reference, you can use single backticks (`) to enclose inline code and triple backticks (```) to enclose multiline code. It makes things much easier to read.

I actually do all the development for Alchitry Labs on Arch (with Gnome). I’ve found the AUR package for Vitis to work great out of the box. I’m using X11 still though.

I’ll likely make an AUR package for Alchitry Labs but it’s not super high on my priority list right now.

Thanks Justin. Now my post looks like I am a software developer :slight_smile: You have no idea how much I appreciate what you’re doing. I have two boys, and they put a dent on my wallet. For some reason they really like your boards and your IDE.