I’m trying to fix the issue where the Wayland session comes back from suspend with a broken screen when using the Nvidia proprietary drivers. For that I came up with the article on the wiki that seems to point towards a solution but with no success.
I did create a file on /etc/modprobe.d/nvidia-power-management.conf with
How much video memory do you have on your graphics card? Do you have enough free space on the partition where the /var/tmp is located? What filesystem are you using there?
Can you show the output of this
glxinfo -B | grep -i memory
and this command
df -hT
Have you checked if your kernel module is loaded with correct params
sudo systool -m nvidia -av
Can you provide some more details from logs, for example
So it turns out I don’t have enough space inside of /var/tmp for that, huh. I was counting with the whole root filesystem as available space
The output of
glxinfo -B | grep -i memory
is
Memory info (GL_NVX_gpu_memory_info):
Dedicated video memory: 8192 MB
Total available memory: 8192 MB
Currently available dedicated video memory: 7603 MB
For the Nvidia kernel modules I had to enable the usual
nvidia nvidia_modeset nvidia_uvm nvidia_drm
inside of /etc/dracut.conf to even have the Wayland session available on gdm, however df -hT only shows the nvidia kernel module enabled… I have also enabled nvidia-drm.modeset=1and NVreg_PreserveVideoMemoryAllocations=1 inside of /etc/kernel/cmdline but I don’t remember if I was supposed to do that. I’m used to edit mkinitcipio.conf and actually just used dracut and systemd-boot for the first time this week for my recent install. There might be some problem here as well.
Just for further reference if someone ever stumble upon this with the same issue, I fixed it.
Besides the steps above I was missing both additional steps:
Increase the size of /var/tmp.
Include the kernel modules properly.
In my case, I’m just using dracut and systemd-boot as defaults, so according to this and this article I created a file under /etc/dracut.conf.d/ named nvidia.conf with the options
I haven’t tested this with mkinitcpio but I guess if the /var/tmp partition was big enough it would be enough to just pass the Nvidia modules above as usual.