[GUIDE] How to fix Suspend / Hibernate on Nvidia GPU
Hello Folks !
in this guide I will discuss how to fix suspend / hibernate on Nvidia GPU
## Step 1:
The script /usr/lib/elogind/system-sleep/nvidia has broken switch case
case "$1" in
post)
/usr/bin/nvidia-sleep.sh "resume"
;;
esac
which should be edited to be
case "$1" in
pre)
/usr/bin/nvidia-sleep.sh "suspend"
;;
post)
/usr/bin/nvidia-sleep.sh "resume"
;;
esac
## Step 2:
in /etc/default/grub, add resume=/dev/nvmeXXXX (change XXXX to whatever your swap partition is), in my case it was:
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet pci=noaer resume=/dev/nvme0n1p3"
## Step 3:
We should edit the file /sys/power/resume to include our swap partition offsets as following:
but, this file resets after every boot, so we should write on it every boot, this can be done by creating /etc/tmpfiles.d/hibernation_resume.conf to include:
# Path Mode UID GID Age Argument
w /sys/power/resume - - - - 259:3
Change argument based on the MAJ:MIN we got from previous step :D
## Step 4:
It is time to include resume hook in /etc/mkinitcpio.conf:
HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont block filesystems resume fsck)
## Step 5:
For nvme to load the resume kernel parameter, we should early load the nvme module, so in /etc/mkinitcpio.conf
MODULES=(nvme)
## Step 6:
build initramfs and regenerate grub config:
sudo mkinitcpio -P
sudo grub-mkconfig -o /boot/grub/grub.cfg
## Step 7:
Reboot your device and enjoy working suspend and hibernate :D
Posted Dec 6, 2025, 6:15 PM UTC