Posted by Vince Wadhwani on Mar 27, 2006

I have been using Archlinux for quite a while now. The only lasting complaint I have had against it is the lack of working suspend/resume for my thinkpad X41. Recently, with the new 2.6.16 kernel that changed.

There are lots of great howto's for the thinkpad with linux so I will not rehash what's there. One thing that *is* missing, is how to get suspend/resume working on an Archlinux system.

So briefly, here it goes:

First of all, make sure your system is current and that you have the hibernate-scripts, acpid and, for good measure, acpi installed. apcid should be added to your /etc/rc.conf daemons section.

Next you'll need either a patched 2.6.15 kernel (try the kernel26archck package) or a 2.6.16 kernel. The important part about the kernel is that you will need to pass along some boot parameters. My /boot/grub/menu.lst section looks like this:

# (0) Arch Linux
title Arch Linux
root (hd0,2)
kernel /boot/vmlinuz26 root=/dev/sda3 ro console=tty1 resume2=swap:/dev/sda2 acpi_sleep=s3_bios,s3_mode
initrd /boot/initrd26.img

Note that I am calling swap /dev/sda2/ This may change depending on how you've set up your system. Run cfdisk as root to check your config.

The hibernate scripts are a bit tricky and this is what took me the longest to figure out. You must disable all the VBEoptions and you must set the disk cache option. It's probably easier if I just post my hibernate.conf file.. so here is!