The wikis are now using the new authentication system.
If you did not migrate your account yet, visit https://idp-portal-info.suse.com/

SDB:NVIDIA drivers

Jump to: navigation, search


Warning: If you plan to replace your card with a more recent one, it's recommended that you uninstall the driver (reverting back to nouveau) before upgrading your hardware.

Situation

Installing the official NVIDIA drivers using ZYpp (YaST, YaST2, or Zypper) is desired.

For information regarding NVIDIA's official linux .run file see "the hard way".

Procedure

Installing with YaST or Zypper requires logging in as root.

Add the Nvidia Repository

The NVIDIA drivers can not be included with openSUSE because of their license. Conveniently, NVIDIA has an openSUSE repository that can be added and downloaded from.

YaST

  1. Open YaST, then click Software Repositories.
  2. Click Add (in the bottom left), then select Community Repositories.
  3. Select NVIDIA Graphics Drivers, then click OK.

Zypper

Leap 15.2
# zypper addrepo --refresh 'https://download.nvidia.com/opensuse/leap/$releasever' NVIDIA
Leap 15.1
# zypper addrepo --refresh https://download.nvidia.com/opensuse/leap/15.1 NVIDIA
Leap 15.0
# zypper addrepo --refresh https://download.nvidia.com/opensuse/leap/15.0 NVIDIA
Tumbleweed
# zypper addrepo --refresh https://download.nvidia.com/opensuse/tumbleweed NVIDIA

Get the hardware information

In a terminal:

# lspci | grep VGA
# lscpu | grep Arch

Alternatively:

# hwinfo --gfxcard | grep Model
# hwinfo --arch

There is also YaST2 -> Hardware Information.

Install

One way to determine the appropriate driver is to input your hardware information into Nvidia's driver search engine. Alternatively, if you know what series your card is in, then you can use the package summary. YaST's software manager or the following commands can be used to check the available packages:

# zypper se x11-video-nvidiaG0*
S | Name                | Summary                                                 | Type   
--+---------------------+---------------------------------------------------------+--------
  | x11-video-nvidiaG04 | NVIDIA graphics driver for GeForce 400 series and newer | package
  | x11-video-nvidiaG05 | NVIDIA graphics driver for GeForce 600 series and newer | package
# zypper se -s x11-video-nvidiaG0*
S | Name                | Type    | Version     | Arch   | Repository
--+---------------------+---------+-------------+--------+-----------
  | x11-video-nvidiaG04 | package | 390.116-5.1 | x86_64 | NVIDIA    
  | x11-video-nvidiaG04 | package | 390.116-5.1 | i586   | NVIDIA    
  | x11-video-nvidiaG05 | package | 418.56-9.1  | x86_64 | NVIDIA

YaST

  1. Go to the YaST Control Center and click Software Management.
  2. View > Repositories > NVIDIA
  3. Choose the appropriate driver, e.g. x11-video-nvidiaG04 or x11-video-nvidiaG05
  4. Press Accept.
  5. Restart your computer.

Zypper

# zypper in <x11-video-nvidiaG04 or x11-video-nvidiaG05>

Restart your computer.

Secureboot

openSUSE Leap 15.2 Kernels can't load any longer unsigned kernel modules on machines with secureboot enabled.

Therefore during NVIDIA driver installation on a secureboot system a MOK keypair is being created and the kernel modules been signed with the created private key. The created certificate (public key) remains on the harddisk below /var/lib/nvidia-pubkeys, but is also imported to the list of to be enrolled MOK pubkeys.

After first reboot this certificate can easily be enrolled to the MOK data base. The EFI tool for this is automatically been started. Inside the tool select "Enroll MOK", then "Continue", then "Yes". Use your root password (US keyboard layout!) when prompted for a password. The certificate is now into the MOK data base and is considered trusted so the signed kernel modules can successfully be verified against it. Then select "Reboot".

Nvidia-secureboot-enrollKey.jpg

In case you miss the timeout for certificate enrollment after first reboot, you can easily import again the certificate by running the following command:

# mokutil --import /var/lib/nvidia-pubkeys/MOK-nvidia-gfxG0<X>-<driver_version>-<kernel_flavor>.der --root-pw

Then reboot the machine and enroll the certificate as described before. In case you are having problems with secure boot, you can, at your own risk, disable validation for kernel modules:

# mokutil --disable-validation
Driver Update

During a driver update the old and no longer being used public key is being registered to be deleted from the MOK data base. So in addition to the "Enroll MOK" menu entry it'll appear a "Delete MOK" entry in the EFI tool once you reboot the machine. In order to finally remove it from the MOK data base, select "Delete MOK", then "Continue", then "Yes". Again use your root password (US keyboard layout!) when prompted for a password. You can show the certificate/description of the public key when selecting "View Key X" in order not to delete the wrong key. Press any key to continue from there.

Nvidia-secureboot-deleteKey.jpg

Uninstalling the NVIDIA drivers

YaST

  1. Start YaST, go to: Software -> Software Management
  2. Change the 'Filter' to filter by software repositories
  3. Select the respective NVIDIA repository
  4. Mark any installed package from this repository for deletion and press 'Accept'. You may be prompted for conflicts, please ignore any conflicts and chose to break dependencies.
  5. Now in YaST select: Software -> Software Repositories
  6. Chose the respective NVIDIA repository and mark it 'disabled' - don't delete it as it will return enabled the next time the repositories are synced with the server.

Uninstalling the proprietary drivers will restore the previous X configuration file /etc/X11/xorg.conf if one existed. If the hardware has changed in the mean time it may be necessary to manually edit this file.

Zypper

 # zypper rm <x11-video-nvidiaG04 or x11-video-nvidiaG05>

If that doesn't delete all the packages you can find the other names with

 # zypper se -ir NVIDIA

or

 # zypper lr
 # zypper se -ir <the repo number>

Also, the installer for the NVIDIA driver might have added nouveau to the blocklist; to be able to run the nouveau driver again make sure there are no files containing the word nouveau at /etc/modprobe.d/, as the installer might fail to remove these.

After uninstalling the packages, you might need to run:

 # mkinitrd

Troubles shooting

See also

External links