Last active
January 26, 2026 18:00
-
Star
(110)
You must be signed in to star a gist -
Fork
(2)
You must be signed in to fork a gist
-
-
Save bmcbm/375f14eaa17f88756b4bdbbebbcfd029 to your computer and use it in GitHub Desktop.
NVIDIA Suspend fix
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 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 | |
Fedora 43 Workstation
ThinkPad P16s Gen 2
6.18.6-200.fc43.x86_64
GNOME 49.3
GPU 1: NVIDIA RTX A500 Laptop GPU
GPU 2: Intel Iris Xe Graphics @ 1.50GHz [Integrated]
/etc/modeprobe.d/nvidia.conf:
# Disable Nvidia modesetting for hyprid graphics
options nvidia-drm modeset=0
# Enable dynamic power management
options nvidia NVreg_DynamicPowerManagement=0x02
# Disable GSP firmware (can cause issues on some laptops)
options nvidia NVreg_EnableGpuFirmware=0
# Preserve video memory allocations across suspend/resume
options nvidia NVreg_PreserveVideoMemoryAllocations=1
# Disable S0ix power management
options nvidia NVreg_EnableS0ixPowerManagement=0I tried the systemctl enable nvidia commands but this never fixed my problem.
What worked for me was disabling USB and THunderbolt wake:
# Disable XHCI (USB)
echo XHCI | sudo tee /proc/acpi/wakeup
# Disable TXHC (Thunderbolt)
echo TXHC | sudo tee /proc/acpi/wakeup
# Verify both are disabled
cat /proc/acpi/wakeup | grep -E "XHCI|TXHC"Both should be *disabled - I have to use my laptop keyboard/trackpad to resume but I am fine with that so keep it in mind if you are not using a laptop.
I think that something was sending wake signals hence why I disabled those.
To make it permanent create a service for it:
/etc/systemd/system/disable-usb-wakeup.service:
[Unit]
Description=Disable USB wakeup to prevent spurious wake events
After=multi-user.target
[Service]
Type=oneshot
ExecStart=/bin/sh -c 'echo XHCI > /proc/acpi/wakeup; echo TXHC > /proc/acpi/wakeup'
[Install]
WantedBy=multi-user.targetsudo systemctl enable disable-usb-wakeup.service
sudo systemctl start disable-usb-wakeup.service
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Initial tests, this works for me on Mint 22.2, Driver Version: 580.105.08 to get suspend working:
systemctl enable nvidia-suspend.service
systemctl enable nvidia-hibernate.service
systemctl enable nvidia-resume.service
my /etc/modprobe.d/nvidia-graphics-drivers-kms.conf:
options nvidia-drm modeset=1
options nvidia NVreg_PreserveVideoMemoryAllocations=0
options nvidia NVreg_TemporaryFilePath=/var/tmp