Next: , Previous: SuspendNvidia, Up: Top


7 Suspend To Ram

###############################################
### BIG FAT WARNING BIG FAT WARNING BIG FAT ###
###############################################

severe file system corruption may occur which means: DANGER, DATA LOSS AHEAD.
Please back up important data before trying suspend to RAM. In my experience,
once you have found a setting that works, it is not dangerous at all, but
you should keep an eye open. Use at your own risk.

suspend to RAM with ACPI (S3) is still very experimental, but there are several machines that are known to work. There are several "hacks" that can be tried to actually get the machine to resume (suspend is usually not the problem, just the resume ;-)

Efforts to change this are going on, work is being done to implement a "whitelist" of machines that are known to support suspend to RAM and the needed workarounds (if any). This work is done in the "suspend" package http://sourceforge.net/projects/suspend and there in the "s2ram" binary. Support for s2ram is integrated into powersaved, it can be configured via configuration variables in /etc/powersave/sleep. On machines that are known to s2ram, no configuration should be necessary. On machines that are unknown to s2ram (check with sram -n as root), you need to set SUSPEND2RAM_FORCE=yes to override the detection, then configure the workarounds (if needed) with the variables described below:

First, there are several kernel parameters, that can be tried out. Just add them to your "kernel"-line in /boot/grub/menu.lst. More information about those can be found in /usr/src/linux/Documentation/power/video.txt.

You can try the following:

Also if it "just does not work", it may be a good idea to try with the kernel parameter "vga=normal", which will give you a simple text console during boot (sorry, no fancy graphics for this one). You need to remove the existing "vga=0x317" or similar from the kernel command line and add "vga=normal" instead. Only one "vga=..." should be present.
To make the whole thing a bit more "interesting", the vga=normal can (and probably has to) be combined with the acpi_sleep=... parameters from above.

The acpi_sleep parameter can also be set at runtime in /proc/sys/kernel/acpi_video_flags, or with the s2ram tool. In powersaved, the SUSPEND2RAM_ACPI_SLEEP variable sets this, see the comment in the configuration file for details.

Another possibility is to save and restore the VBE settings of the graphics card with the tool "vbetool". This is experimental and you should only use this if you know what you are doing. Example scripts for vbetool usage can be found in the contrib directory.

Using s2ram, VBE saving/restoring can be achieved with the SUSPEND2RAM_VBE_SAVE variable. VBE POST can be done with SUSPEND2RAM_VBE_POST. Again, see the comments in the config file for details.

In the (not too distant) past, often the advice was given to suspend from a runlevel without X, but due to recent improvements with various X server modules, this may not be the best advice anymore since in fact on some machines only the X server is capable of bringing the graphics card back correctly from suspend to RAM. On the Dell D600 for example, the display backlight stays off until the X server reinitializes the card.

There is a list of working machines and tricks how to get them work in the linux kernel Documentation. If the linux kernel sources are installed, the list can be found at /usr/src/linux/Documentation/power/video.txt.

If you find other machines that work with one of these (or if you cannot get machines mentioned here to work at all) feel free to contact us via the powersave-users mailinglist.