Revision of Troubleshooting suspend/hibernate from Sat, 04/13/2013 - 03:19

The revisions let you track differences between multiple versions of a post.

Symptoms: Your computer seems to suspend or hibernate but then hangs at some point or does not wake up. Also if your virtual terminals get messed up in the process this can help.

Causes: Often these problems are caused by your wifi card and/or your video card.

Method: Try switching off your wifi and see if you then can suspend/hibernate. Start with suspend, it's the easier of the two to get right. If your wifi is the culprit, you can use the rfkill command from the rfkill package to modify the scripts at /usr/lib/pm-utils/sleep.d/ to automatically take out and restore wifi.

Start by reading the suspend/hibernate log, it's at /var/log/pm-suspend.log. Sometimes it contains useful information, sometimes it tries to fool you... You might want to rename/delete the old log before staring to experiment.

If that did not (completely) fix the problem, move onto the video card. Do not turn the wifi back on until your problem is solved. First, run sudo nano /etc/default/grub, add "nomodeset" with quotes to the line that says GRUB_CMDLINE_LINUX_DEFAULT= (don't replace what is already there) and press Ctrl-X to exit nano. Then update-grub and reboot. Make sure you got it right by checking /proc/cmdline to see nomodeset is there. Sometimes just adding the nomodeset parameter does the trick as then the default quirks from the quirk database can be utilized. So try now to see if the default quirks were correct.

If still not working, proceed to read the pm-suspend manual page (info pm-suspend). pm-suspend is the command your computer uses when it goes into suspend mode; the manual page describes the quirks you can try with your hardware. For some of the quirks, you will need to install the vbetool package. You may need other packages too; the log will be useful here.

Then just start the guesswork, e.g. sudo pm-suspend --quirk-dpms-on

After an unsuccessful attempt, go read the log to see what it has to say, usually not much. Then test the next quirk. Sometimes you need more than one. One quirk allowed me to suspend/hibernate but another was needed to make sure my virtual terminals wouldn't get messed up in the process.

If you find a working combination, as the manual page says, edit /etc/pm/config.d/anyfile and input ADD_PARAMETERS="--quirk-dpms-on --quirk-blabla ...".

Other things:

  • You may or may not need to add a line like resume=/dev/sda5 (= your swap, see with cat /proc/swaps) to GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub (and then update-grub) for hibernate to work.
  • zram could make hibernate not work even if suspend does work, a silly workaround is to give your regular swap a higher priority by adding a pri=101 to the option column in /etc/fstab. Do a swapoff -a && swapon -a to apply the new priorities.

Good luck and patience!

Here's a forum thread about this https://trisquel.info/en/forum/how-i-fixed-my-suspend-issue And here's somebody who got it working reading my ramblings http://trisquel.info/en/issues/6380

--

And if you cannot make it work, you can remove the suspend and hibernate buttons from the power off dialog (in Trisquel 5.5) by adding the following text to /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla:

[Disable hibernate in power off dialog]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=no

[Disable suspend in power off dialog]
Identity=unix-user:*
Action=org.freedesktop.upower.suspend
ResultActive=no

Revisions

10/08/2012 - 15:41
lembas
04/09/2013 - 15:47
anonymous
08/13/2013 - 17:53
lloydsmart
04/14/2014 - 02:28
alguien
07/14/2015 - 21:48
Buddybenj