-
-
Save bmcbm/375f14eaa17f88756b4bdbbebbcfd029 to your computer and use it in GitHub Desktop.
# Use systemd for managing NVIDIA driver suspend in drivers ====>>> PRIOR to version 470 <<<===== | |
# https://download.nvidia.com/XFree86/Linux-x86_64/450.66/README/powermanagement.html | |
# https://forums.developer.nvidia.com/t/unable-to-set-nvidia-kernel-module-parameters/161306 | |
# Please note: In Fedora Linux you may need to just install the xorg-x11-drv-nvidia-power pakage | |
# as sugested by @goombah88 in the comments below. | |
TMP_PATH=/var/tmp | |
TMPL_PATH=/usr/share/doc/nvidia-driver-460/ | |
echo "options nvidia NVreg_PreserveVideoMemoryAllocations=1 NVreg_TemporaryFilePath=${TMP_PATH}" | sudo tee /etc/modprobe.d/nvidia-power-management.conf | |
sudo install --mode 644 "${TMPL_PATH}/nvidia-suspend.service" /etc/systemd/system | |
sudo install --mode 644 "${TMPL_PATH}/nvidia-hibernate.service" /etc/systemd/system | |
sudo install --mode 644 "${TMPL_PATH}/nvidia-resume.service" /etc/systemd/system | |
sudo install "${TMPL_PATH}/nvidia" /lib/systemd/system-sleep | |
sudo install "${TMPL_PATH}/nvidia-sleep.sh" /usr/bin | |
sudo systemctl enable nvidia-suspend.service | |
sudo systemctl enable nvidia-hibernate.service | |
sudo systemctl enable nvidia-resume.service | |
I found solution for my system, tested with nvidia driver 570.153.02
.
To get suspend/hibernation working correctly i had to change my kernel version to 6.13.7
and set NVreg_EnableGpuFirmware
to 0 for nvidia
kernel module.
With other kernel versions(i tested 6.12.29
lts and mainline 6.14.6
) i get a black screen when trying to resume from suspend/hibernate1.
Here is modprobe.d config for nvidia module(/etc/modprobe.d/nvidia.conf
):
options nvidia NVreg_PreserveVideoMemoryAllocations=1
options nvidia NVreg_TemporaryFilePath=/var/tmp
options nvidia NVreg_EnableGpuFirmware=0
Enabled nvidia systemd services:
sudo systemctl enable nvidia-hibernate
sudo systemctl enable nvidia-suspend
sudo systemctl enable nvidia-resume
My system:
- Lenovo Legion R7000 AHP9
- AMD Ryzen 7 8745H
- 32 GB ram
- Video: Nvidia RTX 4050(dGPU) + AMD Radeon 780M(iGPU)
- OS: Fedora 41, KDE 6.3.5 with Kwin wayland session
- Nvidia driver version:
570.153.02
Footnotes
-
As workaround I found that with magic SysRq request for SIGTERM to all processes, i can bypass/kill hanged nvidia(?) scripts. Keyboard shortcut: Alt+SysRq(PrtSc)+e ↩
FYI, there's a new systemd service for newer nvidia driver versions. So if someone uses suspend-then-hibernate
on their system, you might need to enable that too for nvidia:
sudo systemctl enable nvidia-suspend-then-hibernate.service
I'm losing my mind and time with this problem on