Userland support for suspend
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Copyright (C) 2005 Rafael J. Wysocki <rjw@sisk.pl>
Copyright (C) 2006 Pavel Machek <pavel@suse.cz>

This package contains some userland tools allowing you to suspend a Linux
system either to disk or to RAM.  These tools provide some capabilities
that are not available in the vanilla Linux kernel.

The suspend to disk can be carried out with the help of s2disk and resume
utilities which use the software suspend userland interface available in
the Linux kernel 2.6.17 or above.  Among other things, they provide the
following features:

- suspend image checksumming
- suspend image compression
- suspend image encryption
- (limited) support for splash screens and graphical progress meters

that are not provided by the in-kernel software suspend code (swsusp).
Please refer to the HOWTO document in this package for more information about
these utilities and installation instructions.

The s2ram tool allows you to suspend the system to RAM and restore the state
of the graphics adapter after the resume automatically.  For this purpose it
uses the code out of vbetool and radeontool utilities, needed for handling
quite a lot of graphics cards after the resume from RAM. The s2ram tool uses
three different methods to suspend the machine:

- KMS: s2ram try first suspend the machine using KMS (Kernel Mode Set) if the
  kernel supports it. With this method s2ram don't need extra parameters
  (quirks).
- Whitelist: s2ram has a whitelist of machines that are known to work with it.
  This whitelist includes the quirks to suspend known machines. The whitelist
  was used prior to suspend-utils version 1.0, and now the whitelist is not
  updated. The database is used because has a lot of machines included and
  many users are using it. Please refer to the document README.s2ram-whitelist
  in this package for more information about the s2ram whitelist.
- Configuration file: s2ram can use the configuration file to read the extra
  parameters (quirks). This option is useful if the kernel don't support KMS
  (for example, kernel compiled without support), if the machine is not
  included in the whitelist (for example, new machines) or if the user wants
  to override the quirks of the whitelist file.

The flow of options is:

1. If the kernel supports KMS, then use it. This option can be overriding
   using the argument "-k" in s2ram (s2ram -k).
2. If the kernel don't support KMS, or the user override it, then s2ram
   checks if the configuration file has the parameters. If the parameters
   are included, s2ram use them, else, the whitelist is used.

You need libx86 installed to build s2ram, the HOWTO document explains how to
install it.

The s2both tool combines the functionalities of s2disk and s2ram.  With the
help of it the system may be suspended to RAM after the suspend-to-disk
image has been created instead of being powered off.  Then, if there's enough
battery power, you can resume from RAM and discard the saved image, or you
can resume the system from disk using the resume tool otherwise  However, this
is only possible if your box is present in the s2ram whitelist.

To build the s2ram and s2both tools you will need the pciutils-devel
(pciutils-dev) package and the libx86-dev package (which you can get from 
http://www.codon.org.uk/~mjg59/libx86/downloads/). They are necessary to 
compile the vbetool code (the vbetool code is based on vbetool-1.0 from 
http://www.codon.org.uk/~mjg59/vbetool/). With newer pciutils (2.2.4 and
above) you also have to install the zlib development package (zlib-devel on
SUSE, zlib1g-dev on Debian).

For debugging, see http://suspend.sf.net/s2ram-support.html.

acpi-support package from Ubuntu has *very* long whitelist of machines: 
http://packages.ubuntu.org.cn/dapper/admin/acpi-support that are likely to
work with s2ram.

To compile this beast from CVS, do:

./autogen.sh
./configure
make
