Help testing Nvidia drivers with Kernel 6.12

With every new Kernel there might be the need of adjustments for Nvidia drivers. One recent issue reported was this: 6.12: drm_open_helper RIP · Issue #712 · NVIDIA/open-gpu-kernel-modules · GitHub

Nvidia provided a patch and shipped it in their 550.135 driver. More information here: Patch for 565.57.01 + Linux kernel 6.12 - Linux - NVIDIA Developer Forums.

We also patched 470xx and 390xx driver series as needed. We currently matched also the patches provided by AUR: 390xx, 470xx

390xx got its last update by end of 2022, and we managed to keep it alive with kernel patches. If you have a legacy gpu you may consider to use the FOSS nouveau driver or exchange the GPU for a newer hardware.

With the latest patches provided you also need to enable modesetting for 470xx and 370xx drivers. We have enabled that for you by default now.

  • 550 driver works
  • 550 driver doesn’t work
0 voters
  • 470xx driver works
  • 470xx driver doesn’t work
0 voters
  • 390xx driver works
  • 390xx driver doesn’t work
0 voters

Those who still face issues with current provided drivers, may politely voice-up at the Nvidia developer forums in a civil manner and report their issue there: »»»»»»»»»» If you have a problem, PLEASE read this first «««««««««« - Linux - NVIDIA Developer Forums

1 Like

My machine is humming along nicely with the new kernel. Thanks for the support!

Not sure if my Problem was with the Kernel 6.12 or the Nvidia 550 Driver, All seemed to work okay until i loaded up steam and tried to play a (Proton) Game, My Performance was all over the place and the Game had Micro Stuttering, 2 Second Freeze’s, before 6.12 the Game (RipOut) run at my monitor V-Sync (100mhz) 100fps with very rare drops to 89fps, and no Micro Stuttering or Freezing.

Went back to Kernel 6.11 and the Game is running normal again.
So i don’t know which to blame, Kernel or Nvidia?

Intel I7 6700, 32GB Ram, Nvidia RTX 4060 8GB, X-Server not Wayland.

Works, except that upgrading to kernel 6.12 / driver 550.x broke sleep/suspend and hibernation for me, which I was able to fix by patching the hook /usr/lib/systemd/system-sleep/nvidia (which is installed by nvidia-utils).

@fonic how did you patch it and does it still work with older kernels when the patch got applied?

This is a bit of a longer story, I’ll try my best to keep it short:

Whenever the system goes to sleep/hibernation and wakes up, NVIDIA hooks those events using /usr/lib/systemd/system-sleep/nvidia and directs them to their script /usr/bin/nvidia-sleep.sh.

When entering sleep/hibernation, the script is called with argument suspend. It will then switch to a certain virtual terminal and issue a suspend request to the driver.

When waking up, the script is called with argument resume. It will then issue a resume request to the driver and switch back to the virtual terminal that was active before entering sleep/hibernation (i.e. usually the vt running X11/Wayland).

Now, on my system, I noticed that said script never gets called when entering sleep/hibernation. Services /usr/lib/systemd/system/nvidia-*.service should do that, but they don’t on my system. I’m not overly familiar with systemd, maybe those services just need some additional configuration?

Anyway, to quickly fix this, I simply patched the hook to perform both operations:

#!/bin/sh
case "$1" in
    pre)
        /usr/bin/nvidia-sleep.sh "suspend"
        ;;
    post)
        /usr/bin/nvidia-sleep.sh "resume"
        ;;
esac

Did you enable those services on your end? systemctl enable --now nvidia-*.service

No, I didn’t, at least not manually. All those services are disabled on my system (see output below).

Should all of these be enabled? There are no instructions regarding those services in the Wiki (unless I missed something). And if those are meant to be enabled, why aren’t they by default when NVIDIA drivers/packages are installed?

systemctl output:

○ nvidia-hibernate.service - NVIDIA system hibernate actions
     Loaded: loaded (/usr/lib/systemd/system/nvidia-hibernate.service; disabled; preset: disabled)
     Active: inactive (dead)
○ nvidia-persistenced.service - NVIDIA Persistence Daemon
     Loaded: loaded (/usr/lib/systemd/system/nvidia-persistenced.service; disabled; preset: disabled)
     Active: inactive (dead)
○ nvidia-powerd.service - nvidia-powerd service
     Loaded: loaded (/usr/lib/systemd/system/nvidia-powerd.service; disabled; preset: disabled)
     Active: inactive (dead)
○ nvidia-resume.service - NVIDIA system resume actions
     Loaded: loaded (/usr/lib/systemd/system/nvidia-resume.service; disabled; preset: disabled)
     Active: inactive (dead)
