+ PM_QUIRKDB=/usr/lib/pm-utils/video-quirks
+ PM_LKW_QUIRKS=/var/cache/pm-utils/last_known_working.quirkdb
I tried different command line parameters having to do with quirks. This command causes suspend/resume to work as expected when running with nomodeset/vesa graphics: sudo pm-suspend --quirk-dpms-on
Wow, this was tough. I'll mark as solved.
]]>I logged both without nomodeset (suspend working consistently) and with nomodeset (suspend works once then fails to work subsequently).
Interestingly, the logs without nomodeset and the first log with nomodeset are identical. With nomodeset, second attempt to suspend onwards do nothing and the last few lines of the log are:
+ flock -x -n 3
+ return 1
+ exit 1
It seems that the problem is that when running on vesa graphics, the pm-suspend command gets stuck at some point (presumably during the resume phase) and never finishes executing, leaving behind some kind of lock that prevents further attempts to suspend.
]]># PM_DEBUG=true pm-suspend >& LOG
Reviewing that LOG file might tell you something about why suspending fails.
]]>Result:
All observations are the same as when using nomodeset.
I think this proves that using the vesa fallback instead of i915 is breaking computer's ability to suspend--it does not matter if i915 is disabled directly (by blacklisting it) or indirectly (by using nomodeset).
Since i915 seems to be responsible for all the graphics bugs I was experiencing, I'm happy with vesa. Nevertheless, if anyone knows a way to make suspend work while on vesa graphics, please do share.
]]>I can confirm that i915 is not the graphics driver when I use nomodeset kernel boot option.
Here is the output of sudo lshw -c video without nomodeset (notice the "configuration:" line):
*-display:0 UNCLAIMED
description: VGA compatible controller
product: Mobile 4 Series Chipset Integrated Graphics Controller
vendor: Intel Corporation
physical id: 2
bus info: pci@0000:00:02.0
version: 07
width: 64 bits
clock: 33MHz
capabilities: msi pm vga_controller bus_master cap_list
configuration: driver=i915 latency=0
resources: memory:e1400000-e17fffff memory:d0000000-dfffffff ioport:5400(size=8) memory:c0000-dffff
And here is the output of the same command with nomodeset:
*-display:0 UNCLAIMED
description: VGA compatible controller
product: Mobile 4 Series Chipset Integrated Graphics Controller
vendor: Intel Corporation
physical id: 2
bus info: pci@0000:00:02.0
version: 07
width: 64 bits
clock: 33MHz
capabilities: msi pm vga_controller bus_master cap_list
configuration: latency=0
resources: memory:e1400000-e17fffff memory:d0000000-dfffffff ioport:5400(size=8) memory:c0000-dffff
An unfortunate and unexpected side effect of using nomodeset is that it breaks my machine's ability to suspend, regardless of which kernel I'm running. Both loginctl suspend and sudo pm-suspend work without nomodeset, break with nomodeset.
Does anyone know of a way to use nomodeset kernel boot option without breaking machine's ability to suspend?
]]>