This is guide, howto install NVIDIA proprietary drivers (manually using .run files) on openSUSE Leap 16.0 / Tumbleweed and disable Nouveau driver. This guide works with GeForce 8/9/200/300/400/500/600/700/800/900/10/20/30/40/50 series cards.

This guide works with UEFI Secure Boot disabled or enabled. If you keep Secure Boot enabled, follow this step-by-step module signing guide:

openSUSE Secure Boot: Howto sign NVIDIA kernel modules (DKMS + .run installer)

  • GeForce RTX 50 series cards works with 595.xx, 590.xx and 580.xx NVIDIA drivers, (RTX 5090 D, RTX 5090, RTX 5080, RTX 5070 Ti, RTX 5070)
  • GeForce RTX 40 series cards works with 595.xx, 590.xx and 580.xx NVIDIA drivers, (RTX 4090, RTX 4080, RTX 4070 Ti, RTX 4070, RTX 4060 Ti, RTX 4060)
  • GeForce RTX 30 series cards works with 595.xx, 590.xx and 580.xx NVIDIA drivers, (RTX 3090, RTX 3080 and RTX 3070, RTX 3060, RTX 3060 Ti)
  • GeForce RTX 20 series cards works with 595.xx, 590.xx and 580.xx NVIDIA drivers (RTX 2080 Ti, RTX 2080, RTX 2070 Ti, RTX 2070, RTX 2060)
  • GeForce 16 Series cards works still with 595.xx, 590.xx and 580.xx NVIDIA drivers (GeForce GTX 1660 SUPER, GeForce GTX 1650 SUPER, GeForce GTX 1660 Ti, GeForce GTX 1660, GeForce GTX 1650, GeForce GTX 1630)
  • GeForce GT/GTX 600/700/800/900/10 series cards works with 580.xx NVIDIA drivers (GTX 1080 Ti, GTX 1080, GTX 1070, GTX 1060 …)
  • Note GTX 10 series: NVIDIA GTX 10 series cards do not work with 595.xx or 590.xx drivers, use 580.xx.

Why NVIDIA .run installer???

All methods have their advantages, some are easy and suitable for users who don’t understand or don’t want to understand anything about Linux.

With manual installation you can control NVIDIA drivers versions as you wish.

You can easily install / change / test / run:

  • NVIDIA New Feature Branch (NFB) drivers
  • NVIDIA Long Lived Branch (LLB) drivers
  • NVIDIA Short Lived Branch (SLB) drivers
  • NVIDIA LEGACY drivers
  • NVIDIA BETA drivers
  • Install NVIDIA drivers with custom patches
  • Just stay in some particular NVIDIA version

This is old school (and bit ugly) method and install NVIDIA drivers “manually”. I have tested this guide with 580.xx, 590.xx, 595.xx drivers/cards. With DKMS, you can just update your kernel and your NVIDIA drivers are compiled automatically. If you want to upgrade NVIDIA drivers, then you have to download new installer package from NVIDIA site.

Let me know, if you have some problems?

Or if you succeed, you could post output of following commands:

nvidia-installer -v |grep version
uname -a
lspci |grep -E "VGA|3D"

First, backup important files before you start installation. And this is of course at your own risk, because graphic cards, components and monitors are different and some combinations might cause totally unexpected results.

1. Before NVIDIA drivers installation

1.1 Check is your NVIDIA card supported

lspci |grep -E "VGA|3D"
## Example outputs ##
01:00.0 VGA compatible controller: NVIDIA Corporation TU106 [GeForce RTX 2060 Rev. A] (rev a1)

List of Supported NVIDIA GPU Products, check best driver for your card.

If you see multiple VGA controllers, then check next step carefully and sometimes you might see example Intel VGA controller which have nothing to do with Optimus, normally you can go to BIOS and simply disable it.

1.2 NVIDIA Optimus Technology

If your lspci |grep -E “VGA|3D” output looks like following:

00:02.0 VGA compatible controller: Intel Corporation 2n Generation Core Processor Family Integrated Graphics Controller (rev 09)
01:00.0 VGA compatible controller: NVIDIA Corporation GF106 [GeForce GT 555M SDDR3] (rev a1)

OR

00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)
01:00.0 3D controller: NVIDIA Corporation GK107M [GeForce GT 750M] (rev a1)

Or you know that your computer have NVIDIA Optimus Technology, and it is impossible to turn Intel Graphics / NVIDIA Optimus off in the BIOS then this guide might not work for you and it’s not tested. You should read this NVIDIA Optimus page first and maybe check NVIDIA PRIME Render Offload, Bumblebee Project or NVIDIA XRun Project.

1.3 Disable UEFI Secure Boot or Check Howto Sign NVIDIA Kernel Module

Check is UEFI Secure Boot Enabled or Disabled

mokutil --sb-state

This guide works with UEFI Secure Boot disabled or enabled.

  • If you prefer the simple path, disable Secure Boot.
  • If you want to keep Secure Boot enabled, you must sign the NVIDIA kernel modules (see NVIDIA module signing documentation). Follow this step-by-step module signing guide:

