How-to use hibernation on the eee without having to create a swap partition.
First, create a swap file:
dd if=/dev/zero of=/swap bs=1024k count=256
256MB for the 512MB eeePC.Add this to /etc/fstab:
/swap swap swap defaults 0 0
Now stop the kernel from using the swap file for swapping:
sysctl -w vm.swappiness=1
Edit the last line of /etc/sysctl.conf so it sticks:
Activate the swap file:
Now use µswsusp which is an alternate suspend method for the linux kernel that can use a swap file instead of a swap partition and also support other neat features like compression and encryption.
aptitude install uswsusp
Don't forget to add yourself to the powerdev group and enable memory compression.
Typically a uswsusp.conf file looks like this:
# /etc/uswsusp.conf(8) -- Configuration file for s2disk/s2both
resume device = /dev/sda1
compress = y
early writeout = y
image size = 238941634
RSA key file = /etc/uswsusp.key
shutdown method = platform
resume offset = 8288
The "resume offset = 8288" is here to tell where the swapfile is located.
To test it:
This will write the content of the RAM to the swap file and shutdown the eee. Press the power button on the eee to wake it up. To enable this method as the default system for hibernation, edit /usr/lib/hal/linux/scripts/hal-system-power-hibernate . There is a bug in this script and it will look for s2disk in the wrong place, you willll have to edit it so it looks like this:
This script is in the HAL package, which means it will break if HAL is updated. If hibernate doesn't work after an update, you will have to re-edit /usr/lib/hal/linux/scripts/hal-system-power-hibernate . A good idea would be to make a backup of the file for quick re-insertion after an update breakage.
Caveats. -- The console is apparently broken. More on this later. To-Do -- Create the swapfile at the moment of hibernation - and delete (optionally) after resuming.