Update (05/02/2025)
Upon further testing this setup, issues with electron apps and graphical errors remained persistent. Most of these errors appear to be related to the version of KDE Plasma 5 that Debian ships with. Unfortunately upgrading KDE and retaining stable operation would be difficult to say the least. I have since migrated to Fedora 41 which includes NVIDIA 565.77 and KDE Plasma 6.2.5 in its repositories where these issues are mostly resolved.
Preamble
So my CachyOS experiment lasted a grand total of… *drum-roll* 2 DAYS! As much as I love Arch and rolling release distros, they do come with caveats. The deal breaker for me was that no matter what I did or what method I used to install Docker Compose and the NVIDIA Container Toolkit, I couldn’t get GPU acceleration working in Docker. So I decided to jump ship back to Debian.
It may not be on the bleeding edge and plenty of people joke about packages being “stale” instead of stable, but the stability of Debian as a Desktop Workstation is 2nd to none in my opinion. Fedora coming in a close 2nd. And while the joke about Debian being stale is partly a lighthearted jab, there is truth to it. For example, the NVIDIA drivers in Bookworm’s repository are version 535.216.01 as of the 01/02/2025, whereas Arch includes the 565 driver with nvidia-utils by default. While for general use, this isn’t really an issue, some modern games require newer drivers to perform properly. One such case I ran across almost immediately was Dragon Age: The Veilguard.
On launch Dragon Age launched a prompt stating that the recommended driver was at least 565. Sure enough, the game performed like fetid ass with the stock proprietary driver regardless of which proton version is used. Looking at ProtonDB, other Debian users have solved this by installing Linux beta drivers from the beta branch.
WARNING
Before proceeding, be aware that manually installing drivers using these NVIDIA scripts is likely to break your system with subsequent firmware updates. I AM NOT RESPONSIBLE FOR ANY DATA LOSS. ALWAYS KEEP BACKUPS OF CRITICAL DATA! I’d suggest having a system in place that can roll back any changes in case of catastrophic failure as well as performing routine backups. I personally use automatic snapshots with Snapper and btrfs as per this guide by David Cortes and back up important documents to my NAS and the cloud.
I’m normally against skirting around using a package manager if it can be avoided. The recommended installation method for newer packages in Debian is to use backports from the experimental repository. However, even there the latest version is 545.23.06. If you decide to proceed, keep in mind that this guide does not cover signing drivers for use with Secure Boot. You can follow the installation instructions on the NVIDIA website if needed.
Driver updates will involve repeating these steps every time.
Download The Latest NVIDIA Driver
At the time of writing, the 565 driver can be downloaded from the NVIDIA Unix Archive.

Install Dependencies
- Enable 32-bit and install 32-bit C libraries
sudo dpkg --add-architecture i386 && sudo apt update && sudo apt -y install libc6:i386
- Install build dependencies
sudo apt -y install linux-headers-$(uname -r) build-essential libglvnd-dev pkg-config
Prepare System for Installation
- Blacklist nouveau drivers
echo "blacklist nouveau\noptions nouveau modeset=0" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
- Update kernel initramfs
sudo update-initramfs -u
- Reboot
systemctl reboot
- In the grub menu, select advanced options and enter recovery mode.
- Enter password if prompted.
Install Drivers
- Navigate to your downloads folder or wherever you saved the .run file to
cd /home/<username>/Downloads
- Make script executable
chmod +x ./NVIDIA-Linux-x86_64-<version>.run
- Run the installer
sh ./NVIDIA-Linux-x86_64-<version>.run
- Follow the prompts to install the 64 and 32-bit versions of the driver (important if you use Steam). Rebuild the initramfs when prompted.
- Reboot the system.
systemctl reboot
If all went smoothly you should now boot to your greeter with the NVIDIA driver installed.
Improving Wayland Compatibility
Choose to log in to an X11 session as we need to tweak a few settings to improve Wayland compatibility.
- Confirm that the NVIDIA driver is installed with the version you want:
nvidia-smi
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 565.77 Driver Version: 565.77 CUDA Version: 12.7 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 3080 Off | 00000000:0B:00.0 On | N/A |
| 0% 42C P8 50W / 370W | 1689MiB / 10240MiB | 6% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
- Ensure the GPU is using the NVIDIA driver:
lspci -nnk | grep -A 3 VGA
You should see something similar to this. Look for nvidia in the Kernel driver in use section:
0b:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102 [GeForce RTX 3080 Lite Hash Rate] [10de:2216] (rev a1)
Subsystem: ASUSTeK Computer Inc. GA102 [GeForce RTX 3080 Lite Hash Rate] [1043:882e]
Kernel driver in use: nvidia
Kernel modules: nouveau, nvidia_drm, nvidia
- Check if the driver is running in modesetting
sudo cat /sys/module/nvidia_drm/parameters/modeset
- If the output is “N”, enable it and update initramfs with:
echo "options nvidia_drm modeset=1" | sudo tee /etc/modprobe.d/nvidia-options.conf && sudo update-initramfs -u
- Install nvidia-suspend-common package with apt:
sudo apt -y install nvidia-suspend-common
- Enable the helper scripts:
sudo systemctl enable nvidia-suspend.service
sudo systemctl enable nvidia-hibernate.service
sudo systemctl enable nvidia-resume.service
- Check if if PreserveVideoMemoryAllocations is enabled:
cat /proc/driver/nvidia/params | grep PreserveVideoMemoryAllocations
- If the value is 0, enable it with:
echo "options nvidia NVreg_PreserveVideoMemoryAllocations=1" | sudo tee -a /etc/modprobe.d/nvidia-options.conf
Improving Xwayland Compatibility in Mixed Refresh Rate Monitor Setups
I’ve found that certain apps that use legacy windowing systems can experience artifacting in KDE when using the proprietary NVIDIA driver, especially when using monitors with mixed resolutions/refresh rates.
If you are using matching monitors or a single display you can probably skip this step.
- In an X11 session, launch NVIDIA settings with super-user privileges.
sudo nvidia-settings
- We need to change a few things in these sections:

