I’m having a problem whenever I put my laptop to hibernate or suspend. When powering up the laptop again, I see the manufacturer logo for a few seconds and then nothing, black screen.
I am able to switch to a tty and I tried to run startx but it gives me the following error: xf86EnableIOPorts: failed to set IOPL for I/O (Operation not permitted)
I am using nVidia hybrid prime drivers 450 and Optimus Manager set to auto. Tried to go back at version 440 and delete the free drivers from the MHWD but the problem remains. The kernel was updated yesterday I think but I didn’t check if the problem was also happening on the previous version.
Update: The problem only happens when the nVidia GPU is used with optimus-manager. I guess there is a problem when powering on the GPU again after suspend or hibernate.
Here is my config:
Kernel: 5.8.16-2-MANJARO
CPU: Intel Core i5-7300HQ
Graphics:Device-1: Intel HD Graphics 630
Device-2: NVIDIA GP107M GeForce GTX 1050 Mobile
This is not really an error, and can safely be ignore here. There is probably something else in the Xorg log. Run startx -- -keeptty -logverbose 99 and then check the log.
Same, black screen. I tried running systemctl --all but was unable to find the nvidia services, maybe they are not installed by default?
After reading the nVidia documentation, there is an issue mentioned in the power management section:
On some systems, where the default suspend mode is “s2idle”, the system may not resume properly due to a known timing issue in the kernel. The suspend mode can be verified by reading the contents of the file /sys/power/mem_sleep.
In the interim, the default suspend mode on the affected systems should be set to “deep” using the kernel command line parameter “mem_sleep_default” -
mem_sleep_default=deep
I checked /sys/power/mem_sleep and it’s already set to “deep”.
I’m not sure what might be the problem, for now please disable those nvidia services. When you log in the tty after the black screen, is Xorg running? If Xorg is running, what’s in its log? What does nvidia-smi and DISPLAY=:0 xrandr say (if :0 doesn’t work, try :1, :2, etc.)?
I’m not sure if I did it in the good order. My laptop boots into hybrid mode, I switched to nVidia then ran systemctl suspend. From there I did the REISUB method and the commands given. Here is the result:
That’s interesting. What happens if you switch to an unused tty, and then immediately switch back to the tty where the X server is running? Aren’t there any i915 errors in journalctl right after resume?
I switch to tty2 when the black screen happens, if I switch back to tty1 there is just a blinking cursor there. Should I startx on tty2 and then switch to tty1?