NVIDIA metapackage does not force driver component version sync

Hello everyone,

I have been running nvidia-open-G07-595.80 gfx drivers, set up according to the blog post by Stefan. Today I updated via zypper up which proceeded to upgrade all NVIDIA driver libraries from 595.80 to 595.84 except the metapackage.

As it turns out, the 595.84 metapackage is absent from the TW repo, but present in e.g. the Leap 16.0 repo, and so I submitted a bug report accordingly. But intuitively, the update should not have been possible in the first place?

Based on my current understanding, the metapackage should have prevented upgrades from 595.80 to 595.84 until it could itself upgrade to the corresponding version. Is that true? Or is it relying on the assumption that the metapackage is present when the new driver version is released (basically that the arrows in this diagram really are one-directional)?

To avoid further falling out of sync and eventual problems, is there a better way than locking *nvidia* and periodically checking if a new version of every library is present in the appropriate repos? Or am I completely confused and it’s something with my config that causes this weirdness?

Relevant system info:

inxi -Ga

Graphics:
  Device-1: Intel Raptor Lake-P [Iris Xe Graphics] vendor: Lenovo driver: i915
    v: kernel alternate: xe arch: Xe process: Intel 7 (10nm) built: 2022+ ports:
    active: eDP-1 empty: DP-1, DP-2, DP-3, DP-4, DP-5, HDMI-A-1
    bus-ID: 00:02.0 chip-ID: 8086:a7a0 class-ID: 0300
  Device-2: NVIDIA GA107GLM [RTX A500 Laptop GPU] vendor: Lenovo
    driver: nvidia v: 595.84 alternate: nouveau,nvidia_drm non-free: 550-6xx.xx+
    status: current (as of 2026-07) arch: Ampere code: GAxxx
    process: TSMC n7 (7nm) built: 2020-2023 pcie: gen: 4 speed: 16 GT/s
    lanes: 8 link-max: lanes: 16 bus-ID: 01:00.0 chip-ID: 10de:25bd
    class-ID: 0302
zypper repos

Repository priorities are without effect. All enabled repositories share the same priority.

#  | Alias                                | Name                                 | Enabled | GPG Check | Refresh
---+--------------------------------------+--------------------------------------+---------+-----------+--------
 1 | NVIDIA:repo-non-free                 | repo-non-free                        | No      | ----      | ----
 2 | cuda                                 | cuda                                 | No      | ----      | ----
 3 | gitlab.com_paulcarroty_vscodium_repo | gitlab.com_paulcarroty_vscodium_repo | Yes     | (r ) Yes  | No
 4 | home_getchoo                         | home:getchoo (openSUSE_Tumbleweed)   | Yes     | (r ) Yes  | No
 5 | nvidia                               | nvidia                               | Yes     | (r ) Yes  | No
 6 | openSUSE:repo-non-oss                | repo-non-oss                         | Yes     | (r ) Yes  | Yes
 7 | openSUSE:repo-openh264               | repo-openh264                        | Yes     | (r ) Yes  | Yes
 8 | openSUSE:repo-oss                    | repo-oss                             | Yes     | (r ) Yes  | Yes
 9 | openSUSE:repo-oss-debug              | repo-oss-debug                       | No      | ----      | ----
10 | openSUSE:repo-oss-source             | repo-oss-source                      | No      | ----      | ----
11 | openSUSE:update-tumbleweed           | update-tumbleweed                    | Yes     | (r ) Yes  | Yes
12 | vivaldi                              | vivaldi                              | Yes     | (r ) Yes  | Yes

zypper se -si nvidia

