Problems with ACPI suspend-to-ram

From ThinkWiki
Revision as of 14:06, 7 October 2010 by The canoeist (Talk | contribs) (Troubles on suspend: Added solution for pm-utils & pci-sd)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

The following glitches may or may not occur in relation to suspending to RAM:

Troubles on suspend

Permissions
If your suspend is failing, and a # tail /var/log/acpid shows "Permission denied" errors, be sure that your new ACPI event and action scripts have the appropriate permissions.
Write error
If # echo mem > /sys/power/state shows "write error: Operation not permitted", verify that CONFIG_HOTPLUG_CPU option is enabled in the kernel. Suspend2 automatically selects this option.
Broken sysfs interface
You may experience problems when using # echo standby > /sys/power/state or # echo mem > /sys/power/state (machine goes to sleep and wakes up immediately). This can be avoided by using # echo -n 3 >/proc/acpi/sleep to get it to sleep. This can be also happen if hotplug daemon is still running or if the usb hcd modules are still loaded.
Immediate Resume after Suspend
If a resume starts a few seconds after suspend a reason might be the USB modules. Unload the modules uhci_hcd and ehci_hcd before you suspend. Users of hibernate-scripts add "UnloadModules uhci_hcd ehci_hcd" to /etc/hibernate/common.conf.
Hangs on "switching to UP code"
You may be using a frequency scaling governor such as "conservative" or "ondemand", which sometimes have problems with suspending. Switching to a governor such as "powersave" or "performance" before suspending may solve this problem.
MySQL daemon running
If you're running MySQL, sleep may also not work, so stop MySQL first, then sleep. Remember to restart MySQL when you wakeup.
LCD backlight remains on during sleep
When your system is equiped with a Radeon Mobility graphic controller your LCD backlight may not turn off automatically. Use radeontool to switch off your backlight prior suspend in your sleep action script.
High power drain during sleep
Also, you might want to take note of the Problem with high power drain in ACPI sleep.
SD cards must be unmounted
On current (10.x) and past versions of Ubuntu, the system will fail to suspend (black screen, blinking "moon") if an SD card is mounted. Use the script at the Aspire One community page in order to safely work around this. On other systems, you may be able to simply add "sdhci mmc_block mmc_core" to the MODULES= line in acpi-support.
Or try this (pm-utils & pci-sd):
Add the follwing line to the # /etc/pm/config.d/00sleep_module to unload the module before standby:
SUSPEND_MODULES="$SUSPEND_MODULES sdhci"


Could not power down device <NULL>
error -22:If you have the acpi_cpufreq kernel module loaded, this prevents suspension.
Immediate Resume, but Suspend "moon" light continues to flash
???
Hard system lock up
If you are using savagefb, make sure to disable the "Console Acceleration" option (CONFIG_FB_SAVAGE_ACCEL) in the kernel config. Otherwise, susped-to-RAM may lock up your system such that you must remove the AC adapter and battery to get it to boot again.
Hard system lock up 2
If you are using a Thinkpad G40 and Ubuntu (this problem experienced on 8.04), you may experience problems with ACPI when opening your laptop lid that freezes the system. You can disable ACPI in your kernel parameters, or modify /etc/acpi/lid.sh to switch to a plain text console on close and back to Gnome/KDE on open (use /usr/bin/chvt 1 and /usr/bin/chvt 7, respectively)
Solid 'moon' but fans still spinning
On a T61p with an nvidia quadro 570M, you might experience a near-complete suspend, with the backlight turned off, unresponsive usb, and a solid 'moon' lit, however system fans are still going. The proprietary nvidia module is to blame. On gentoo, appending "NVreg_Mobile=3" to the 'option' line in /etc/modules.d/nvidia fixed the issue for me. On other distros, look in your module autoloading conf file

Troubles on resume

Blank display on resume
When resuming from a suspend-to-ram the display might remain black (on X60) or might only show the pre-suspend output (the system is still rebootable via ctrlaltdel). See Problem with display remaining black after resume for solutions. See also System hang on resume on this page - which may be potentially mismatched with this one.
No mouse cursor on resume
When resuming from a suspend-to-ram your X cursor might be invisible(on X40) when using /sys/power/state directly to suspend, they way to fix this is to rerun the post bios code after returning for suspending.
# FGCONSOLE=`fgconsole\`
# chvt 1 && echo -n mem >/sys/power/state
# vbetool post && chvt 7 && chvt $FGCONSOLE
Garbage on text consoles on resume
When resuming from suspend-to-ram the text console displays may show garbage instead of actual text. The machine is otherwise still responsive and X displays fine. If all of this is true, then adding the kernel option acpi_sleep=s3_bios,s3_mode in your menu.lst or lilo.conf may solve the problem.
Broken hardware support after resume
  • The serial port of the port replicator might not work after resume.
  • The parallel port might not work after resume. A possible fix is to unload and reload the parallel port drivers: # rmmod lp parport_pc parport; modprobe lp.
  • Problems with the CD-RW/DVD drive after wake up from ram have been experienced.
  • There is a known Problem regarding battery info after suspend to RAM. A small patch exists for kernels 2.6.14/2.6.15.
  • On X20 and X21 (and possibly other) models, the sleep LED is not reset properly on resume and will keep blinking. If you have the ibm-acpi kernel module loaded with the ibm-acpi.experimental=1 option, you can switch it off on resume by appending the following line to your suspend script: # echo 7 off > /proc/acpi/ibm/led
