TuxOnIce. Revolutionise the way you start your computer.

Features

TuxOnIce's features include:

  • Image compression (LZF - very fast and highly recommended).
  • Full asynchronous I/O and readahead for synchronous I/O for maximum throughput.
  • Multithreaded compression & I/O.
  • Support for any number of swap partitions and/or files.
  • Support for using an ordinary file instead of swap.
  • The ability to cancel hibernating or restoring the image by pressing escape.
  • Support for saving a full image of your memory, resulting in a fast, responsive system after resuming.
  • The ability to specify a maximum image size.
  • Support for plugins: data transformers (compression, encryption) and new storage backends (NFS support is planned).
  • Works out of the box for most configurations.
  • Nice user interface (GenSplash compatible).
  • Scripting support.
  • Speed and reliability - TuxOnIce has been extensively tested in a variety of configurations over many years. It is not guaranteed to be perfect, but bugs found will be hunted and fixed quickly.
  • Can be configured to be a drop-in replacement for swsusp (for swap partitions - swap files are configured more simply with TuxOnIce).
  • Preliminary FUSE support.
  • (Work in progress:) Cluster support.

Suspend-to-disk implementations explained

Since the original Software Suspend code was written by Gabor Kuti and Pavel Machek back in 1998, four different implementations have been created for the 2.6 kernel, all forks of the same original codebase. Here is a quick comparison between the three that still exist. The first column refers to CONFIG_HIBERNATION in the 2.6 kernel. pmdisk has been merged back into the original "swsusp" implementation in the kernel, and hence is no longer listed here.  The second column is userspace swsusp, developed by Rafael Wysocki.The third refers to what is now commonly called "TuxOnIce" (previously Suspend2) and is what this site largely deals with.

                                                                                                                                                
NameswsuspuswsuspTuxOnIce
Available in kernel2.6.xsince 2.6.17patch against 2.6.x
Kernel config optionCONFIG_HIBERNATIONCONFIG_HIBERNATIONCONFIG_TUXONICE
Principle authorRafael WysockiRafael WysockiNigel Cunningham
PM subsystem requirednonenonenone
Telling kernel at boot where to save imageresume=/dev/[node]resume=<swap:|file:>/dev/[node]<:sector>
If file & swap allocators are both compiled in, swap is the default.
How to activate suspendecho disk > /sys/power/stateUserspace programecho > /sys/power/tuxonice/do_hibernate or echo disk > /sys/power/state if replacing swsusp is enabled.
Telling kernel not to try and resume in case of a problemnoresumenoresumenoresume
Architecture supporti386, ppc, x86_64, ia64i386, ppc, x86_64, ia64i386, ppc, x86_64, ia64
Max. Image size1/2 memory1/2 memorySee below
Highmem supportYesYesYes
Discontiguous memory supportYesYesYes
SMP supportYesYesYes
Preemption supportYesYesYes
CompressionNoYes, with librariesvia cryptoapi - LZF recommended
EncryptionNoWith librariesby writing to dm-crypt partition
Suspend-to-swapfile supportNoYes?Yes
Cancel hibernating via keyboardNoYesYes
Initrd/ramfs support (needed for LVM/dm-crypt)NoRequiredOptional
Suspend-to-multiple swap partitions/filesNoNoYes
Suspend-to-file supportNoNoYes
Modular supportNoNoYes
Wake alarm supportNoNoYes
Auto swapon when starting to hibernateNoNoYes
Easy location of resume= valuesNoNoYes
Reconfigure without rebootingNoNoYes
Full mem. accounting, leak detection, failure path testing.NoNoYes
Expected compression ratio to avoid freeing too much mem.NoNoYes
Scripting support.NoNoYes
Keep image mode (For kiosks).NoNoYes
Mark resume attempted (sane default if resuming fails).NoNoYes
Multithreaded I/ONoNoYes
Readahead.NoNoYes
Interactive debuggingNoNoYes
Cancel resuming via keyboardNoNoYes
Switch poweroff method while hibernatingNoNoYes
Checksummed imageNoNoYes
Unloadable modules when not in useNoNoYes
Fuse supportNoNoPreliminary
Cluster support.NoNoIn progress
Kexec support.NoNoBeing considered
Suspend-over-NFS supportNoNoNo (Planned)
UML supportNoNoNo
TuxOnIce saves the image in two parts. The first part consists of the pagecache, and is generally 70%+ of the memory in use. TuxOnIce saves this first, since it's not needed while saving the remainder. It then makes an atomic copy of the remainder, using the pages previously saved, and stores the atomic copy. Working in this way, TuxOnIce can normally save a full image of memory. Only if the page cache is smaller than 50% and there is no other free memory will TuxOnIce be unable to save a full image of memory.