Getting APM suspend/resume to work on my old laptop was something of a black art, but once I'd managed to fix all the niggles it worked pretty much flawlessly and has done ever since (there seems to be a strange race condition in the X server which once every few months causes it to abort when the machine wakes up but that's pretty much it).
While experimenting with Fedora Core 2 on the new laptop before I packaged it up to be sent back I discovered some things.
- The kernel is compiled with ACPI support, which gives you lots of interesting information about the battery, but
- typing `apm -s' just complains that the kernel doesn't have APM support, and pressing the laptop's suspend function key or closing the lid doesn't have any effect at all.
- There's no obvious user-space utility to perform an ACPI suspend; however,
- if you search in the right places you discover that the kernel does have (experimental) support for it - in fact there are two implementations, one using the /sys filesystem and one using the /proc filesystem.
- Unfortunately it seems to be a bit flakey. Going to standby mode seems to more-or-less crash the machine (it gives some interesting effects on the LCD panel); suspending to RAM did work once but left one of the processes in an uninterruptable state.
- If you disable ACPI with the appropriate boot parameter then, lo and behold, APM works again. Unfortunately,
- the Fedora kernel is built with APM_ALLOW_INTS=n which is known to make ThinkPads hang on wake-up.