How to troubleshoot suspend and hibernate in Ubuntu
Solution 1
Some tips are at https://wiki.ubuntu.com/DebuggingKernelSuspendHibernateResume
Fails to suspend/hibernate
$ dmesg|less
There is usually an entry what application caused the suspension to fail:
[32467.560058] Freezing of tasks failed after 20.01 seconds (1 tasks refusing to freeze, wq_busy=0):
[32467.560115] plasma-desktop D 0000000000000000 0 2065 1 0x00800004
...
The stack trace often tells you where the problem might lie:
[32467.560155] [<ffffffff81087f00>] ? autoremove_wake_function+0x0/0x40
[32467.560163] [<ffffffffa016e523>] SendReceive+0x1a3/0x3b0 [cifs]
[32467.560169] [<ffffffffa0153c79>] CIFSSMBUnixQPathInfo+0x139/0x2b0 [cifs]
[32467.560176] [<ffffffffa016853d>] cifs_get_inode_info_unix+0x7d/0x1a0
- here it is the CIFS (samba) mounts.
Fail to resume
Make sure the swap partition is correctly set, see https://help.ubuntu.com/community/SwapFaq
Solution 2
I used to have Ubuntu hibernation issue on laptop as well as desktops. Then I read somewhere, and which made sense, was that the swap space must be big enough to store the current memory contents. So a good rule of thumb is to have a swap space slightly bigger than the physical memory the laptop has.
So I used 1.6GB of swap for 1GB memory in the next Ubuntu release installation (I am now on Ubuntu 10.04) and I can hibernate the laptop without any issue.
Another way to make it work is to use swap file and not swap partition. Below link has more details:
Solution 3
Depends on what exactly the issue is. I would start by carefully examining the pm-suspend.log
I found the page on Debian website more helpful than the one on the Ubuntu site as far as suspend troubleshooting goes: https://wiki.debian.org/Suspend
In my case 1 out of every few suspends causes the system to freeze (not going in suspend). From the pm-suspend.log, I found that the issue has to do with the video card driver:
Successful suspend message:
Running hook /usr/lib/pm-utils/sleep.d/99video suspend suspend:
kernel.acpi_video_flags = 0
/usr/lib/pm-utils/sleep.d/99video suspend suspend: success.
Failed suspend messages:
Running hook /usr/lib/pm-utils/sleep.d/99video suspend suspend:
And then nothing, this is where it hangs.
The next step is to enable debugging by inserting line export PM_DEBUG=true
into the beginning of file /usr/lib/pm-utils/pm-functions
.
After I did this, I found that it hung at chvt 63
and I found a bug report that eventually made me install the Proprietary video driver from the manufacturer.
Related videos on Youtube
Aerik
Updated on September 17, 2022Comments
-
Aerik almost 2 years
I have Ubuntu Lucid installed on a Panasonic Toughbook CF-29. Most things work well, but, under Gnome, suspend and hibernate do not work. Interestingly, in Xubuntu, hibernate does work. So my question is twofold:
1) How do I troubleshoot the hibernate function in Gnome desktop (since I know the laptop can hibernate in Ubuntu), and
2) How to go about troubleshooting the suspend function? I got as far as looking at the /var/log/pm-suspend.log, but that just tells me the things that ran successfully... I'm kind of stuck there.
-
Aerik almost 13 yearsHmm... I've looked at a bunch of stuff like this. Mostly what I've seen are "shotgun" solutions (like "try uswsusp"). My question is really more "how to troubleshoot". I'm looking for a linux guru who is familiar with these components in the different variants of Ubuntu to give some pointers as to how to figure it out, not just go down a long list of things to try to see if they work.
-
harrymc almost 13 yearsAs the problem seems to be localized to the Ubuntu distribution and only on laptops, you might be better asking it in their forums. As a last note, the following threads contain lots of pointers and info : Troubleshooting suspend and hibernate and How to troubleshoot Suspend/Hibernate in Ubuntu 10.10.
-
David Yates almost 13 yearsfunny - it worked fine for me on my netbook :)
-
Aerik almost 13 yearsGreat link - I hadn't actually seen that one yet. AFAIC, this answer is the best answer to date to my question ("how to troubleshoot"...) so I'm awarding the bounty here.