openSUSE Secure Boot: Howto sign NVIDIA kernel modules (DKMS + .run installer)

2. Install NVIDIA proprietary drivers on openSUSE Leap 16.0 / Tumbleweed and disable the nouveau driver

2.1 Download NVIDIA Installer Package

Go to http://www.nvidia.com/Download/Find.aspx?lang=en-us and find latest version of installer package. When you use browser this is normally downloaded /home/<username>/Downloads/NVIDIA-Linux-xxxx.run location.

Tested versions with openSUSE Leap 16.0 / Tumbleweed kernels:

openSUSE Leap 16.0 openSUSE Tumbleweed
595.58.03 (Tue Mar 24, 2026) 595.58.03 (Tue Mar 24, 2026)
590.48.01 (Thu Dec 18, 2025) 590.48.01 (Thu Dec 18, 2025)
580.142 (Tue Mar 10, 2026) 580.142 (Tue Mar 10, 2026)

2.2 Make NVIDIA installer executable

chmod +x /path/to/NVIDIA-Linux-*.run

2.3 Change root user

su -
## OR ##
sudo -i

2.4 Make sure that you system is up-to-date and you are running latest kernel

## openSUSE Leap 16.0 / Tumbleweed ##
zypper update

After kernel update reboot your system and boot using latest kernel:

reboot

2.5 Install needed dependencies

## openSUSE Leap 16.0 / Tumbleweed ##
zypper install kernel-devel kernel-source gcc make dkms acpid libglvnd libglvnd-devel

2.6 Add GRUB Entry for NVIDIA Install / Update

This helps with installation and updates because the nvidia-drm.fbdev=1 parameter (may) cause a black screen during installation or updates.

2.6.1 Create /etc/grub.d/42_inttf_nvidia file

cat > /etc/grub.d/42_inttf_nvidia <<'EOF'
#!/bin/sh

# Dynamically generate NVIDIA boot entry
. /etc/grub.d/10_linux >/dev/null 2>&1

# Ensure reverse_sorted_list is populated
if [ -z "${reverse_sorted_list}" ]; then
    echo "Error: reverse_sorted_list is empty. Ensure /etc/grub.d/10_linux is sourced correctly." >&2
    exit 1
fi

# Extract original entry details
original_entry="$(grep -A10 "menuentry 'openSUSE Leap 16.0'" /boot/grub2/grub.cfg)"
insmod_commands="$(echo "$original_entry" | grep '^\s*insmod' | sed 's/^\s*//')"
extra_config="$(echo "$original_entry" | grep -E '^\s*(set|load_video|search|echo)' | sed 's/^\s*//')"
original_linux_params="$(echo "$original_entry" | grep '^\s*linux' | sed 's/^\s*linux\s*//')"

# Generate only the NVIDIA Update entry
basename=""
for linux in ${reverse_sorted_list}; do
    basename=$(basename "$linux")
    dirname=$(dirname "$linux")
    rel_dirname=$(make_system_path_relative_to_its_root "$dirname")
    version=$(echo "$basename" | sed -e "s,^[^0-9]*-,,g")

    initrd_real=""
    for i in "initrd-${version}" "initramfs-${version}.img" "initrd-${version}.gz"; do
        if [ -e "${dirname}/${i}" ]; then
            initrd_real="${i}"
            break
        fi
    done

    if [ -z "$initrd_real" ]; then
        echo "Warning: No initrd found for kernel ${version}. Skipping entry." >&2
        continue
    fi

    cat << GRUBEOF
menuentry 'openSUSE Leap NVIDIA Update' --hotkey=2 --class opensuse --class gnu-linux --class gnu --class os {
        $extra_config
        $insmod_commands
        echo 'Loading Linux ${version} ...'
        linux ${rel_dirname}/${basename} ${original_linux_params} nvidia-drm.fbdev=0 3
        echo 'Loading initial ramdisk ...'
        initrd ${rel_dirname}/${initrd_real}
}
GRUBEOF
    break

done
EOF

2.6.2 Make 42_inttf_nvidia script executable

chmod +x /etc/grub.d/42_inttf_nvidia

2.7 Disable nouveau and add NVIDIA options

2.7.1 Disable / Blacklist nouveau

Add ‘blacklist nouveau’

echo "blacklist nouveau" >> /etc/modprobe.d/inttf-nvidia.conf

2.7.2 Add Following Content to /etc/modprobe.d/inttf-nvidia.conf

echo "options nvidia NVreg_PreserveVideoMemoryAllocations=1" >> /etc/modprobe.d/inttf-nvidia.conf

echo "options nvidia-drm modeset=1 fbdev=1" >> /etc/modprobe.d/inttf-nvidia.conf

2.7.3 Update GRUB Configuration

After creating the GRUB entry and configuring nouveau/nvidia options, update the GRUB configuration:

## BIOS / UEFI ##
grub2-mkconfig -o /boot/grub2/grub.cfg

2.7.4 Generate initramfs

