Disclosure: some links on this page are affiliate links. If you sign up through them we may earn a commission at no extra cost to you. It helps keep LinuxDistroFinder free.
NVIDIA driver installation is one of the most Googled Linux tasks — and for good reason. Get it wrong and you end up staring at a black screen, stuck in a login loop, or running your RTX 4080 on the painfully slow nouveau open-source driver that caps out at basic 2D acceleration. Get it right and you unlock full GPU performance, proper Wayland support (finally stable as of driver 555+), CUDA compute, and smooth gaming via Steam/Proton.
This guide covers the correct installation method for Ubuntu, Debian, Fedora, Arch Linux, Manjaro, openSUSE, and Pop!_OS — including how to handle Secure Boot, DKMS, and the difference between the proprietary and the new open kernel module. No fluff, no filler — just the exact commands you need.
First: Understand Your Options
Before running a single command, you need to know there are three distinct driver options available in 2026:
- NVIDIA Proprietary (closed-source): The classic option. Best performance, widest hardware support, required for CUDA workloads. Packaged by most distros.
- NVIDIA Open Kernel Module (nvidia-open): NVIDIA's own open-source kernel module, released in 2022, now production-ready for Turing (RTX 20xx) and newer GPUs as of driver branch 560+. Uses the same userspace blobs but an open kernel component. Recommended for modern cards on distros that ship it.
- Nouveau: Community-written fully open-source driver. Fine for basic desktop use, but lacks reclocking support on most Ampere/Ada cards — meaning a GTX 1080 will run at a fraction of its real speed. Not covered here as an install target.
nvidia-open) for all Turing (RTX 20xx) and newer GPUs. Maxwell, Pascal, and Volta cards should still use the legacy proprietary module. Check your GPU generation at nvidia.com/drivers.Quick Reference: Which Driver Branch to Use
| GPU Generation | Examples | Recommended Branch | Module Type |
|---|---|---|---|
| Ada Lovelace | RTX 4060–4090 | 570.x (latest) | nvidia-open |
| Ampere | RTX 3060–3090 Ti | 570.x (latest) | nvidia-open |
| Turing | RTX 2060–2080 Ti, GTX 1660 | 570.x (latest) | nvidia-open |
| Pascal | GTX 1050–1080 Ti | 570.x (latest) | Proprietary (closed) |
| Maxwell / Kepler | GTX 750–980 Ti, GTX 600/700 | 470.xx (legacy) | Proprietary (closed) |
| Fermi and older | GTX 400/500 series | 390.xx (legacy) | Proprietary (closed) |
lspci | grep -i nvidia in a terminal to confirm exactly which GPU model you have before installing anything.Ubuntu 22.04 / 24.04 LTS — The Easiest Path
Ubuntu ships NVIDIA drivers in its own repositories and provides the ubuntu-drivers tool, which auto-detects your GPU and installs the right version. This is by far the most beginner-friendly approach.
Method 1: Automatic (Recommended for Most Users)
# Update package lists first
sudo apt update
# Auto-install the recommended driver for your GPU
sudo ubuntu-drivers install
# Reboot to load the new kernel module
sudo rebootAfter rebooting, verify the driver loaded correctly:
nvidia-smiYou should see a table showing your GPU name, driver version (e.g. 570.144.03), and CUDA version.
Method 2: Manual Selection via apt
If you want a specific driver version (e.g. you need driver 535 for a CUDA 12.2 workflow), list available packages first:
# See all available nvidia driver packages
apt-cache search nvidia-driver
# Install a specific version, e.g. 570
sudo apt install nvidia-driver-570
# For the open kernel module variant on Turing+
sudo apt install nvidia-driver-570-open
sudo rebootMethod 3: GUI — Software & Updates
Open Software & Updates → Additional Drivers. Ubuntu will scan your hardware and list tested proprietary drivers. Select the one marked "tested" or "recommended", click Apply Changes, and reboot. This is identical to Method 1 but with a GUI.
Pop!_OS — Already Handled for You
Pop!_OS from System76 is unique: if you download the NVIDIA ISO (not the generic one), NVIDIA drivers are pre-installed and fully configured. There is nothing to do. This makes Pop!_OS arguably the best choice if your primary concern is GPU setup pain.
If you installed the generic ISO and want to add drivers:
# System76 ships its own driver package
sudo apt update
sudo apt install system76-driver-nvidia
sudo rebootDebian 12 (Bookworm)
Debian does not ship non-free drivers by default. You must enable the non-free and non-free-firmware components in your sources list first.
# Edit sources.list — add non-free and non-free-firmware
sudo nano /etc/apt/sources.list
# Each line should look like this (main contrib non-free non-free-firmware):
# deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
# Save and exit, then update
sudo apt update
# Install kernel headers and DKMS (required)
sudo apt install linux-headers-$(uname -r) dkms
# Install the NVIDIA driver
sudo apt install nvidia-driver firmware-misc-nonfree
sudo rebootFedora 40 / 41
Fedora does not include NVIDIA drivers in its official repos due to licensing. You need to add the RPM Fusion repository, which is the standard and safe way to do this.
# Enable RPM Fusion free and nonfree repos
sudo dnf install \
https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
# Update and install the NVIDIA driver (akmod = auto-rebuild on kernel update)
sudo dnf update
sudo dnf install akmod-nvidia
# For CUDA support, also install:
sudo dnf install xorg-x11-drv-nvidia-cuda
# IMPORTANT: Wait 5 minutes after install before rebooting
# akmod needs time to build the kernel module
sudo rebootThe akmod-nvidia package is Fedora-specific magic — it automatically rebuilds the kernel module every time your kernel updates, so you never face the "black screen after kernel update" problem that plagues manual driver installs.
sudo mokutil --import /etc/pki/akmods/certs/public_key.der after installation to enroll the signing certificate, then reboot and confirm in the MOK Manager.Arch Linux
Arch gives you full control. The official nvidia package in the extra repository is the recommended choice for most users on the latest kernel.
Use this if you run the standard linux kernel package. The nvidia package is compiled specifically for the stock Arch kernel and updates alongside it.
Use this if you run linux-lts, linux-zen, linux-hardened, or any custom kernel. DKMS rebuilds the module for every kernel installed on the system.
# For standard linux kernel
sudo pacman -S nvidia nvidia-utils lib32-nvidia-utils
# For linux-lts or other kernels
sudo pacman -S nvidia-dkms nvidia-utils lib32-nvidia-utils
# For the open kernel module (Turing+ recommended)
sudo pacman -S nvidia-open nvidia-utils lib32-nvidia-utils
# Regenerate initramfs
sudo mkinitcpio -P
sudo rebootAfter rebooting, add nvidia_drm.modeset=1 to your kernel parameters if you plan to use Wayland. Edit /etc/default/grub and add it to GRUB_CMDLINE_LINUX_DEFAULT, then run sudo grub-mkconfig -o /boot/grub/grub.cfg.
nvidia and nvidia-dkms packages. Install one or the other depending on your kernel. Mixing them causes module conflicts.Manjaro
Manjaro ships its own MHWD (Mhwd Hardware Detection) tool that wraps driver installation in a single command or GUI click.
# List available GPU drivers
mhwd -l -d --pci
# Install the recommended free driver (nouveau) — skip this for NVIDIA proprietary
# sudo mhwd -a pci free 0300
# Install the recommended NVIDIA proprietary driver
sudo mhwd -a pci nonfree 0300
sudo rebootOr use the GUI: open Manjaro Settings Manager → Hardware Configuration, select your GPU, choose the nonfree driver, and click Install. Manjaro handles kernel headers and DKMS automatically.
openSUSE Tumbleweed / Leap
openSUSE uses the NVIDIA repository directly via zypper.
# Add the NVIDIA repo (Tumbleweed)
sudo zypper addrepo --refresh \
https://download.nvidia.com/opensuse/tumbleweed \
NVIDIA
# For Leap 15.6, replace 'tumbleweed' with 'leap/15.6'
# Install the driver
sudo zypper install-new-recommends --repo NVIDIA
# Or install manually
sudo zypper install nvidia-video-G06 nvidia-gl-G06 nvidia-compute-utils-G06
sudo rebootThe G06 suffix corresponds to the current 500/560/570 driver series. If you have an older GPU, you may need G05 (470.xx) or G04 (390.xx).
Handling Secure Boot
Secure Boot prevents unsigned kernel modules from loading. If your system has Secure Boot enabled, you have two options:
- Disable Secure Boot in UEFI/BIOS: The simplest fix. Not ideal from a security standpoint but common for Linux gaming rigs.
- Sign the module with your own MOK key: Ubuntu and Fedora handle this automatically during driver install — just follow the prompts. On Arch, you must sign manually or use a pre-signed DKMS setup.
# Check if Secure Boot is currently enabled
mokutil --sb-state
# If it says "SecureBoot enabled", you'll need to enroll a MOK key
# Ubuntu/Pop handles this automatically; on Arch, use:
sudo mokutil --import /var/lib/shim-signed/mok/MOK.derVerifying the Installation
After every install method, run these commands to confirm everything is working:
# Show GPU info, driver version, and running processes
nvidia-smi
# Check which kernel module is loaded
lsmod | grep nvidia
# Verify OpenGL renderer (should show NVIDIA, not llvmpipe or nouveau)
glxinfo | grep "OpenGL renderer"
# For Vulkan (gaming)
vulkaninfo | grep "GPU id"Common Problems and Fixes
Boot into recovery mode or a TTY (Ctrl+Alt+F2). Run sudo apt purge nvidia-* (or distro equivalent), reinstall, and check your kernel parameters. Often caused by missing nvidia_drm.modeset=1 on Wayland.
If nouveau is still loading alongside the proprietary driver, blacklist it explicitly. Most distro packages do this automatically, but manual .run installs may not.
# Create a blacklist file
echo "blacklist nouveau" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
echo "options nouveau modeset=0" | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
sudo update-initramfs -u # Debian/Ubuntu
sudo mkinitcpio -P # ArchThis happens when you use a pre-compiled package (like the Arch nvidia package) but updated to a new kernel before the NVIDIA package was rebuilt for it. Switch to nvidia-dkms (Arch) or akmod-nvidia (Fedora) to avoid this permanently.
Usually a Secure Boot issue — the module is installed but blocked from loading. Check dmesg | grep nvidia for "Required key not available" errors, then enroll your MOK key or disable Secure Boot.
Enabling Wayland with NVIDIA (2026 Status)
As of driver 555+, NVIDIA finally ships with GBM (Generic Buffer Management) support enabled by default, making Wayland sessions on GNOME and KDE Plasma genuinely stable. You should no longer need to force Xorg for most use cases.
# Add these kernel parameters for full Wayland support
# Edit /etc/default/grub and add to GRUB_CMDLINE_LINUX_DEFAULT:
# nvidia_drm.modeset=1 nvidia_drm.fbdev=1
# Then update GRUB
sudo update-grub # Debian/Ubuntu
sudo grub2-mkconfig -o /boot/grub2/grub.cfg # Fedora
sudo grub-mkconfig -o /boot/grub/grub.cfg # ArchWaylandEnable=true is set (or not explicitly set to false) in /etc/gdm3/custom.conf. On KDE Plasma 6, Wayland is now the default session and works with NVIDIA out of the box on driver 555+.🖥️ Need a Linux VPS for GPU-Accelerated Workloads?
If you're doing CUDA development, AI/ML training, or running GPU workloads in the cloud, Vultr offers NVIDIA A100 and L40S GPU cloud instances with Linux pre-configured. New accounts get $100 in free credit to try it out.
Claim $100 Free Credit on Vultr →Need a cheaper VPS for testing Linux configs? Hostinger VPS starts from ₹149/month and runs any major distro.
Frequently Asked Questions
Should I use the proprietary driver or nvidia-open in 2026?
If you have a Turing (RTX 20xx) or newer GPU, use the open kernel module (nvidia-open or akmod-nvidia-open on Fedora). It's now the officially recommended path by NVIDIA itself, receives the same performance tuning as the proprietary module, and has better compatibility with future kernel changes. For Pascal and older, stick with the closed proprietary module.
Will installing NVIDIA drivers break my system?
Not if you use your distro's packaged driver via its official repository or recommended tool (ubuntu-drivers, mhwd, dnf with RPM Fusion, pacman). The risk of breakage comes from using the raw NVIDIA .run installer downloaded from nvidia.com, which bypasses your package manager. Avoid the .run file unless you have a very specific reason to use it.
Why does nvidia-smi not show anything after install?
The most common causes are: (1) you haven't rebooted yet, (2) Secure Boot is blocking the unsigned module, (3) the nouveau driver is still loaded and conflicting. Run dmesg | grep -i nvidia right after boot to see the actual error message.
Can I have both AMD integrated graphics and NVIDIA discrete GPU working?
Yes. This is a hybrid graphics (Optimus) setup, common in laptops. Install the NVIDIA driver as normal, then install nvidia-prime (Ubuntu/Debian) or configure PRIME via your distro's tools. You can switch between GPUs with prime-select nvidia or prime-select intel, or use __NV_PRIME_RENDER_OFFLOAD=1 to run specific apps on the NVIDIA GPU.
How do I uninstall NVIDIA drivers and go back to nouveau?
On Ubuntu/Debian: sudo apt purge nvidia-* then sudo apt autoremove. On Fedora: sudo dnf remove akmod-nvidia xorg-x11-drv-nvidia*. On Arch: sudo pacman -Rs nvidia nvidia-utils. Then remove the nouveau blacklist file from /etc/modprobe.d/ and reboot.
Do NVIDIA drivers work on ARM-based Linux systems?
NVIDIA does ship an ARM64 (aarch64) driver for its Jetson and Grace platforms, and limited support exists for the NVIDIA Tegra/Orin SoCs. However, consumer desktop driver packages from distro repos target x86_64 only. If you're on an ARM system, check NVIDIA's Jetson-specific documentation.
How often should I update NVIDIA drivers on Linux?
If you installed via your distro's package manager, updates come through the normal update process — just keep your system updated and drivers will follow. You don't need to manually chase NVIDIA's latest release unless you need a specific feature (e.g., support for a brand new GPU or a new CUDA version). Stability is generally better a few weeks after a major NVIDIA release when distros have packaged and tested it.