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.
Name | swsusp | uswsusp | TuxOnIce |
Available in kernel | 2.6.x | since 2.6.17 | patch against 2.6.x |
Kernel config option | CONFIG_HIBERNATION | CONFIG_HIBERNATION | CONFIG_TUXONICE |
Principle author | Rafael Wysocki | Rafael Wysocki | Nigel Cunningham |
PM subsystem required | none | none | none |
Telling kernel at boot where to save image | resume=/dev/[node] | resume=<swap:|file:>/dev/[node]<:sector> If file & swap allocators are both compiled in, swap is the default. | |
How to activate suspend | echo disk > /sys/power/state | Userspace program | echo > /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 problem | noresume | noresume | noresume |
Architecture support | i386, ppc, x86_64, ia64 | i386, ppc, x86_64, ia64 | i386, ppc, x86_64, ia64 |
Max. Image size | 1/2 memory | 1/2 memory | See below |
Highmem support | Yes | Yes | Yes |
Discontiguous memory support | Yes | Yes | Yes |
SMP support | Yes | Yes | Yes |
Preemption support | Yes | Yes | Yes |
Compression | No | Yes, with libraries | via cryptoapi - LZF recommended |
Encryption | No | With libraries | by writing to dm-crypt partition |
Suspend-to-swapfile support | No | Yes? | Yes |
Cancel hibernating via keyboard | No | Yes | Yes |
Initrd/ramfs support (needed for LVM/dm-crypt) | No | Required | Optional |
Suspend-to-multiple swap partitions/files | No | No | Yes |
Suspend-to-file support | No | No | Yes |
Modular support | No | No | Yes |
Wake alarm support | No | No | Yes |
Auto swapon when starting to hibernate | No | No | Yes |
Easy location of resume= values | No | No | Yes |
Reconfigure without rebooting | No | No | Yes |
Full mem. accounting, leak detection, failure path testing. | No | No | Yes |
Expected compression ratio to avoid freeing too much mem. | No | No | Yes |
Scripting support. | No | No | Yes |
Keep image mode (For kiosks). | No | No | Yes |
Mark resume attempted (sane default if resuming fails). | No | No | Yes |
Multithreaded I/O | No | No | Yes |
Readahead. | No | No | Yes |
Interactive debugging | No | No | Yes |
Cancel resuming via keyboard | No | No | Yes |
Switch poweroff method while hibernating | No | No | Yes |
Checksummed image | No | No | Yes |
Unloadable modules when not in use | No | No | Yes |
Fuse support | No | No | Preliminary |
Cluster support. | No | No | In progress |
Kexec support. | No | No | Being considered |
Suspend-over-NFS support | No | No | No (Planned) |
UML support | No | No | No |