## Backup old initramfs nouveau image ##
mv /boot/initrd-$(uname -r) /boot/initrd-$(uname -r)-nouveau

## Create new initramfs image openSUSE Leap 16.0 / Tumbleweed ##
dracut /boot/initrd-$(uname -r) $(uname -r)

2.8 Reboot to runlevel 3

Note: You don’t have Desktop/GUI on runlevel 3. Make sure that you have some access to end of guide. (Open it on mobile browser, Print it, use lynx/links/w3m, save it to text file).

Important: Boot using the “openSUSE Leap NVIDIA Update” entry that you created in section 2.6. This boot entry has the necessary parameters (nvidia-drm.fbdev=0 and runlevel 3) to avoid black screen issues during driver installation/update.

At the GRUB menu, select “openSUSE Leap NVIDIA Update” (hotkey: 2) to boot into runlevel 3 with the correct kernel parameters for NVIDIA installation.

reboot

OR alternatively you can change the runlevel on GRUB2 adding one additional parameter. Quick guide howto change runlevel on GRUB2. If you use this method, then don’t set multi-user.target and don’t set graphical.target on step 2.9 (just reboot).

2.9 Install NVIDIA proprietary drivers for GeForce 6/7 & GeForce 8/9/200/300 & GeForce 400/500/600/700/800/900/10/20 series cards

2.9.1 Log in as root user

Or alternatively log in as normal user and change root user (you shouldn’t have nouveau and xorg loaded)

su -
## OR ##
sudo -i

2.9.2 Run NVIDIA Binary

Following command executes driver install routine. Use full file name command if you have multiple binaries on same directory.

./NVIDIA-Linux-*.run
## OR full path / full file name ##
Downloads/NVIDIA-Linux-x86_64-595.58.03.run
Downloads/NVIDIA-Linux-x86_64-590.48.01.run
Downloads/NVIDIA-Linux-x86_64-580.142.run

Secure Boot users: If UEFI Secure Boot is enabled, then you must sign the NVIDIA kernel modules. Do key enrollment first (see openSUSE Secure Boot: Howto sign NVIDIA kernel modules (DKMS + .run installer)), and then run installer with module signing options:

./NVIDIA-Linux-*.run \
    --module-signing-secret-key=/root/module-signing/MOK-nvidia.priv \
    --module-signing-public-key=/root/module-signing/signing-nvidia.x509

2.9.3 NVIDIA Installer Register the Kernel Source Modules with DKMS

NVIDIA Installer dkms

2.9.4 NVIDIA Installer 32-bit Compatibility Libraries

NVIDIA Installer 32-bit Compatibility Libraries

2.9.5 NVIDIA Installer Installing Drivers and Building kernel module

NVIDIA Installer Installing Files

NVIDIA Installer Building Kernel Module

NVIDIA Installer Installing Kernel Module

2.9.6 NVIDIA Installer Automatic Xorg Config and Backup

NVIDIA Installer Automatic Xorg Config and Backup

2.9.7 NVIDIA Drivers Installation Complete

NVIDIA Drivers Installation Complete

2.10 All Is Done and Then Reboot Back to Runlevel 5

reboot

2.11 VDPAU/VAAPI support

To enable video acceleration support for your player (Note: you need Geforce 8 or later).

## openSUSE Leap 16.0 / Tumbleweed ##
zypper install libvdpau1 libva-vdpau-driver libva-utils libva-wayland2 libva-x11-2

2.12 Secure Boot users (DKMS module signing)

If UEFI Secure Boot is enabled, you can sign the NVIDIA modules already during installation (see Secure Boot command options on step 2.9.2). After installation, you still need to make sure future DKMS rebuilds (kernel updates, driver updates) are signed and the signing key is enrolled.

Follow step 4.6 here:

openSUSE Secure Boot: Sign NVIDIA Kernel Modules (DKMS + .run installer)

3. Some Screenshots Using Different Cards and Drivers

3.1 NVIDIA 510.39.01 drivers on openSUSE 15.4 with Kernel 5.14

NVIDIA 510.39.01 drivers on openSUSE 15.4 with Kernel 5.14

3.2 NVIDIA 390.147 drivers on openSUSE 15.4 Leap with Kernel 5.14

NVIDIA 390.147 drivers on openSUSE 15.3 Leap with Kernel 5.3

3.3 NVIDIA 390.147 drivers on openSUSE 15.3 Leap with Kernel 5.3

NVIDIA 390.147 drivers on openSUSE 15.4 with Kernel 5.14

3.4 NVIDIA 340.108 drivers on openSUSE 15.4 Leap with Kernel 5.14

NVIDIA 340.108 drivers on openSUSE 15.4 Leap with Kernel 5.14

3.5 NVIDIA 340.108 drivers on openSUSE Tumbleweed with Kernel 5.16

NVIDIA 340.108 drivers on openSUSE Tumbleweed with Kernel 5.16

Let me know, if you have problems?

Or if you succeed, you could post output of following commands:

nvidia-installer -v |grep version
uname -a
lspci |grep -E "VGA|3D"