How to debug a suspend problem?

23,104

Solution 1

There are many ways to handle suspend and hibernate capabilities, many of the old methods are deprecated. This has made searching for solutions difficult, as it seems every solution is completely unrelated to the next. With that said...

The method currently recommended, advocated from http://pm-utils.freedesktop.org/wiki/, should be available for most recent distributions. I would first check if you have pm-utils installed, and if the included commands are operating as expected.

View if the package is installed, enter this command in terminal

rpm -qa | grep pm-utils

This should output the version you have installed. If you don't get the expected output, you need to install the package.

sudo yum install pm-utils

Once you get that verified, test out your ability to suspend.

sudo pm-suspend

If You don't suspend, and get no output why, check the your recent dmesg output

dmesg | tail -50

This should help get you started, once you get some clues its much easier to go further down the trail. Post back with comments regarding your results, I can get you through the rest.

Solution 2

Try this as root:

PM_DEBUG=true pm-suspend

Then check /var/log/pm-suspend.log for hints on what might go wrong.

If you can suspend, but not resume, there's a good article on the Ubuntu wiki on how to debug this problem.

Solution 3

If you want only to get when you suspended/resumed the system, you can try this:

cat /var/log/syslog | grep 'systemd-sleep' | grep "Suspending\|resumed";
Feb  7 10:44:23 dmatej-lenovo systemd-sleep[19900]: Suspending system...
Feb  7 10:44:33 dmatej-lenovo systemd-sleep[19900]: System resumed.
Feb  7 10:45:35 dmatej-lenovo systemd-sleep[20707]: Suspending system...
Feb  7 12:58:39 dmatej-lenovo systemd-sleep[20707]: System resumed.
Feb  7 14:42:55 dmatej-lenovo systemd-sleep[24690]: Suspending system...
Feb  7 16:31:57 dmatej-lenovo systemd-sleep[24690]: System resumed.

Solution 4

As is suggested by Mika, as root:

PM_DEBUG=true pm-suspend

Details within:

/var/log/pm-suspend.log

In this case you're looking for where

[...] service [servicename] suspend suspend success

ends, and

[...] service [servicename] suspend resume success

begins. Somewhere in between you may find calls returning error, at which point suspend is inhibited. In this case, you may have suspend changes being rolled back. Figure out what service call is throwing the error, open it up in vi and take a look at it.

I had the same problem where after installing xboxdrv on an Ubuntu 12.04, a call being made in a rule in /etc/pm/sleep.d/ was trying to stop a service that was never started or non-existent, in this case, xboxdrv. Turns out it could never be started in the first place, because there was no /lib/modules/uinput.ko module, because that module is merged into the kernel. This caused the case statement in /etc/pm/sleep.d/xboxdrv to throw an error when it case matches "suspend" to the call service xboxdrv stop. Prepending the line with # bypasses the statement, at the expense of having to unplug and re-plug your controller on suspend then resume.

Share:
23,104

Related videos on Youtube

LanceBaynes
Author by

LanceBaynes

Updated on September 18, 2022

Comments

  • LanceBaynes
    LanceBaynes over 1 year

    I used to have Fedora 14 installed on this HP Compaq 610, and the suspend feature worked fine. Now that I've installed Scientific Linux 6.1 suspend doesn't work anymore. How do I debug/fix it?

    • Admin
      Admin over 12 years
      Is this the shell suspend (<kbd>Cntl-z</kbd>) or the OS (sleep or hibernate)?
    • Admin
      Admin over 12 years
      @Arcege: I would assume he meant ACPI suspend, as it's become such a common problem these days.
  • LanceBaynes
    LanceBaynes over 12 years
    I even installed pm-utils-devel. pm-suspend with root user does the same as with a normal user when it clicks in GNOME/menu->suspend->nothing, the machine just says "network is off", then it just waits and waits, etc.. i can't start anything after i'm trying to suspend. I will see the dmesg later, thank you!
  • J. M. Becker
    J. M. Becker over 12 years
    The dmesg output will tell you what is happening behind the scene. More importantly, what in particular might be failing. O and BTW, you don't need the devel package. You only need them when compiling code, so feel free to purge. There are many direction to go from here, I just don't to send you barking up the wrong tree.
  • user2909006
    user2909006 over 12 years
    @LanceBaynes did you try running the pm-suspend commands from a shell and not through the GNOME menu? Try echo -n "mem" >/sys/power/state as root. Also if you're using acpi you can do a acpi_listen see what events are being generated e.g. upon closing the lid.
  • LanceBaynes
    LanceBaynes over 12 years
    WOW, wtf? I "echo -n "mem" >/sys/power/state" with the root user, and my actually suspended!!!! WOW. The only problem is now that when I'm doing this kind of suspend, then gnome-screensaver doesn't starts, and leaves me an unlocked PC. How to get around this? How can I make a script/anything so that a normal user could use this kind of suspend too? not just the root user? - and one more thing: THANK YOU!
  • LanceBaynes
    LanceBaynes over 12 years
    now pm-suspend works too...it didn't worked before..
  • LanceBaynes
    LanceBaynes over 12 years
    don't know how it got fixed, but suspend is working now...maybe installing the "pm-utils-devel" package helped, but not sure.. :D
  • J. M. Becker
    J. M. Becker over 12 years
    @LanceBaynes: Its now working? ... I used to belive these kind of "surprise" Break/Repair's only happened with Widoze. Unfortunately, I've stopped believing that for a while. But... on the bright side, it does happen less often! And your suspend is working, so that's great news!
  • Wirone
    Wirone over 6 years
    I have no errors in debug log after running this, but magically it started working again ;-) I am wondering if it's permanent fix...