Crash on resume
  • When using older ATI proprietary drivers a crash on resume can be solved by using vbetool. See the example suspend script Problem with display remaining black after resume#Solution for ThinkPads with Intel I830 Chipset. This is no longer necessary with recent revisions of the ATI proprietary driver.
  • A crash could also be caused by having apic support enabled in the kernel config. Try disabling it (in the "Processor type and features" section).
  • On machines with Savage chipsets, the savagefb framebuffer driver might crash the machine on resume. Make sure it is disabled in your kernel config and use the standard vesafb driver instead.
  • SATA-based laptops utilize the libata layer for disk access which does not have fully-working power-management support before Linux kernel 2.6.16 (ata_piix) and 2.6.19 (ahci). Suspend to RAM crashes these machines on resume. See the relevant section on the Problems with SATA and Linux page.
  • Using HDAPS as a module causes a crash on resume with the Linux kernel 2.6.19 (possibly even earlier versions). This was observed on a X41. Try unloading the module before suspending.
  • Gnome-power-manager might be using the wrong backend. If you are able to suspend from the commandline with a certain method, make sure the others are not available so that g-p-m doesn't choose the wrong one. For example, if you suspend with # echo mem > /sys/power/state, make sure uswsusp and hibernate are uninstalled.
System hang on resume
System hangs immediately upon attempted resume if suspended with USB devices attached to dock. Try using the laptop's own USB ports instead. That fixed the problem for me. Details: https://bugs.launchpad.net/ubuntu/+bug/218760 --Dave abrahams 17:45, 28 April 2008 (CEST)
When system resumes it hangs right after restarting tasks. Strange thing is, that you may be even able to restart your ThinkPad using ctrlaltdel, but if you try to blindly exec a command, it will not work, (eg. touch FILE) so it's not only the problem of videocard. This may be fixed by passing ec_intr=0 on kernel cmdline. Affected models: T20, T21 (at least 2648-46U (T20),2647-8AG (T21)).
Note: this is resolved in kernel 2.6.20, there is no need to pass the ec_intr=0 bootparam anymore (moreover, you are discouraged to use it) See revelant kernel bug report
See also this bug report, I can confirm some strange problems on resume with Bluetooth enabled - my T61 may freeze in a couple of minutes after resuming. This problem is gone as soon as I disable Bluetooth (stop all bluetooth related services and `echo "disable" > /proc/acpi/ibm/bluetooth`).


Shutdown on resume
If your system immediately begins to shut down right after resume, make sure you don't have acpid running with the power button tied to shutdown. The system is simply sensing the power button event and shutting down. This issue has been reported as a bug against the kernel ACPI subsystem, refer to kernel.org bugzilla bug #6612.
Immediate suspend on resume
When running GNOME, sometimes gnome-power-manager will put the system back into suspend immediately after resuming. This is caused by a known bug in HAL that causes some ACPI events to be reported incorrectly after a suspend-to-ram. A simple workaround can be found here.
Note that suspend being triggered by unrelated ACPI events such as disconnecting the AC adapter may also be fixed by the above method.
Power Off when suspended laptop is docked
When T60p is suspended, docking laptop into Advanced Dock immediately turns off laptop and crescent moon sleep indicator LED. Pressing power button initiates cold boot. Also reported by multiple people on thinkpads.com.
SectorIdNotFound disk errors when laptop is resumed
The errors look like this:
Oct 14 17:35:02 cacharro kernel: hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 14 17:35:02 cacharro kernel: hda: dma_intr: error=0x10 { SectorIdNotFound }, LBAsect=115896900, sector=115896900
Oct 14 17:35:02 cacharro kernel: ide: failed opcode was: unknown
This happens when you have Hidden Protected Area (HPA) enabled on the hard drive. There is a kernel bug report with an unfinished patch to fix this. This is not fixed as of kernel 2.16.18. Adding libata.ignore_hpa=1 to the kernel command line might help.
Update: This is still occuring here on 2.6.26-1-686 on Debian, even though the bug has been marked as fixed in 2.6.22. I will try disabling the HPA to see if the problem is related... TheAnarcat 01:51, 20 October 2008 (CEST)
Resuming a second time does not work after successfully resuming once from suspend-to-ram (X200)

This happened to me on my X200: I could resume once, but on the second time, pressing the power button made the HD light flash briefly and then nothing happened anymore. The AC and standby lights stayed on and I had to shut the computer down by keeping the power button pressed. A workaround is to disable the Intel TXT feature in the BIOS. You can find it in the "Security" section.

This issue has been reported to http://bugzilla.kernel.org/show_bug.cgi?id=11963

Resuming a second time does not work after successfully resuming once from suspend-to-ram (T43)

My T43 showed the same symptoms recently. After the first (and successful) resume dmesg shows a warning at kernel/hrtimer.c:625 hres_timers_resume (2.6.29, Arch Linux). The second resume fails. The problem is caused by acpi_cpufreq. Unloading this module before, and reloading after, suspend fixes the problem.

The issues is tracked here: http://bugzilla.kernel.org/show_bug.cgi?id=13269