Installation of NVIDIA drivers on openSUSE and SLE
This blogpost covers only installation of G06
drivers, i.e. drivers for GPUs >= Maxwell
, i.e.
- Maxwell, Pascal, Volta (
Proprietary
Kernel driver) - Turing and higher (
Open
Kernel driver)
Check with inxi -aG
on openSUSE Leap/Tumbleweed
if you have such a GPU. Use hwinfo --gfxcard
on SLE
. Use G04/G05 legacy drivers (both are Proprietary
drivers) for older NVIDIA
GPUs.
There are two different ways to install NVIDIA
drivers. Either use GFX Repository
or use CUDA Repository
.
GFX Repository
First add the repository if it has not been added yet. On openSUSE Leap/Tumbleweed
and SLE 15 Desktop
and SLE 15 Workstation Extension
it is being added by default. So check first, if it has already been added.
# openSUSE Leap/Tumbleweed
zypper repos -u | grep https://download.nvidia.com/opensuse/
# SLE
zypper repos -u | grep https://download.nvidia.com/suse
Verify that the repository is enabled. If the output was empty add the repository now:
# Leap 15.6
zypper addrepo https://download.nvidia.com/opensuse/leap/15.6/ nvidia
# Leap 16.0 (Beta)
zypper addrepo https://download.nvidia.com/opensuse/leap/16.0/ nvidia
# Tumbleweed
zypper addrepo https://download.nvidia.com/opensuse/tumbleweed/ nvidia
# SLE15-SP6
zypper addrepo https://download.nvidia.com/suse/sle15sp6/ nvidia
# SLE15-SP7
zypper addrepo https://download.nvidia.com/suse/sle15sp7/ nvidia
# SLE16 (Beta)
zypper addrepo https://download.nvidia.com/suse/sle16/ nvidia
With the following command the appropriate driver (Proprietary
or Open
Kernel driver) will be installed depending on the GPU on your system. In addition the CUDA
and Desktop
drivers are installed according to the software packages which are currently installed (Desktop
driver trigger: libglvnd
package).
zypper inr
The following graphics explains the installation and package dependancies.
CUDA Repository
Add the repository if it hasn’t been added yet. On SLE15
it might have already been added as aModule
. So check first:
# openSUSE Leap/Tumbleweed
zypper repos -u | grep https://developer.download.nvidia.com/compute/cuda/repos/opensuse15
# SLE
zypper repos -u | grep https://developer.download.nvidia.com/compute/cuda/repos/sles15
Verify that the repository is enabled. If the output is empty add the repository now:
# Leap 15.6/16.0(Beta)/Tumbleweed
zypper addrepo https://developer.download.nvidia.com/compute/cuda/repos/opensuse15/x86_64/ cuda
# SLE15-SPx/SLE16(Beta) (x86_64)
zypper addrepo https://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/ cuda
# SLE15-SPx/SLE16(Beta) (aarch64)
zypper addrepo https://developer.download.nvidia.com/compute/cuda/repos/sles15/sbsa/ cuda
Use Open
prebuilt/secureboot-signed Kernel driver (GPU >= Turing
)
In case you have a Turing
or later GPU it is strongly recommended to use our prebuilt
and secureboot-signed
Kernel driver. Unfortunately this is often not the latest driver, which is availabe, since this driver needs to go through our official QA
and Maintenance
process before it can be released through our product update channels, but things are much easier to handle for the user.
# Install open prebuilt/secureboot-signed Kernel driver
zypper in nvidia-open-driver-G06-signed-cuda-kmp-default
# Make sure userspace CUDA/Desktop drivers will be in sync with just installed open prebuilt/secureboot-signed Kernel driver
version=$(rpm -qa --queryformat '%{VERSION}\n' nvidia-open-driver-G06-signed-cuda-kmp-default | cut -d "_" -f1 | sort -u | tail -n 1)
# Install CUDA drivers
zypper in nvidia-compute-utils-G06 == ${version}
# Install Desktop drivers
zypper in nvidia-video-G06 == ${version}
Use Open
DKMS Kernel driver on GPUs >= Turing
(latest driver available)
If you really need the latest Open
driver (also for Turing
and later), use NVIDIA
’s Open
DKMS Kernel driver. This will build this driver on demand for the appropriate Kernel during the boot process.
# Install latest Open DKMS Kernel driver
zypper in nvidia-open-driver-G06
# Install CUDA drivers
zypper in nvidia-compute-utils-G06
# Install Desktop drivers
zypper in nvidia-video-G06
Use Proprietary
DKMS Kernel driver on Maxwell
>= GPU < Turing
For Maxwell
, Pascal
and Volta
you need to use the Proprietary
DKMS Kernel driver.
# Install proprietary DKMS Kernel driver
zypper in nvidia-driver-G06
# Install CUDA drivers
zypper in nvidia-compute-utils-G06
# Install Desktop drivers
zypper in nvidia-video-G06
Installation of CUDA
In case you used GFX Repository
for installing NVIDIA
drivers before, first add the CUDA Repository
as outlined above in CUDA Repository
chapter.
The following commands will install CUDA
packages themselves. It describes a regular and minimal installation. In addition it makes it easy to do first tests with CUDA
. Depending on which Kernel driver is being used it may be needed to install different CUDA
versions.
# Kernel driver being installed via GFX Repo
cuda_version=12-8
# Kernel driver being installed via CUDA Repo
cuda_version=12-9
# Regular installation
zypper in cuda-toolkit-${cuda_version}
# Minimal installation
zypper in cuda-libraries-${cuda_version}
# Unfortunately the following package is not available for aarch64,
# but there are CUDA samples available on GitHub, which can be
# compiled from source: https://github.com/nvidia/cuda-samples
zypper in cuda-demo-suite-${cuda_version}
Let’s have a first test for using libcuda
(only available on x86_64).
/usr/local/cuda-*/extras/demo_suite/deviceQuery
Which one to choose for NVIDIA driver installation: GFX or CUDA Repository?
Good question! Not so easy to answer. If you rely on support from NVIDIA
(especially when using SLE
), for Compute
usage we strongly recommend to use the CUDA Repository
for NVIDIA
driver installation. Even if you use NVIDIA
Desktop drivers as well.
For others - usually running openSUSE Leap/Tumbleweed
- it’s fine to use GFX Repository
for NVIDIA
driver installation and adding CUDA Repository
for installing CUDA
packages.