S  | Name                                      | Type    | Version              | Arch   | Repository
---+-------------------------------------------+---------+----------------------+--------+-----------
i+ | kernel-firmware-nvidia                    | package | 20260610-2.1         | noarch | repo-oss
i  | libnvidia-cfg                             | package | 595.84-8.1           | x86_64 | nvidia
i  | libnvidia-egl-gbm1                        | package | 1.1.3-11.6           | x86_64 | nvidia
il | libnvidia-egl-gbm1-32bit                  | package | 1.1.3-11.3           | x86_64 | nvidia
i  | libnvidia-egl-wayland1                    | package | 1.1.22-57.8          | x86_64 | nvidia
il | libnvidia-egl-wayland1-32bit              | package | 1.1.22-57.4          | x86_64 | nvidia
i  | libnvidia-egl-x111                        | package | 1.0.5-26.6           | x86_64 | nvidia
il | libnvidia-egl-x111-32bit                  | package | 1.0.5-26.3           | x86_64 | nvidia
i  | libnvidia-gpucomp                         | package | 595.84-8.1           | x86_64 | nvidia
il | libnvidia-gpucomp-32bit                   | package | 595.84-8.1           | x86_64 | nvidia
i  | libnvidia-ml                              | package | 595.84-8.1           | x86_64 | nvidia
il | libnvidia-ml-32bit                        | package | 595.84-8.1           | x86_64 | nvidia
i  | nvidia-common-G07                         | package | 595.84-8.1           | x86_64 | nvidia
i  | nvidia-compute-G07                        | package | 595.84-8.1           | x86_64 | nvidia
il | nvidia-compute-G07-32bit                  | package | 595.84-8.1           | x86_64 | nvidia
i  | nvidia-compute-utils-G07                  | package | 595.84-8.1           | x86_64 | nvidia
i  | nvidia-gl-G07                             | package | 595.84-8.1           | x86_64 | nvidia
il | nvidia-gl-G07-32bit                       | package | 595.84-8.1           | x86_64 | nvidia
i  | nvidia-libXNVCtrl                         | package | 595.84-2.1           | x86_64 | nvidia
i  | nvidia-modprobe                           | package | 595.84-2.1           | x86_64 | nvidia
i  | nvidia-open-driver-G07-signed-kmp-default | package | 595.84_k7.1.8_1-2.6  | x86_64 | repo-oss
i+ | nvidia-open-driver-G07-signed-kmp-meta    | package | 595.80-29.1          | x86_64 | nvidia
i  | nvidia-persistenced                       | package | 595.84-2.1           | x86_64 | nvidia
i  | nvidia-userspace-meta-G07                 | package | 595.84-26.1          | x86_64 | nvidia
i  | nvidia-video-G07                          | package | 595.84-8.1           | x86_64 | nvidia
il | nvidia-video-G07-32bit                    | package | 595.84-8.1           | x86_64 | nvidia
i  | openSUSE-repos-Tumbleweed-NVIDIA          | package | 20260423.1a6a0f3-2.2 | x86_64 | repo-oss

zypper ll

#  | Name                                   | Type    | Repository | Comment
---+----------------------------------------+---------+------------+--------
1  | *32bit                                 | package | (any)      | 
2  | *yast*                                 | package | (any)      | 
3  | budgie_applets                         | pattern | (any)      | 
4  | cinnamon                               | pattern | (any)      | 
5  | games                                  | pattern | (any)      | 
6  | gnome                                  | pattern | (any)      | 
7  | gnome_basic                            | pattern | (any)      | 
8  | kde_pim                                | pattern | (any)      | 
9  | libyui*                                | package | (any)      | 
10 | nvidia-driver-G06-kmp-default          | package | (any)      | 
11 | nvidia-gfxG05-kmp-default              | package | (any)      | 
12 | nvidia-open-driver-G06-signed-kmp-meta | package | (any)      | 
13 | nvidia-open-driver-G07                 | package | (any)      | 
14 | openSUSEway                            | pattern | (any)      | 
15 | xfce                                   | pattern | (any)      | 
16 | xfce_extra                             | pattern | (any)      | 
17 | xfce_extra_wayland                     | pattern | (any)      | 
18 | xfce_wayland                           | pattern | (any)      | 

It was already explained quite often, that the meta package version number does not really matter. The meta package provides only a list of correct driver packages to get installed. You could uninstall the meta package and would see that your drivers are still correctly installed and working. You can also install the driver packages without the meta package.

There is zero need to lock any package. The drivers are working correctly as you can see at your inxi output and also on nvidia-smi.

On Tumbleweed you need to use zypper dup. zypper up is for Leap.

Btw, you should enable auto-refresh on repo number 5.

@lwesolowski What is your Nvidia GPU? If you can use the open driver, then I would suggest the cuda repository and the dkms service…

zypper se -si nvidia dkms
Loading repository data...
Reading installed packages...

