Black screen on Nvidia after updating to 20260428

No problem here:

~ 08:29 $ inxi -Gsaz
Graphics:
  Device-1: Intel Raptor Lake-S UHD Graphics vendor: Dell driver: i915
    v: kernel alternate: xe arch: Xe process: Intel 10nm built: 2020-21 ports:
    active: eDP-1 empty: DP-1, DP-2, DP-3, HDMI-A-1 bus-ID: 0000:00:02.0
    chip-ID: 8086:a788 class-ID: 0300
  Device-2: NVIDIA AD107GLM [RTX 1000 Ada Generation Laptop GPU]
    vendor: Dell driver: nvidia v: 595.71.05 alternate: nouveau,nvidia_drm
    non-free: 550-580.xx+ status: current (as of 2025-11) arch: Lovelace
    code: AD1xx process: TSMC n4 (5nm) built: 2022+ ports: active: none
    empty: DP-4,DP-5,HDMI-A-2 bus-ID: 0000:01:00.0 chip-ID: 10de:28b9
    class-ID: 0300
  Device-3: Microdia Integrated_Webcam_FHD driver: uvcvideo type: USB
    rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-3:2 chip-ID: 0c45:6a25
    class-ID: fe01 serial: <filter>
  Display: wayland server: X.org v: 1.21.1.21 with: Xwayland v: 24.1.11
    compositor: kwin_wayland driver: X: loaded: modesetting,nvidia
    unloaded: vesa alternate: fbdev,intel,nouveau,nv dri: iris gpu: i915
    display-ID: 0
  Monitor-1: eDP-1 model: Samsung 0x4164 built: 2021 res: mode: 3840x2400
    hz: 60 scale: 150% (1.5) to: 2560x1600 dpi: 284 gamma: 1.2
    size: 344x215mm (13.54x8.46") diag: 406mm (16") ratio: 16:10
    modes: 3840x2400
  API: EGL v: 1.5 hw: drv: intel iris drv: nvidia platforms: device: 0
    drv: nvidia device: 1 drv: nvidia-drm device: 2 drv: iris device: 3
    drv: swrast gbm: drv: nvidia surfaceless: drv: nvidia wayland: drv: iris
    x11: drv: iris
  API: OpenGL v: 4.6.0 compat-v: 4.6 vendor: intel mesa v: 26.1.0 glx-v: 1.4
    direct-render: yes renderer: Mesa Intel Graphics (RPL-S)
    device-ID: 8086:a788 memory: 61.01 GiB unified: yes display-ID: :0.0
  API: Vulkan v: 1.4.341 layers: 3 device: 0 type: integrated-gpu
    name: Intel Graphics (RPL-S) driver: mesa intel v: 26.1.0
    device-ID: 8086:a788 surfaces: N/A device: 1 type: discrete-gpu
    name: NVIDIA RTX 1000 Ada Generation Laptop GPU driver: nvidia
    v: 595.71.05 device-ID: 10de:28b9 surfaces: N/A device: 2 type: cpu
    name: llvmpipe (LLVM 22.1.4 256 bits) driver: mesa llvmpipe
    v: 26.1.0 (LLVM 22.1.4) device-ID: 10005:0000 surfaces: N/A
  Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
    de: kscreen-console,kscreen-doctor gpu: nvidia-smi wl: wayland-info
    x11: xdpyinfo, xprop, xrandr
Sensors:
  System Temperatures: cpu: 42.0 C mobo: 47.0 C sodimm: 31.0 C
  Fan Speeds (rpm): cpu: 0 fan-2: 0
~ 08:32 $ zypper se -si nvidia
Loading repository data...
Reading installed packages...

