The goal of the project is to create a tool that can handle the so called "suspend-to-both". Suspend to both means that prior putting the system in STR (suspend to ram) a snapshot of the running system is taken and stored on disk (as suspend to disk); if for any reason (e.g. battery depleted) the state store in the RAM is lost the user can resume from the disk without loosing data.
Currenty suspend-to-ram and suspend-to-disk are handled by two different program, s2ram and s2disk.
s2ram is a wrapper around the kernel's suspend-to-RAM mechanism allowing the user to perform some graphics adapter manipulations from the user land before suspending and after resuming that may help to bring the graphics (and the entire system) back to life after the resume. Incorporates the functionality of vbetool and radeontool as well as some tricks of its own. Includes a list of working hardware configurations along with the appropriate sets of operations to be performed to resume them successfully.
s2disk is the reference implementation of the userspace software suspend (µswsusp); it coordinates the steps necessary to suspend the system (such as freezing the processes, preparing the swap space, etc.) and handles image writing and reading. s2disk already supports compression and encryption of the image and other features (e.g. a nice progress bar, saving the image on a remote disk, playing tetris while resuming, etc.) can be easily added.
s2both combines the funtionalities of s2ram and s2disk and it's very useful when the battery is almost depleted. s2both write system snapshot to the swap (just like s2disk) but then put the machine into STR (just like s2ram). If the battery has enough power left you can quickly resume from STR, otherwise you can still resume from disk without loosing your work.
You can find latest release, CVS instructions, and mailing lists on the SourceForge project page.