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.

Hello,

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 ;-)

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: acpi_sleep=s3_bios calls the video BIOS during resume to initialize the video card. acpi_sleep=s3_mode calls the video BIOS during resume to reset the text mode. acpi_sleep=s3_bios,s3_mode combines the above.

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.

Another possibility is to save and restore the VBE settings of the graphics card with the tool "vbetool". This is very 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.

A grub entry with those settings could look like this:

title SUSE LINUX 9.3 kernel (hd0,1)/boot/vmlinuz root=/dev/hda3 selinux=0 splash=silent resume=/dev/hda2 showopts vga=normal acpi_sleep=s3_bios initrd (hd0,1)/initrd

Note that i put the changed options after the "showopts" keyword, so i can easily see (and change) them at the boot prompt.

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.

The machines listed below are reported to be working or tested by us, they often need one of the "tricks" listed above which is noted along with them. As those machines are often available in different "generations" i tried to describe them a little closer with the information available from lspci or dmidecode, such as an exact model number or the exact type of the graphics card. If you have a similar graphics card, you might get by with the same "trick".

Machine specific "tricks":

Often, the "acpi_sleep=s3_mode" is not strictly necessary since the X server will reset the text mode also, so it is sometimes more a "correctness issue" than a really needed fix.

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 suse-laptop mailinglist or directly.

Good luck and

Have a lot of fun... :-)

Stefan Seyfried (seife@suse.de)