-
-
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 know this gist is for NVIDIA drivers with versions <470, but I wanted to if anyone has had any luck getting drivers 525, or 535 to work.
GPU: Nvidia 4060 TI
Driver: 535.129.03
CUDA Version: 12.2
CPU: AMD 5700X
Board: Gigabyte 550 Gaming V2
OS: Ubuntu 22.04.3 LTS
Basically, when I select suspend on Ubuntu, my screens turn off, and my fans spin up to a very high RPM. Then I am unable to wake it up from this state, and must toggle the PSU switch off and on again. After that, the login screen is displayed.
I know this is an Ubuntu related issue because I can put my computer to sleep on Windows 10, and wake it back up again.
What I've tried:
- Editing
/etc/defaults/grub
(GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX="nouveau.blacklist=1") - Removing all NVIDIA services in
/etc/systemd
(https://askubuntu.com/a/1409631/1554429) - Installing different Nvidia drivers, both open source and proprietary options
- Setting the Nvidia sleep shell script to only execute
exit 0
- Disabled secure boot in BIOS
- Disabled CSM in BIOS
- Enabled mouse and key presses to wake in BIOS
- Disabling Nvidia systemd state management, https://askubuntu.com/a/1436923/1554429
- Other stuff...
Yes, I got it to run on an IBM Thinkpad P52 with:
GPU: NVIDIA GP107GLM [Quadro P2000 Mobile]
Driver: 535.129.03
CPU: Intel Xeon E-2176M
Distro: Linux Mint 21.2 Victoria
base: Ubuntu 22.04 jammy
Kernel: 5.15.0-89-generic x86_64
Desktop: Xfce 4.18.1
My 'trick' ist to only use:
sudo pm-suspend
Anything related to systemd suspend, closing lid etc. else will fail miserably, end with a hanging OS and a hard reboot. Very disappointing, for quite a long time already.
I'm on Ubuntu 22.04, and after installing CUDA I was unable to suspend. The following steps worked for me:
- Inside
/etc/systemd
, delete all of the files that includenvidia
andsuspend
orhibernate
. There are three services inside/etc/systemd/system
, which I deleted. There are also some other dead nvidia links insidesystemd-hibernate.service.requires
,systemd-suspend.service.requires
, which I deleted.I wish I knew the exact names of the files that I deleted, but since they're now gone, I can't remember their exact paths. But in a nutshell, go into
/etc/systemd
, and dofind . -iname nv*
, and then delete all the of thesuspend
,resume
, andhibernate
scripts.
DO NOT DELETEnvidia-powerd.service
andnvidia-persistenced.service
.
Once you're done with that, dosystemctl daemon-reload
.Worked for me as well!
I have a Dell Inspiron 15 5000 with Nvidia driver
470.199.02
on Ubuntu 20.04 LTS.
This worked for me too! I have a Razer Blade 14 2022 with Nvidia driver 535.129.03 on Ubuntu 23.10
This also worked for me on an XPS 15 with a 3050 Ti (Ampere), Ubuntu 22.04, driver 550.
This fixed my pci_pm_suspend() and the PreserveVideoMemory stuff that would pop up and prevent laptop sleep.
If you deleted the service files, like nvidia-powerd.service or nvidia-persistenced.service, you either find them here or you can reinstall the drivers like this.
After reinstalling, I was able to see the service files, and then doing what the OP said worked.
Doing systemctl list-unit-files | grep nvidia
now gets me:
joao@joao-XPS-15-9520:~$ systemctl list-unit-files | grep nvidia
nvidia-hibernate.service enabled enabled
nvidia-persistenced.service static -
nvidia-resume.service enabled enabled
nvidia-suspend.service enabled enabled
Good luck!
This also worked for me on an XPS 15 with a 3050 Ti (Ampere), Ubuntu 22.04, driver 550.
...
So far seems to have work on my Lenovo Legion Slim 7 4060 PopOS kernel 6.8, also driver 550. Kind of frustrating because PopOS ships with nvidia drivers and so everytime I have to update OS it updates my drivers 😅 and I have to repeat this process.
nvidia-hibernate.service enabled enabled
nvidia-powerd.service enabled enabled
nvidia-resume.service enabled enabled
nvidia-suspend.service enabled enabled
Also worked for me after installing CUDA libraries on Ubuntu 22.04. Prior to this I had Nvidia drivers working with suspend without issue.