S  | Name                     | Type    | Version      | Arch   | Repository
---+--------------------------+---------+--------------+--------+-----------
i  | dkms                     | package | 3.4.1-1      | noarch | cuda
i  | dkms-bash-completion     | package | 3.4.1-1      | noarch | cuda
i  | kernel-firmware-nvidia   | package | 20260610-2.1 | noarch | repo-oss
i+ | libnvidia-egl-gbm1       | package | 1.1.3-1.5    | x86_64 | repo-oss
i+ | libnvidia-egl-wayland1   | package | 1.1.22-1.6   | x86_64 | repo-oss
i  | libnvidia-egl-wayland21  | package | 1.0.1-6      | x86_64 | cuda
i+ | libnvidia-egl-x111       | package | 1.0.5-2.5    | x86_64 | repo-oss
i+ | nvidia-common-G07        | package | 610.43.02-1  | x86_64 | cuda
i+ | nvidia-compute-G07       | package | 610.43.02-1  | x86_64 | cuda
i+ | nvidia-compute-utils-G07 | package | 610.43.02-1  | x86_64 | cuda
i+ | nvidia-gl-G07            | package | 610.43.02-1  | x86_64 | cuda
i+ | nvidia-modprobe          | package | 610.43.02-1  | x86_64 | cuda
i+ | nvidia-open-driver-G07   | package | 610.43.02-1  | noarch | cuda
i+ | nvidia-persistenced      | package | 610.43.02-1  | x86_64 | cuda
i+ | nvidia-video-G07         | package | 610.43.02-1  | x86_64 | cuda

I understand that the version number of the meta package itself does not need to match the driver version, and that removing the meta package does not remove the already installed driver packages.

My concern is slightly different. nvidia-common-G07-595.84 has this conditional requirement:

(nvidia-open-driver-G07-signed-kmp = 595.84 if nvidia-open-driver-G07-signed-kmp-meta)

So as long as the meta package is installed, zypper enforces that the kernel module matches the 595.84 userspace driver. If I remove the meta package, that condition no longer applies, and zypper can potentially upgrade the KMP to 595.91.07 while the userspace packages remain at 595.84.

So my question is: is it actually considered safe/supported to run different versions of the NVIDIA kernel module and userspace components, or is removing the meta package merely bypassing the dependency check that is currently preventing such a mismatch?

1 Like

If the userspace driver version and kernel module (kmp) version do not match, you won‘t have working drivers and the graphics is not properly working. Userspace and kmp need to match.

The meta package keeps userspace driver and kernel module in sync to prevent driver missmatches. This can mean that you will stay on a lower version number until all update candidates are in sync. So the safe way is to use the meta package. Without meta package you need to use locks and stuff…and you need to know how to resolve conflicts and non working graphics.

it seems waiting on the updates from NVIDIA non-free is the only sane solution now? breaking the meta package would require I fix that afterwards, meanwhile I don’t see if there will be an imminent fix on the broken dep requirement:

the installed nvidia-common-G07-595.84-8.1.x86_64 requires '(nvidia-open-driver-G07-signed-kmp = 595.84 if nvidia-open-driver-G07-signed-kmp-meta)'

@hui Okay I see, thanks! And sorry for the confusion, I did not find that info before. (also good catch with the auto-refresh, fixed)

@malcolmlewis It’s an RTX A500. Drivers from the cuda repo worked fine, but I need the 32-bit libraries as well (for the direct-install Steam client), and those are neither in the cuda nor in the repo-oss repo. I figured using the gfx repo is a simpler solution.

@cynthialin I was also seeing the issue with conditional requirements you described. New packages arrived today, and an update to 595.91 without any conditional requirements being violated is now possible.

1 Like

What I did that worked:

I removed the 595.84 nvidia-open-driver-G07-signed-kmp-meta package, then rebooted.

After that, the Nvidia suite updated, including a new 595.99 version of the nvidia-open-driver-G07-signed-kmp-meta pacakge.

If you don’t want to run the steam flatpak, then by far the run file and enable the dkms option is probably the best way to go.

If taking that route, then create a copy of the rpm nvidia.conf file for you to use as well. The run file accepts options to do all sorts of configuration as well…

Current driver in use here is 615.71.09 but from the cuda repo…

I use Steam via Distrobox on my gentoo partition to avoid multilib on my main system, you can also install the runfile inside a Distrobox container if you’re really feeling like messing around with things :grinning: