You are not logged in.
I have a swap configured for my lvm Arch Linux system which should save all applications through hibernation to disk, but when I resume from hibernation, the desktop environment switcher gdm has graphical glitches, and so does gnome when entering into it. There is cursor ghosting, previous applications are not present, and when I click the gnome status bar widget in the upper right, elements are missing which may be working but there is no visual to show it.
I can launch applications blindly using the launcher though and they display and are interactive like normal.
Kernel Packages:
linux 6.11.2.arch1-1
linux-lts 6.6.54-1
linux-headers 6.11.2.arch1-1
linux-lts-headers 6.6.54-1
NVIDIA Driver Packages:
nvidia 560.35.03-11
nvidia-lts 1:560.35.03-12
nvidia-utils 560.35.03-5
GNOME and GDM Packages:
gdm 47.0-1
gnome-shell 1:47.0-1
gnome-session 47.0.1-1
gnome-desktop 1:44.1-1
gnome-desktop-4 1:44.1-1
libgdm 47.0-1
Offline
Have you tried NVIDIA/Tips_and_tricks#Preserve_video_memory_after_suspend?
Offline
I have done a few of them. Here are some more details:
/etc/mkinitcpio.conf :
MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
Files=(/etc/modprobe.d/nvidia.conf)
HOOKS=(base udev autodetect microcode modconf keyboard keymap consolefont block encrypt lvm2 filesystems resume fsck)
^^^
I have removed kms from HOOKS()
/etc/modprobe.d/nvidia.conf :
options nvidia_drm modeset=1 fbdev=1 NVreg_PreserveVideoMemoryAllocations=1
`GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 cryptdevice=/dev/nvme0n1p3:archOShplaptop_system_volgroup quiet resume=UUID=87c50c26-8398-4eba-b7eb-849d65b1fdaf"`
I have enabled nvidia-hibernate.service nvidia-resume.service and nvidia-suspend.service.
I have symlinked /dev/null to /etc/udev/rules.d/61-gdm.rules as cyberduck did in the forums, in relation to getting nvidia display; I don't remember if this helped me get display initially, or if simply creating a swap fixed some of the initial issues I had getting my gpu to display.
It mentitons setting a /tmpfs alternative with `NVreg_TemporaryFilePath` kernel module parameter. I am not sure if this is needed or not.
I have some logs for `dmesg | grep -i nvidia` and `journalctl -xe | grep -i hibernate`but don't know how to share them.
I don't know why, but 'systemctl hibernate' only puts the system to sleep if I have disabled automatic hibernation timers in gnome settings.
Offline
It mentitons setting a /tmpfs alternative with `NVreg_TemporaryFilePath` kernel module parameter. I am not sure if this is needed or not.
Worth trying, just use the following in /etc/modprobe.d/nvidia.conf
options nvidia \
NVreg_PreserveVideoMemoryAllocations=1 \
NVreg_TemporaryFilePath=/var/tmp
or use
nvidia.NVreg_TemporaryFilePath=/var/tmp
as a kernel parameter (in your bootloader config).
I have some logs for `dmesg | grep -i nvidia` and `journalctl -xe | grep -i hibernate`but don't know how to share them.
You can use wgetpaste or 0x0.st, e.g.
curl -F'file=@your-dmesg-log-file' https://0x0.st
Last edited by obap74 (2024-10-08 09:54:22)
Offline
I tried to set a tmp-fs with that kernel parameter, but it didn't apply during boot. I tried using both that path, and a path in my home folder, but with the same result.
I don't know if it was a fluke but hibernation and resuming from hibernation did work after using your example formatting of nvidia.conf before I applied the tmp nvidia kernel parameter option. I may have lost relevant logs.
Here are a couple outputs from those two commands for more information:
dmesg_lts: https://0x0.st/X6qX.txt
journal_lts: https://0x0.st/X6qP.txt
I am booting into the lts kernel now with the exact same behavior with graphical glitches.
My system remains on and in a suspended state when executing 'systemctl hibernate', when I wiggle or wake up my system it doesn't show glitches. But its not actually hibernating at all.
Offline
From my experience, you don't need to pass the kernel parameter (nvidia.NVreg_TemporaryFilePath=/var/tmp) if you're already using
options nvidia \
NVreg_PreserveVideoMemoryAllocations=1 \
NVreg_TemporaryFilePath=/var/tmp
in etc/modprobe.d/nvidia.conf
Offline
From my experience, you don't need to pass the kernel parameter (nvidia.NVreg_TemporaryFilePath=/var/tmp) if you're already using
options nvidia \ NVreg_PreserveVideoMemoryAllocations=1 \ NVreg_TemporaryFilePath=/var/tmp
in etc/modprobe.d/nvidia.conf
Correct. And keep an eye out for nvidia-utils 560.35.03-6 currently in testing.
It enables those options by default.
EDIT and slightly off-topic as I use neither swap nor hibernate:
• Deleted /etc/modprobe.d/nvidia.conf outright after 560.35.03-6 landed in Extra.
• Verified suspend/resume functional with kernels 6.11.3, 6.10.14 (custom), and 6.6.55 LTS.
Last edited by tekstryder (2024-10-13 12:37:45)
Offline
So right now I haven't progressed with this.
It's unclear if it has been fixed but the developer asserts it is.
This guy's post seems identical to my issue on the /NVIDIA/open-gpu-kernel-modules/ github issues page. I tried running the 565 .run download from the NVIDIA drivers download page for it but, maybe because my atypical lvm /encrypted system structure, it failed to reboot and stuck with messages for me:
Loading Linux linux-lts ...
Loading initial ramdisk ...
I managed to chroot into my system from a arch live installation usb and run the --uninstall argument on the .run installer to remove what changes were made. Then ran `mkinitcpio -P` and my system booted normally.
Maybe someone else would be able to confirm the new driver is resolving this problem.
Last edited by LaptopDev (2024-10-29 21:40:21)
Offline