S  | Name                                      | Type    | Version                | Arch   | Repository
---+-------------------------------------------+---------+------------------------+--------+--------------
i  | kernel-firmware-nvidia                    | package | 20260408-1.1           | noarch | repo-oss
i  | libnvidia-cfg                             | package | 595.71.05-13.1         | x86_64 | repo-non-free
i  | libnvidia-egl-gbm1                        | package | 1.1.3-150700.1.1       | x86_64 | cuda
i  | libnvidia-egl-wayland1                    | package | 1.1.22-57.4            | x86_64 | repo-non-free
i  | libnvidia-egl-x111                        | package | 1.0.5-150700.1.1       | x86_64 | cuda
i  | libnvidia-gpucomp                         | package | 595.71.05-13.1         | x86_64 | repo-non-free
i  | libnvidia-ml                              | package | 595.71.05-13.1         | x86_64 | repo-non-free
i  | nvidia-common-G07                         | package | 595.71.05-13.1         | x86_64 | repo-non-free
i  | nvidia-compute-G07                        | package | 595.71.05-13.1         | x86_64 | repo-non-free
i  | nvidia-compute-utils-G07                  | package | 595.71.05-13.1         | x86_64 | repo-non-free
i  | nvidia-gl-G07                             | package | 595.71.05-13.1         | x86_64 | repo-non-free
i  | nvidia-libXNVCtrl                         | package | 595.71.05-2.4          | x86_64 | repo-non-free
i  | nvidia-modprobe                           | package | 595.71.05-2.2          | x86_64 | repo-non-free
i  | nvidia-open-driver-G07-signed-kmp-default | package | 595.71.05_k7.0.5_1-2.3 | x86_64 | repo-oss
i+ | nvidia-open-driver-G07-signed-kmp-meta    | package | 595.71.05-16.1         | x86_64 | repo-non-free
i  | nvidia-persistenced                       | package | 595.71.05-2.2          | x86_64 | repo-non-free
i  | nvidia-userspace-meta-G07                 | package | 595.71.05-16.1         | x86_64 | repo-non-free
i  | nvidia-video-G07                          | package | 595.71.05-13.1         | x86_64 | repo-non-free
i+ | openSUSE-repos-Tumbleweed-NVIDIA          | package | 20260423.1a6a0f3-2.1   | x86_64 | repo-oss
~ 08:37 $ 

G07 with kernel 7 work flawlessly (also works in other Dell precision with a Quadro gpu and G06, nvidia drivers).

~ 08:37 $ inxi -S
System:
  Host: kern Kernel: 7.0.5-1-default arch: x86_64 bits: 64
  Desktop: KDE Plasma v: 6.6.4 Distro: openSUSE Tumbleweed 20260510

hey, i used to have the same problems.

i used what i learned from this forum and checked my zypper lr -d and zypper se -si nvidia kernel-default output with ai, because it didnt quite match what i saw here and in this blogpost about how to install nvidia drivers that was already posted here: https://sndirsch.github.io/nvidia/2025/07/16/nvidia-drivers.html.

turned out, i had some duplicate repos and G06 all proprietary drivers, although G07 open kernel (and rest proprietary) is apparently the recommended way now.

i deleted the duplicate repos, migrated over to the correct G07 drivers and now everythings fine.

i remember having problems with nvidia drivers in the past. maybe i fumbled a bit too much and broke something then that only now appeared at the surface…maybe i shouldve installed the open kernel driver from the start but i have to admit i am still confused about the terminology…like yeah, i want performance, so i should install proprietary drivers but i need the open kernel driver but theres a cuda repo but when i list my nvidia drivers with zypper i see repo-non-free and repo-oss drivers and then someone writes you shouldnt mix them but its fine if its kernel-default-devel and on and on and i felt i understood less and less, the more i read about it :sweat_smile:

anyway, thanks everyone and especially @Lioli7k , i hope my system will stay stable until i get myself an amd card in a few years :sweat_smile:

1 Like

On my Slowroll machine, I have an NVidia RTX 4060 with the latest kernel-longterm, X11 and grub2-efi, and just yesterday I migrated from the nvidia-open-signed G07 drivers 595.48 (?) to 595.71. Everything works fine, including 3D games.

Before you rush and buy a new graphics card, you might want to try that combination of kernel-longterm and the latest consistent 595.71 drivers.

Some progress: https://bugzilla.suse.com/show_bug.cgi?id=1263825#c89

Seems works fine with nvidia_drm.modeset=0 kernel option set on X11.

P.S. Nope! After several minutes of work got black screen with artefacts. So back to nvidia_drm.modeset=1 and longterm kernel.

Tried kernel 7.0.5 and nvidia open G07 again. Didn’t worked. Black screen.
shifted to Kernel Longterm, and installed nvidia open G07 longterm. Working fine.