○ nvidia-suspend.service - NVIDIA system suspend actions
     Loaded: loaded (/usr/lib/systemd/system/nvidia-suspend.service; disabled; preset: disabled)
     Active: inactive (dead)

Archlinux tend not to enable service files for users. This however changed lately: nvidia-utils: Enable nvidia services as default in .install (53d67eb1) · Commits · Arch Linux / Packaging / Packages / nvidia-utils · GitLab. @Yochanan it would make sense to adopt those 565 changes also for 550 driver series …

KDE, wayland and nvidia here. Sleep and resume is working fine. Hibernate not tested as I don’t use it. No integrated graphics on my setup - only discrete graphics. Plasma looks, runs and feels considerably better on wayland than on X11. Thanks Manjaro for the great work.

That would help, as would adding corresponding information to the Wiki.

Is there some sort of per-package information system implemented in pamac and/or pacman? As a former Gentoo user, I was used to be advised by the package manager when additional manual steps were required (like enabling a service or reviewing configuration options), and I always thought that was a quite elegant solution.

It is mostly only needed to enable the services when wayland is used. So did youbtest with services enabled?

# Enable NVIDIA Services at first installation
# The services are mandatory, see under systemd configuration
# https://download.nvidia.com/XFree86/Linux-x86_64/560.35.03/README/powermanagement.html#SystemdConfigur74e29
# This is also an requirement to have sleep working together with PreserveAllocations
# https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/commit/55644f78820fd382fbdf283b1fd7f08e6b7c22d7
# https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/merge_requests/16
systemctl enable nvidia-resume nvidia-hibernate nvidia-suspend

Sorry, but a big NO to that. I’m on X11, and reinstating the /usr/bin/nvidia-sleep.sh suspend call fixed sleep/hibernation, so this is certainly NOT only required for Wayland, but for X11 as well.

Not yet.

You can test it with sudo pacman -U https://mirror.easyname.at/manjaro/pool/overlay/nvidia-utils-550.135-2-x86_64.pkg.tar.zst which enables it now by default.

After Lock and unlock the screen, my KDE desktop turn into black.

app drawer, app switching works fine.

Looks like the black area is translucent(or white?) in the screenshot.

(It’s black when clicking it in the forum, but white when open image link in new tab.)

I’m getting back to 6.11, got short time to test.

That is more a Plasma 6.2 issue than having anything to do with the Nvidia drivers. You can try the Wayland session if that works better for you. See also this bug report: 483163 – Sometimes on X11 with compositing turned on, black lock screen when using Breeze Plasma style, but controls are all there and remain interactive

1 Like

Works with the services enabled, BUT that package still contains hook /usr/lib/systemd/system-sleep/nvidia with an active post handler, resulting in two calls of /usr/bin/nvidia-sleep.sh resume when waking the system. Should not be a big issue though, purely cosmetic as the second call won’t actually do anything (see resume handler in nvidia-sleep.sh).

In other words: that hook should be removed when the services are used/enabled.

I added some basic logging to both files, here’s the output when entering sleep/suspend and then waking up again (with the services enabled and the hook in its original form):

/usr/bin/nvidia-sleep.sh called (1 args): suspend
/usr/lib/systemd/system-sleep/nvidia called (2 args): pre suspend
/usr/lib/systemd/system-sleep/nvidia called (2 args): post suspend
/usr/bin/nvidia-sleep.sh called (1 args): resume
/usr/bin/nvidia-sleep.sh called (1 args): resume

I was already on Wayland.

I can also confirm that the NVIDIA open source NVK (mesa) drivers work fantastic with this kernel if you want to go that route. Very easy. I believe NVK drivers have matured into “ready for prime time” status. You may want to check them out.

Just add a config to etc/modprobe.d/nouveau.conf

Install vulkan-nouveau.

Reboot.

The config command is:
nouveau.config=NvGspRm=1

I was using kernel 6.12, Wayland and Nouveau drivers on a Nvidia GT710 and had no problems.

Yesterday switched to Nvidia 470 and Wayland stopped working. The login screen appears, once logged there’s only the background image and the cursor. No menu, no panels, no desktop icons. Right clicking the mouse appears the context menu. I can create a folder in the desktop or go to screen properties where there’s another screen I don’t have:

After today update (including Nvidia 470) Wayland still doesnt work. X11 works fine as usual.

POST-EDIT: I’ve just realized the non-existent 640x480 screen was set as primary by itself (I haven’t changed anything here). Setting HP27wm as primary made my Wayland desktop reappear. Then unchecked the “Activated” checkbox of the 640x480 screen and so disappeared. Now everything is working fine.