Problems with ACPI suspend-to-ram

From ThinkWiki
Revision as of 13:22, 12 January 2007 by Alexice (Talk | contribs)

Jump to: navigation, search

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

Troubles on suspend

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.
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.
Built-in MMC reader
If you have an MMC reader, and the computer hangs when attempting suspend then remove sdhci, mmc_block, and mmc_core modules before suspending.
Could not power down device <NULL>
error -22:If you have the acpi_cpufreq kernel module loaded, this prevents suspension.

Troubles on resume

Blank display on resume
When resuming from a suspend-to-ram the display might remain black 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.
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 T41. Try unloading the module before suspending.
System hang on resume
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: T21 (at least 2647-8AG)
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 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
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.