⚠️ Critical Warning: Open Kernel Modules Required- The Critical First Step: Purging Existing Drivers
- Distribution-Specific Installation Instructions
- Verifying Driver Installation
- Troubleshooting Common Issues
- CUDA and Machine Learning Frameworks
- The NVIDIA-Linux Saga
Have you ever spent hours trying to get your NVIDIA GPU working on Linux? I just wasted three hours fighting with my new RTX 5080 card. Let me save you that frustration with this definitive guide to installing the correct drivers across various Linux distributions.
I'm still amazed at how challenging GPU drivers can be on Linux. But I've cracked the code, and today, I'll walk you through the exact steps to get your RTX 5000 Blackwell card running smoothly in under 10 minutes, regardless of which Linux distribution you're using.
FOR RTX 5000 SERIES (BLACKWELL) GPUS, YOU MUST USE OPEN KERNEL MODULES. PROPRIETARY DRIVERS DO NOT SUPPORT BLACKWELL.
NVIDIA is transitioning toward open-source GPU kernel modules for cutting-edge platforms like Blackwell. The proprietary driver branch does not include support for RTX 50 series cards. When installing, always choose the "open" variant or select the MIT/GPL open module option when using the .run installer.
The most common mistake people make is trying to install new drivers on top of old ones. This creates conflicts that can be a nightmare to resolve. Always start with a clean slate.
For Debian-based distributions (Ubuntu, Debian, Mint, Pop!_OS):
sudo apt-get remove --purge '^nvidia-.*'
sudo apt autoremove
sudo rebootFor Fedora/RHEL-based distributions:
sudo dnf remove "*nvidia*"
sudo rebootFor Arch-based distributions:
sudo pacman -Rs nvidia nvidia-utils
sudo rebootFor systems using the official NVIDIA installer (.run file):
sudo nvidia-uninstall
sudo rebootBefore installing the drivers, you may need specific dependencies for DKMS support and a smooth installation. These dependencies ensure proper kernel module compilation and integration with your system.
1. Installing Essential Dependencies:
sudo apt install pkg-config libglvnd-dev dkms build-essential libegl-dev libegl1 libgl-dev libgl1 libgles-dev libgles1 libglvnd-core-dev libglx-dev libopengl-dev gcc make2. Adding the Graphics Drivers PPA Repository:
This repository contains the latest tested drivers specifically for new GPU architectures.
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update3. Installing the Correct Driver:
sudo apt install nvidia-driver-580-open
sudo rebootThe "-open" suffix is crucial here. The proprietary drivers don't support Blackwell architecture properly.
Debian currently does not have packaged drivers that support Blackwell GPUs in its stable repositories. You must use NVIDIA's official .run installer.
Step 1: Install Required Dependencies
sudo apt update
sudo apt install pkg-config libglvnd-dev dkms build-essential libegl-dev libegl1 libgl-dev libgl1 libgles-dev libgles1 libglvnd-core-dev libglx-dev libopengl-dev gcc make linux-headers-$(uname -r)Step 2: Download the Latest NVIDIA Driver
# Download the latest stable driver (check https://www.nvidia.com/en-us/drivers/unix/ for updates)
wget https://us.download.nvidia.com/XFree86/Linux-x86_64/580.126.09/NVIDIA-Linux-x86_64-580.126.09.runNote: Always check the NVIDIA Unix Drivers page for the latest production branch driver version.
Step 3: Disable Nouveau Driver
echo "blacklist nouveau
options nouveau modeset=0" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
sudo update-initramfs -uStep 4: Stop Display Manager and Install
# Switch to a TTY (Ctrl+Alt+F3) and stop the display manager
sudo systemctl stop gdm3 # For GNOME/GDM
# OR
sudo systemctl stop sddm # For KDE/SDDM
# OR
sudo systemctl stop lightdm # For LightDM
# Make the installer executable and run it
chmod +x NVIDIA-Linux-x86_64-580.126.09.run
sudo ./NVIDIA-Linux-x86_64-580.126.09.runStep 5: During Installation - Select Open Kernel Modules
When the installer runs:
- Accept the license agreement
- When prompted, choose to install the "open" kernel modules (MIT/GPL licensed) - This is REQUIRED for Blackwell GPUs
- Accept the default options for the remaining prompts
- Allow the installer to update your X configuration file
Step 6: Reboot
sudo reboot1. Enable RPM Fusion repositories:
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm2. Install the open-source driver variant:
sudo dnf install akmod-nvidia-open xorg-x11-drv-nvidia-cuda
sudo reboot1. Install the required packages:
sudo pacman -S nvidia-open nvidia-utils
sudo rebootIf your distribution doesn't have packaged drivers, install directly from NVIDIA:
# Download the driver (replace with latest version from nvidia.com)
wget https://us.download.nvidia.com/XFree86/Linux-x86_64/580.126.09/NVIDIA-Linux-x86_64-580.126.09.run
# Make it executable
chmod +x NVIDIA-Linux-x86_64-580.126.09.run
# Run the installer with the open kernel module option
sudo ./NVIDIA-Linux-x86_64-580.126.09.runRegardless of your distribution, verify the installation with:
nvidia-smiYou should see driver version 570.x or newer listed in the output, along with your RTX 5000 series GPU information.
Example output:
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.126.09 Driver Version: 580.126.09 CUDA Version: 12.8 |
|-----------------------------------------+------------------------+----------------------+
| 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 5080 Off | 00000000:01:00.0 On | N/A |
| 0% 40C P8 15W / 360W | 512MiB / 16376MiB | 0% Default |
+-----------------------------------------+------------------------+----------------------+
If you see a ghost "Unknown Display" in Settings after installation:
sudo rm /dev/dri/card0Then log out and log back in.
For GNOME desktop environments:
sudo nano /etc/gdm3/custom.conf
# or
sudo nano /etc/gdm/custom.confEnsure WaylandEnable=true is uncommented, then run:
sudo ln -s /dev/null /etc/udev/rules.d/61-gdm.rules
sudo rebootFor KDE Plasma:
# Edit the file
sudo nano /etc/sddm.conf
# Add under [General]
DisplayServer=waylandIf you have Secure Boot enabled and encounter problems:
# Generate signing keys
sudo mokutil --generate-new-key
# Reboot and enroll the keys when prompted
# Then reinstall the driverThis is a common issue for laptop users, especially with ASUS ROG, Zephyrus, and other gaming laptops.
If you dual-boot with Windows or your laptop has a MUX switch (GPU switching technology), the dGPU may be powered off when you boot Linux.
Symptoms:
nvidia-smifails with "Failed to communicate with NVIDIA driver"- GPU not listed in
lspci | grep -i nvidia - Laptop only shows iGPU in system settings
Solutions:
For ASUS Laptops (Armoury Crate):
- Boot into Windows
- Open Armoury Crate
- Set GPU Mode to "Standard" or "Optimized" (NOT iGPU-only mode)
- Disable "Silent Mode" - use "Performance" or "Turbo" mode
- Reboot into Linux
For Other Laptops with MUX Switches:
- Enter BIOS/UEFI settings during boot (usually F2, F10, F12, or Del)
- Look for graphics settings (often under Advanced → Graphics Configuration)
- Set to "Discrete GPU" or "dGPU Mode" instead of "Optimus" or "Hybrid"
- Save and exit
Force Enable dGPU (if software controls it):
# For some ASUS laptops:
echo 0 | sudo tee /sys/devices/platform/asus-nb-wmi/dgpu_disable
echo 1 | sudo tee /sys/bus/pci/rescanInstall ASUS Linux Tools (for ASUS laptops):
# Arch Linux
yay -S asusctl supergfxctl
# Enable services
sudo systemctl enable --now asusd
sudo systemctl enable --now supergfxd
# Set graphics mode to dedicated GPU
supergfxctl -m dedicatedSymptom: Console/TTY works fine, but when X11/Wayland starts, you lose display signal on HDMI/DisplayPort.
Common Causes & Solutions:
A. Display Output Connected to iGPU Instead of dGPU
Many laptops route HDMI/DisplayPort through the iGPU. Check your BIOS for display output settings and set to use dGPU if available.
B. Driver Loading Order Issue
Try adding kernel parameters:
sudo nano /etc/default/grub
# Add to GRUB_CMDLINE_LINUX_DEFAULT:
# nvidia-drm.modeset=1
sudo update-grub
sudo rebootC. Blacklisting iGPU
If you want to use only the dGPU:
# Blacklist Intel iGPU (adjust for AMD iGPU if needed)
echo "blacklist i915" | sudo tee -a /etc/modprobe.d/blacklist.conf
sudo update-initramfs -u
sudo rebootD. Xorg Configuration
Create an Xorg config file:
sudo nano /etc/X11/xorg.conf.d/10-nvidia.confAdd:
Section "OutputClass"
Identifier "nvidia"
MatchDriver "nvidia-drm"
Driver "nvidia"
Option "AllowEmptyInitialConfiguration"
Option "PrimaryGPU" "yes"
ModulePath "/usr/lib/x86_64-linux-gnu/nvidia/xorg"
EndSection
E. Switch to Different Display Output
Some users report that DisplayPort works while HDMI doesn't (or vice versa). Try different ports.
F. BIOS Display Settings
In BIOS, look for:
- "Primary Display" → Set to "PCIe" or "PEG" (not "Auto" or "iGPU")
- "Above 4G Decoding" → Enable
- "Re-Size BAR Support" → Enable
If you get "NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver":
Step 1: Check if the kernel module loaded:
lsmod | grep nvidiaIf nothing appears, the module isn't loading. Check for errors:
sudo dmesg | grep -i nvidiaStep 2: Check Secure Boot:
mokutil --sb-stateIf Secure Boot is enabled, you need to sign the kernel modules or disable Secure Boot in BIOS.
Step 3: Check kernel headers match:
uname -r
ls /usr/src/linux-headers-*Ensure the headers match your running kernel version.
Step 4: Rebuild DKMS modules:
sudo dkms autoinstall
# or for specific driver
sudo dkms install nvidia/580.126.09
sudo rebootStep 5: Check for conflicting modules:
lsmod | grep nouveauIf nouveau is loaded, blacklist it and rebuild initramfs.
For those working with machine learning frameworks, install CUDA after your drivers:
Ubuntu/Debian:
sudo apt install nvidia-cuda-toolkitFedora:
sudo dnf install cudaArch:
sudo pacman -S cudaVerify CUDA installation:
nvcc --versionFor PyTorch or TensorFlow, install with GPU support:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
# or
pip install tensorflow[and-cuda]Important: Blackwell architecture requires CUDA 12.8+. Check compatibility with your frameworks before upgrading.
The complicated relationship between NVIDIA and Linux deserves mention. Back in 2012, Linus Torvalds—Linux's creator—famously gave NVIDIA the middle finger during a talk, saying "NVIDIA has been the single worst company we've ever dealt with, so NVIDIA, f*** you."
Source: https://youtu.be/Q4SWxWIOVBM?si=BwQqr3SslVDTMatG&t=21
His frustration stemmed from NVIDIA's reluctance to work with the open-source community despite selling millions of chips for Linux-based devices. This tension has shaped driver development for years.
Interestingly, we're now seeing NVIDIA transition toward open-source GPU kernel modules, which is why the RTX 5000 Blackwell series requires the "-open" driver variant. This represents progress, though challenges remain.
- 2025-02-11: Added separate Debian instructions (PPAs don't work on Debian)
- 2025-02-11: Added laptop/MUX switch troubleshooting section
- 2025-02-11: Added "No Display Output After X Starts" troubleshooting
- 2025-02-11: Updated driver version to 580.126.09
- 2025-02-11: Added prominent warning about open kernel modules being required for Blackwell
- 2025-02-11: Added "NVIDIA-SMI Failed to Communicate" troubleshooting

Thank you, fixed my CachyOS and LibreOffice scrolling speed being woefully slow. Followed the Arch / Plasma route in your guide. HP zBook Fury 17 g7 (RTX5000, Xeon, 64GB DDR4) Made the experience usable.