Hiya. Nvidia situation on Linux is complicated. Generally Nvidia driver consists of two parts:

  • User space tools and libraries (OpenGL, Vulkan and other libraies as well as configuration tools like Nvidia settings and nvidia-smi.)
  • Kernel modules (driver that talks to Nvidia GPU on hardware level.)

Each of those parts have a few options. They come either from Nvidia or from various open source projects.

User space tools have two options:

  • Nvidia (Proprietary. Meant to be used with one of Nvidia provided kernel modules flavor.)
  • Mesa (Open source. Used with Nouveau. Later on could be used with Nova.)

Kernel modules have four options:

  • Proprietary Nvidia (Historically used to be the default. Available for all Nvidia GPUs until RTX 50 series. RTX 50 series and newer are supported only by Nvidia open kernel modules.)
  • Nvidia open kernel modules (Open source friendly rewrite of older proprietary modules. Current default and should be preferred if available for your GPU. GTX 700 series or newer.)
  • Nouveau (Reverse engineered Nvidia driver by open source community. Available out of the box on all Linux distributions.)
  • Nova (Still in development. Nouveau successor for GTX 16/RTX 20 series and newer.)

It’s simplified but I hope it explains landscape well enough. In the current moment it’s better to stick to proprietary Nvidia driver with Nvidia open kernel modules.

5 Likes

Well set out and explained

I’ve said it in the bugzilla but gonna post it here in more detail as well.

Out of curiosity I’ve checked change history of kernel-source at the Factory (here). There was an interesting change that wasn’t mentioned in the change logs when 7.0.1 was introduced. CONFIG_PREEMPT=y was set for kernel-default on x86_64 and some other architectures.

You can read online what preemption in Linux kernel is but here’s short version of it for the context. It allows kernel to interrupt a currently running task (even kernel code) and do something else. It is meant to reduce system latency.

Before that config option was set kernel (6.18.x and 6.19.x) was working in voluntary preemption mode. Meaning it could interrupt only at explicit points. After the change kernel (7.0.x) started working in full preemption mode by default. Meaning it could interrupt pretty much anywhere it wants, unless explicitly said otherwise.

This change conveniently became available in 20260428. Right where problems started. You could say that SUSE sets CONFIG_PREEMPT_DYNAMIC, so it can be easily switched back by adding preempt=voluntary kernel parameter in a bootloader config. But here’s the thing: SUSE also sets CONFIG_ARCH_HAS_PREEMPT_LAZY. And since commit 7dadeaa6e851e7d67733f3e24fc53ee107781d0f (also conveniently) introduced in upstream kernel 7.0, none and voluntary preemption modes are disabled when CONFIG_ARCH_HAS_PREEMPT_LAZY is set.

This might be the root of the problem. But because of this comedic timing, the only way for me to verify it is by compiling a custom kernel. If I have spent two weeks chasing after a single line of code change… I’m gonna yell at the cloudsā„¢ ( Ā© NVIDIA. All rights reserved).

5 Likes

Just another voice along with the others - My Lenovo P15 Gen2 with NVIDIA TU117GLM (T1200 Laptop GPU) stopped working with ā€œblack screen syndromeā€ following the kernel 7.0.1 change.
Updating through 7.0.5 continued issues.

Neither G06 nor G07 solved it.

I have reverted to kernel-longterm-6.18.28-1.1 with the nvidia-open-driver-G07-signed-kmp-longterm version 595.71.05 packages. All is working as expected.

Looking forward to a better solution.

1 Like

Hiya. I’m working on it. Keep an eye on this thread once in a while. I’ll be posting my findings here as well as upcoming fixes and their timelines.

1 Like

Before going to all that trouble … Just FYI … default kernel

windeath:/home/dart # zcat /proc/config.gz | grep -E 'CONFIG_PREEMPT'
CONFIG_PREEMPT_BUILD=y
CONFIG_PREEMPT=y
# CONFIG_PREEMPT_LAZY is not set
# CONFIG_PREEMPT_RT is not set
CONFIG_PREEMPT_COUNT=y
CONFIG_PREEMPTION=y
CONFIG_PREEMPT_DYNAMIC=y
CONFIG_PREEMPT_RCU=y
CONFIG_PREEMPT_NOTIFIERS=y
# CONFIG_PREEMPT_TRACER is not set
CONFIG_PREEMPTIRQ_DELAY_TEST=m

