Skip to content

Instantly share code, notes, and snippets.

@bmcbm
Last active January 26, 2026 18:00
Show Gist options
  • Select an option

  • Save bmcbm/375f14eaa17f88756b4bdbbebbcfd029 to your computer and use it in GitHub Desktop.

Select an option

Save bmcbm/375f14eaa17f88756b4bdbbebbcfd029 to your computer and use it in GitHub Desktop.
NVIDIA Suspend fix
# 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
@audio441
Copy link

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

@rosscondie
Copy link

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=0

I 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.target
sudo 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