Linux and ACPI on an IBM Thinkpad X40

Most Thinkpads work surprisingly well with ACPI under Linux. In order to get an X40 to behave itself, do the following:

  1. Go to and get the "Proposed patch" and "Use ACPI_NOT_ISR" patches. Apply these to a 2.6.7 kernel.
  2. Build a kernel without CONFIG_X86_UP_APIC, without any framebuffer support and with CONFIG_ACPI_BUTTON built as a module.
  3. Configure your boot loader so acpi_sleep=s3_bios is passed to the kernel.
  4. Set up a script in /etc/acpi to rmmod button, rmmod any other devices that don't deal with suspend/resume, echo -n 3 >/proc/acpi/sleep and then modprobe anything that was removed.
  5. Ensure that this is run whenever the sleep button is pressed.
  6. Marvel as it (usually) suspends when you press the sleep button and resumes when you press the power button.

My X40 seems to lose about 5% of charge for every 8 hours or so it's in S3 sleep. This seems fairly reasonable.

Matthew Garrett
Last modified: Sat Jul 24 11:48:03 BST 2004