I’m using a brand-new computer with an NVIDIA GeForce RTX 5060 card. I’m not a gamer, but I wanted to try out some things with CUDA. I’ve been programming for a long time and I think I’m reasonably experienced with Linux, but I’m not a hardware or kernel expert. I was aware that installing drivers for NVIDIA cards is tricky on Linux, but everything seemed to work fine this weekend after I did this:
sudo zypper install nvidia-open-driver-G06-signed-kmp-default nvidia-userspace-meta-G06 kernel-firmware-nvidia-gsp-G06
However, today zypper wanted to install some updates:
The following 9 packages are going to be upgraded:
libnvidia-gpucomp nvidia-common-G06 nvidia-compute-G06 nvidia-compute-utils-G06 nvidia-gl-G06 nvidia-modprobe nvidia-persistenced nvidia-userspace-meta-G06
nvidia-video-G06
I already had a bad feeling when I saw this during the installation:
Job for nvidia-persistenced.service failed because the control process exited with error code.
See "systemctl status nvidia-persistenced.service" and "journalctl -xeu nvidia-persistenced.service" for details.
error: lua script failed: [string "%transfiletriggerin(systemd-257.7-6.1.x86_64)..."]:5: exit code
Error from %transfiletriggerin(systemd-257.7-6.1.x86_64)
And indeed, everything was broken after I rebooted, the display was back to some kind of VGA state. I had to roll back using snapper to make the graphics usable again. The relevant (I think) parts of the kernel messages are these:
Sep 08 13:07:22 frunobulax kernel: nvidia: loading out-of-tree module taints kernel.
Sep 08 13:07:22 frunobulax kernel: NVRM: loading NVIDIA UNIX Open Kernel Module for x86_64 580.76.05 Release Build (abuild@OBS) Thu Aug 14 17:10:25 UTC 2025
Sep 08 13:07:22 frunobulax kernel: nvidia 0000:01:00.0: Direct firmware load for nvidia/580.76.05/gsp_ga10x.bin failed with error -2
Sep 08 13:07:22 frunobulax kernel: NVRM: RmFetchGspRmImages: No firmware image found
Sep 08 13:07:22 frunobulax kernel: NVRM: GPU 0000:01:00.0: RmInitAdapter failed! (0x61:0x56:1914)
Sep 08 13:07:22 frunobulax kernel: NVRM: GPU 0000:01:00.0: rm_init_adapter failed, device minor number 0
Sep 08 13:07:22 frunobulax kernel: [drm:nv_drm_dev_load [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Failed to allocate NvKmsKapiDevice
Sep 08 13:07:22 frunobulax kernel: [drm:nv_drm_register_drm_device.cold [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Failed to load device
Sep 08 13:07:24 frunobulax kernel: NVRM: API mismatch: the client 'nvidia-powerd' (pid 1378)
NVRM: has the version 580.82.07, but this kernel module has
NVRM: the version 580.76.05. Please make sure that this
NVRM: kernel module and all NVIDIA driver components
NVRM: have the same version.
Sep 08 13:07:24 frunobulax kernel: NVRM: API mismatch: the client 'nvidia-persiste' (pid 1461)
NVRM: has the version 580.82.07, but this kernel module has
NVRM: the version 580.76.05. Please make sure that this
NVRM: kernel module and all NVIDIA driver components
NVRM: have the same version.
Sep 08 13:07:24 frunobulax kernel: NVRM: API mismatch: the client 'nvidia-persiste' (pid 1539)
NVRM: has the version 580.82.07, but this kernel module has
NVRM: the version 580.76.05. Please make sure that this
NVRM: kernel module and all NVIDIA driver components
NVRM: have the same version.
Sep 08 13:07:24 frunobulax kernel: NVRM: API mismatch: the client 'nvidia-persiste' (pid 1645)
NVRM: has the version 580.82.07, but this kernel module has
NVRM: the version 580.76.05. Please make sure that this
NVRM: kernel module and all NVIDIA driver components
NVRM: have the same version.
Sep 08 13:07:24 frunobulax kernel: nvme nvme0: using unchecked data buffer
Sep 08 13:07:24 frunobulax kernel: NVRM: API mismatch: the client 'nvidia-persiste' (pid 1674)
NVRM: has the version 580.82.07, but this kernel module has
NVRM: the version 580.76.05. Please make sure that this
NVRM: kernel module and all NVIDIA driver components
NVRM: have the same version.
Sep 08 13:07:24 frunobulax kernel: NVRM: API mismatch: the client 'nvidia-persiste' (pid 1678)
NVRM: has the version 580.82.07, but this kernel module has
NVRM: the version 580.76.05. Please make sure that this
NVRM: kernel module and all NVIDIA driver components
NVRM: have the same version.
Sep 08 13:07:31 frunobulax kernel: NVRM: API mismatch: the client 'Xorg.bin' (pid 2268)
NVRM: has the version 580.82.07, but this kernel module has
NVRM: the version 580.76.05. Please make sure that this
NVRM: kernel module and all NVIDIA driver components
NVRM: have the same version.
Sep 08 13:07:31 frunobulax kernel: NVRM: API mismatch: the client 'Xorg.bin' (pid 2268)
NVRM: has the version 580.82.07, but this kernel module has
NVRM: the version 580.76.05. Please make sure that this
NVRM: kernel module and all NVIDIA driver components
NVRM: have the same version.
My understanding is that there’s a version mismatch between some NVIDIA programs and the kernel module. Shouldn’t zypper prevent something like this? What can I do to fix it? How can I make sure this doesn’t happen again?
FWIW, here’s the output of zypper se -si nvidia:
S | Name | Type | Version | Arch | Repository
---+-------------------------------------------+---------+-------------------------+--------+----------------------
i | kernel-firmware-nvidia | package | 20250516-4.1 | noarch | Main Repository (OSS)
i | kernel-firmware-nvidia | package | 20250516-4.1 | noarch | repo-oss
i+ | kernel-firmware-nvidia-gsp-G06 | package | 535.86.05-3.5 | x86_64 | Main Repository (OSS)
i+ | kernel-firmware-nvidia-gsp-G06 | package | 535.86.05-3.5 | x86_64 | repo-oss
i | libnvidia-egl-gbm1 | package | 1.1.2-7.14 | x86_64 | repo-non-free
i | libnvidia-egl-wayland1 | package | 1.1.20-51.1 | x86_64 | repo-non-free
i | libnvidia-egl-x111 | package | 1.0.3-21.1 | x86_64 | repo-non-free
i | libnvidia-gpucomp | package | 580.76.05-39.1 | x86_64 | repo-non-free
i | nvidia-common-G06 | package | 580.76.05-39.1 | x86_64 | repo-non-free
i | nvidia-compute-G06 | package | 580.76.05-39.1 | x86_64 | repo-non-free
i | nvidia-compute-utils-G06 | package | 580.76.05-39.1 | x86_64 | repo-non-free
i | nvidia-gl-G06 | package | 580.76.05-39.1 | x86_64 | repo-non-free
i | nvidia-modprobe | package | 580.76.05-17.1 | x86_64 | repo-non-free
i+ | nvidia-open-driver-G06-signed-kmp-default | package | 580.76.05_k6.16.3_1-2.4 | x86_64 | Main Repository (OSS)
i+ | nvidia-open-driver-G06-signed-kmp-default | package | 580.76.05_k6.16.3_1-2.4 | x86_64 | repo-oss
i | nvidia-persistenced | package | 580.76.05-2.1 | x86_64 | repo-non-free
i+ | nvidia-userspace-meta-G06 | package | 580.76.05-11.1 | noarch | repo-non-free
i+ | nvidia-userspace-meta-G06 | package | 580.76.05-11.1 | noarch | repo-non-free
i | nvidia-video-G06 | package | 580.76.05-39.1 | x86_64 | repo-non-free
i | openSUSE-repos-MicroOS-NVIDIA | package | 20250728.9adc675-1.1 | x86_64 | Main Repository (OSS)
i | openSUSE-repos-MicroOS-NVIDIA | package | 20250728.9adc675-1.1 | x86_64 | repo-oss