Repository navigation
Hibernation failure due to NVidia driver: How I fixed it #5500
Closed
NicolasDorier
started this conversation in
General
Replies: 4 comments 1 reply
|
I submitted a PR on omacom/omarchy-pkgs#84 disabling |
0 replies
|
Note, I've notice that I am digging around about what is changing it now. It turns out that a previous reboot, I've set |
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
If you use NVIDIA and resuming from hibernation behaves like a normal reboot, this may be the cause.
On my machine, the system was hibernating, but NVIDIA was preventing the hibernation image from being restored.
Symptoms
After running:
the machine powers off, but when powered back on it boots normally and all previous windows/session state are lost.
First thing to try
NVIDIA has systemd services for suspend/hibernate/resume support:
Reboot and try hibernation again.
If that works, stop here.
If it still behaves like a reboot, continue.
Check the logs
Check the previous boot:
or the current boot after a failed resume:
In my case, I saw this:
The important part is:
What this means
NVIDIA has two power-management paths:
PreserveVideoMemoryAllocations:1, using:The older path relies on the NVIDIA systemd services writing to:
Check whether that file exists:
If
suspendexists, your issue may be different.If
suspenddoes not exist, butNVreg_PreserveVideoMemoryAllocations=1is enabled, NVIDIA may abort hibernation withpci_pm_freezereturns -5.If
/proc/driver/nvidia/suspenddoes not exist, the old services are not useful for this path, you can disable them if you enabled them before:We will switch to the new way with
NVreg_UseKernelSuspendNotifiers=1.This is documented in the Arch Wiki: preserving video memory after suspend.
Why the older power-management path was used?
When I ran:
It would show
This indicate that both, the old and new ways are enabled. In this situation, the drivers seems to fallback on the old way, but because the
suspendinterface isn't exposed by the driver, hibernation doesn't work.In my case,
PreserveVideoMemoryAllocations: 1was coming from GPU Screen Recorder, not from my own NVIDIA config.It installs this file: (From gpu-screen-recorder)
which contains:
That forced the old behavior and caused hibernation resume to fail.
Do not edit files under
/usr/lib/modprobe.ddirectly. They are package-owned and can be overwritten by updates.Instead, mask the package file by creating an empty file with the same name under
/etc/modprobe.d:Then rebuild the initramfs / Limine entries:
Reboot.
Verify after reboot
Check NVIDIA parameters:
The expected result is:
If that is the case, hibernation should now work properly.
If you see
PreserveVideoMemoryAllocations: 2instead, you need #5519 and reboot.Then try hibernation again:
All reactions