windeath:/home/dart # cat /proc/version
Linux version 7.0.5-1-default (geeko@buildhost) (gcc (SUSE Linux) 15.2.1 20260202, GNU ld (GNU Binutils; openSUSE Tumbleweed) 2.45.0.20251103-3) #1 SMP PREEMPT_DYNAMIC Fri May  8 09:22:21 UTC 2026 (77ae3c4)

grep -i preempt /usr/lib/modules/7.0.5-1-default/config

CONFIG_PREEMPT_BUILD=y
CONFIG_ARCH_HAS_PREEMPT_LAZY=y
CONFIG_PREEMPT=y
# CONFIG_PREEMPT_LAZY is not set
# CONFIG_PREEMPT_RT is not set
CONFIG_PREEMPT_COUNT=y
CONFIG_PREEMPTION=y
CONFIG_PREEMPT_DYNAMIC=y
CONFIG_PREEMPT_RCU=y
CONFIG_HAVE_PREEMPT_DYNAMIC=y
CONFIG_HAVE_PREEMPT_DYNAMIC_CALL=y
CONFIG_PREEMPT_NOTIFIERS=y
CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
CONFIG_DRM_I915_PREEMPT_TIMEOUT_COMPUTE=7500
CONFIG_DRM_XE_PREEMPT_TIMEOUT=640000
CONFIG_DRM_XE_PREEMPT_TIMEOUT_MAX=10000000
CONFIG_DRM_XE_PREEMPT_TIMEOUT_MIN=1
# CONFIG_DEBUG_PREEMPT is not set
# CONFIG_PREEMPT_TRACER is not set
CONFIG_PREEMPTIRQ_DELAY_TEST=m

CONFIG_PREEMPT and CONFIG_ARCH_HAS_PREEMPT_LAZY are set and that hasn’t changed in upcoming 7.0.6.

Ok I stand corrected

i think i might have been a bit unclear: i have a stable running system at the moment. everything is good, i dont get error messages, i can reboot, sleep, shut down, 3d acceleration works, no artifacts, no weird display issues, resolution changes, all is good.

its just that i had 2 major problems (one was a few months ago and now this one) related to my graphics card, which cost me a lot of time debugging and at this point i expect this to continue to happen in irregular intervals. i am very happy snapper is there for the rescue but id rather not be in a situation to need it.

I have been daily driving tumbleweed for more than 2 years in a row now. It is quite stable (unless I do something stupid). Normally I get broken updates only once every few months. Aaaaand most of the time it’s Nvidia thing. At the very least it got a lot better over the years. Night and day difference compared to what it used to be on Leap 42.2 back in 2017. And it will be getting better now that Nvidia is actually trying to do something about it. Maybe once Nova + NVK will be the default it won’t be so annoying to deal with.

2 Likes

I’ve been running a Quadro T400, P400, RTX4000 and a Tesla P4 over the last few years, but I’ve only recently switched to the rpms, neither have given me any grief… Some have been used as just offload, the P4 is compute only. But the T400 (Leap) and RTX 4000 as primary GPU’s for over six months… My first experience with Nvidia was in 2005 on S.uS.E 9.2/9.3 :wink:

2 Likes

so, you are like john wick of nvidia drivers :grinning: slicing thru all those updates.

I am on tumbleweed for 4 months. Had initial troubles with Nvidia driver packages mismatch. Found a way thanks to advice on this forum. Going smooth, and then this new problem hits. Hope that this is a kernel 7.0 issue, and once this sorted out, it will be fine atleast till kernel 8.0

Typing from my 6.18.28 kernel.

1 Like

By creating a systemd service to run nvidia-smi --gpu-reset @ Lioli7k I get a usable display eventually. This is just a workaround and it’s not pretty but it does seem to work and allows me to use the 7.0.5 kernel with the 595.71.05 Nvidia driver.

1 Like

scratch that, i just had a series of lucky startups…im having small glitches with error messages again, starting into a tty, black screens etc.