You are not logged in.
I use Hyprland.
My external monitor doesn't resume and stay black after waking up after a suspend triggered by
systemctl suspend -i
Disconnecting and re-connecting the HDMI cable does not resume the monitor.
`hyprctl monitors` do not show the external monitor.
Changing driver from nvidia to nvidia-open did not fix the issue.
Only exiting from hyprland and logging in again works.
Related: https://www.reddit.com/r/archlinux/comm … _hyprland/
Last edited by hully (2024-06-16 05:34:48)
Offline
any idea?
Offline
I have tried putting the
nvidia-drm.modeset=1
kernel parameter as found here but without luck.
After suspend, the external monitor is not even detected by "hyprctl monitors"
Offline
For nvidia on wayland to properly wake from suspend you need to enable the suspension hooks/services. Read the section closely, there's some vital decisions (the place on your filesystem where nvidia can store it's VRAM dump) to make: https://wiki.archlinux.org/title/NVIDIA … er_suspend
Offline
Doesn't work, neither with nvidia nor with nvidia-open
➜ cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-linux root=UUID=d816c87a-5f7a-4e89-8a8b-835d6986ce57 rw loglevel=3 quiet sysrq_always_enabled=1 i8042.nokbd nvidia-drm.modeset=1 nvidia_drm.fbdev=1 NVreg_PreserveVideoMemoryAllocations=1 NVreg_TemporaryFilePath=/var/tmp
The services are enabled:
➜ sudo systemctl status nvidia-suspend.service
○ nvidia-suspend.service - NVIDIA system suspend actions
Loaded: loaded (/usr/lib/systemd/system/nvidia-suspend.service; enabled; preset: disabled)
Active: inactive (dead)
[ble: exit 3]
~ took 3s
❯ sudo systemctl status nvidia-hibernate.service
○ nvidia-hibernate.service - NVIDIA system hibernate actions
Loaded: loaded (/usr/lib/systemd/system/nvidia-hibernate.service; enabled; preset: disabled)
Active: inactive (dead)
[ble: exit 3]
~
❯ sudo systemctl status nvidia-resume.service
○ nvidia-resume.service - NVIDIA system resume actions
Loaded: loaded (/usr/lib/systemd/system/nvidia-resume.service; enabled; preset: disabled)
Active: inactive (dead)
[ble: exit 3]
Although for some reasons are not listed by list-units:
❯ sudo systemctl list-units | grep nvidia
[ble: exit 1]
Offline
To save and restore all video memory contents, use the NVreg_PreserveVideoMemoryAllocations=1 kernel module parameter for the nvidia kernel module
NVreg_PreserveVideoMemoryAllocations=1 NVreg_TemporaryFilePath=/var/tmp
nvidia.NVreg_PreserveVideoMemoryAllocations=1 nvidia.NVreg_TemporaryFilePath=/var/tmp
But that mitigates VRAM decay, not loss of an output.
Does the GPU still respond to nvidia-smi after the suspend?
Only exiting from hyprland and logging in again works.
Does this also happen w/ an X11 session (eg. openbox)?
Do you use some DM? Which?
Offline
Thank you very much!
It works with
nvidia.NVreg_PreserveVideoMemoryAllocations=1
kernel parameter (the other kernel parameter is not necessary) and nvidia proprietary drivers (but not with nvidia-open).
To recap:
- nvidia driver without kernel parameter -> external monitor doesn't wake up on resume after suspend
- nvidia driver with kernel parameter -> external monitor does wake up, and even displays the lock screen
- nvidia-open driver without kernel parameter -> external monitor doesn't wake up on resume after suspend
- nvidia-open driver with kernel parameter -> completely broken. On resume do not display everything at all on all screens. Have to REISUB. Lots of error messages are printed on console before reaching the B.
Offline
Please always remember to mark resolved threads by editing your initial posts subject - so others will know that there's no task left, but maybe a solution to find.
Thanks.
Offline
There was actually a paragraph on the wiki NVIDIA troubleshooting page here.
I specified it also applied if the external monitor doesn't wake up.
Thanks again.
Offline