- Go to OpenGL Settings and uncheck “Sync to Vblank” and “Allow Flipping”

- Under the “X Server Display Configuration” tab, select advanced.

- Select Force
FullComposition Pipeline checkbox for all displays.- note: Upon further reading Force Full Composition Pipeline is not recommended as it impacts game performance to reduce screen tearing. Force Composition should be enough.

- Select apply and the Save to X Configuration File.

- Click Save

- Quit.
- You can ignore the warning about unsaved changes if prompted.
- Open up /etc/xorg/xorg.conf with your favourite text editor
sudo nano /etc/xorg/xorg.conf
- Add “ Option "TripleBuffer" "On" ” below the Board Name in the Device section

- Check your monitor’s settings with
xrandr
. Mine looks like this:
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-0 connected 1920x1080+0+180 (normal left inverted right x axis y axis) 527mm x 296mm
1920x1080 60.00*+ 59.94
1680x1050 59.95
1600x900 75.00 60.00
1440x900 59.89
1280x1024 75.02 60.02
1280x720 59.94
1152x864 75.00
1024x768 75.03 60.00
800x600 75.00 60.32
720x480 59.94 59.94
640x480 75.00 72.81 59.94
DP-2 connected primary 3440x1440+1920+0 (normal left inverted right x axis y axis) 819mm x 346mm
3440x1440 99.98*+ 84.96 74.98 59.97
1920x1080 60.00 59.94 50.00
1680x1050 59.95
1440x900 59.89
1440x576 50.00
1440x480 59.94
1280x1024 75.02 60.02
1280x960 60.00
1280x720 60.00 59.94 50.00
1152x864 75.00
1024x768 75.03 70.07 60.00
800x600 75.00 72.19 60.32 56.25
720x576 50.00
720x480 59.94
640x480 75.00 72.81 59.94 59.93
DP-3 disconnected (normal left inverted right x axis y axis)
HDMI-1 disconnected (normal left inverted right x axis y axis)
DP-4 disconnected (normal left inverted right x axis y axis)
DP-5 disconnected (normal left inverted right x axis y axis)
- You’ll want to take the output name and refresh rate of the monitor that has the HIGHEST refresh rate and put them in the following command. Mine looks like this. Adjust accordingly:
For Mutter/GNOME:
echo "CLUTTER_DEFAULT_FPS=100\n__GL_SYNC_DISPLAY_DEVICE=DP-2\n__GL_SYNC_TO_VBLANK=0" | sudo tee -a /etc/environment
for Kwin/KDE:
echo "KWIN_X11_NO_SYNC_TO_VBLANK=1\nKWIN_X11_REFRESH_RATE=100000\nKWIN_X11_FORCE_SOFTWARE_VSYNC=1\n" | sudo tee -a /etc/environment
- Create a script to launch the config on startup:
sudo mkdir /etc/X11/xinit/xinitrc.d/ && echo -e "#\!/bin/sh\n/usr/bin/nvidia-settings --load-config-only" | sudo tee /etc/X11/xinit/xinitrc.d/95-nvidia-setting \
sudo chmod +x /etc/X11/xinit/xinitrc.d/95-nvidia-setting
- Add a script to enable triple buffering on boot
echo "export KWIN_TRIPLE_BUFFER=1" | sudo tee /etc/profile.d/kwin.sh && sudo chmod +x /etc/profile.d/kwin.sh
- Reboot
systemctl reboot
If all went smoothly, Wayland should be good to go!
Results
Sure enough, with the latest drivers installed, Dragon Age runs like a charm! Although I say that now, I’m only a few days in, so we’ll see how this setup holds up in the long run! Next steps will be to install Docker under Debian so I can play around with a few AI models. I’m keen to see how Deepseek compares to its competitors!
References
- https://wiki.debian.org/NvidiaGraphicsDrivers
- https://phoenixnap.com/kb/nvidia-drivers-debian
- https://www.reddit.com/r/linuxhardware/comments/mht7kn/workaround_for_multiple_monitors_with_different/
- https://www.reddit.com/r/kde/comments/w96t76/compositor_still_caps_144hz60hz_dualmonitor_setup/
- https://www.reddit.com/r/kde/comments/9q2rot/nvidia_proprietary_drivers_vsync_triple_buffer/