more than one way to sleep a laptop¶
There are three ways to make a laptop sleepy. Suspend was first, so is in the main kernel trunk, suspend2 is better but can’t get in the kernel. There is a feud between the authors. Although is seems most users greatly prefer suspend2 when they try it out (‘it just works’), it may never make it into the kernel.
- suspend (aka swsusp): the default in debian and ubuntu.
- µswsusp: a refactoring of swsusp to be more userspace. Works in many situations where swsusp does not. Now supports encryption and compression for hibernation.
- TuxOnIce (was suspend2): more features, compresses the save image, supports splashscreen, works with more hardware, supports encryption. Unfortunately, requires patching kernel. www.tuxonice.net
Here is a great comparison table.
related packages:
- acpi-support (/etc/acpi): Scripts for acpi events, such as lid closure, gain of power, etc. Also, hibernate.sh and sleep.sh scripts.
- hibernate (/etc/hibernate/): An alternative to acpi scripts. The hibernate script helps you in putting your computer to sleep, using one of the various methods available in the kernel (tuxonice, swsusp, µswsusp).
- powersaved (/etc/powersave/): Provides battery, temperature, ac, cpufreq (SpeedStep, Powernow!) control and monitoring. Proper suspend to disk/ram and standby by shell hooks that are easy to extend. APM and ACPI machines are supported equally. For laptops as well as for workstations.
- uswsusp: Userspace command line tools for µswsusp (s2ram, s2disk, suspend-keygen). These are used instead of /sys/power/state
TuxOnIce¶
feisty kernels patched for TuxOnIce:
download.tuxfamily.org/3v1deb/dists/fei...
codetitle. kernel options
initrd_suspend_mode=suspend2
resume2=/dev/hda3
µswsusp¶
blog.paulbetts.org/index.php/2007/02/11.../
codetitle. kernel options
initrd_suspend_mode=uswsusp
resume=/dev/hda3
getting it working with gnome¶
When Gnome wants to hibernate or sleep it passes off the job to HAL. HAL will execute the script /usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux
(or hal-system-power-suspend-linux
, depending on which action was taken)
The script hal-system-power-hibernate-linux
tries to find a library to perform the actual sleeping. It searches in this order, using the first one it finds:
/usr/sbin/pm-suspend |
(does not exist in debian) |
/usr/bin/powersave |
(package powersaved) |
/usr/sbin/hibernate -F/etc/hibernate/ram.conf |
(package hibernate) |
/etc/acpi/sleep.sh |
(package acpi-support) |
/usr/sbin/s2ram |
(package uswsusp) |
/usr/sbin/pmi |
(package powermangement-interface) |
echo "mem" > /sys/power/state |
(fallback) |
So, if you want uswsusp to work, you need to make sure none of the others are installed. Unfortunately, you can’t removed powermanagement-interface because this will remove gnome. Instead, you can divert the pmi script so that it can’t find it:
sudo dpkg-divert --rename --divert /usr/sbin/pmi-disabled /usr/sbin/pmi
This will rename pmi to pmi-disabled, even after you update the powermanagement-interface package. To remove the diversion, run this:
sudo dpkg-divert --rename --remove /usr/sbin/pmi
encryption and hibernation¶
If your swap is encrypted using /dev/random as the key, then you will not be able to hibernate normally. When the computer boots next, the key will be different and the image you have saved of the previous state will be garbled.
How to get around this?
- disable swap: often a bad idea.
- don’t use /dev/random:
- loop-aes with suspend2: wiki.tuxonice.net/EncryptedSwapAndRoot
- Howto: Completly encrypted harddisk including the suspend to disk partition with Ubuntu 6.10 Edgy Eft
laptop mode tools¶
The laptop-mode-tools package can be used to spin down the hard drive during periods of inactivity.
apt-get install laptop-mode-tools
Then edit /etc/laptop-mode/laptop-mode.conf
.
further reading¶
Improved ways to suspend and hibernate a laptop under Linux
Install suspend2 on debian
HOWTO: Suspend2 in Breezy