Installing Debian 4.0 (Etch) on a ThinkPad T42

From ThinkWiki
Revision as of 19:13, 11 July 2007 by Petermartin (Talk | contribs) (Etch on a ThinkPad T42)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

The machine

Got a used T42 from craigslist:

  • Intel Pentium M 1.70GHz
  • 500M RAM
  • Fujitsu MHT 2040AH HD (35G)
  • 1024x768 LCD panel
  • ATI Mobility Radeon 7500
  • Intel PRO/Wireless 2200BG
  • BIOS version 3.23


I installed Debian Etch 4.0r0 from the netinst CD image (July 6, 2007 version). I had to do the install over ethernet, as the wireless driver needs some extra work(see below). It went very smoothly -- only had two answer two questions:

  • uswsusp didn't find active swap partition -> I told it not to continue, and did # aptitude reinstall uswsusp after installation and it worked fine.
  • GRUB install in MBR? -> yes.

Post-install, gnome automatically popped up an kernel update, which applied fine.

... and with this, most everything works! This is *much* easier than it used to be. There were enough remaining issues to consume some hours, though:


Note that different T42 models have different wireless cards -- but mine, the Intel PRO/Wireless 2200BG need the ipw2200 driver, and the associated firmware. So:

   # aptitude install ipw2200-modules-2.6-686

Then I downloaded version 3.0 of the firmware from and copied it to /lib/firmware -- crossing my fingers a bit, since nowhere could I find confirmation that the ipw2200 driver included in ipw2200-modules-2.6-686 is version 1.1.1 or newer.

NetworkManager, installed by default, is taking care of everything just fine. I added two files to make it work with sleep and hibernate:

in /etc/acpi/suspend.d/

   /etc/dbus-1/event.d/25NetworkManager stop

and in /etc/acpi/suspend.d/

   /etc/dbus-1/event.d/25NetworkManager start
although I haven't tested if creating these files is necessary. You could try without.

Sleep and Hibernate

Immediately post-install, including reinstalling uswsusp, both sleep and hibernate worked fine from the command line. As for the special buttons, sleep (Fn-F4) worked fine, but hibernate (Fn-F12) didn't do anything. So, this is what I did, hope it helps. First, installed tpb:

  # aptitude install tpb

... at which point neither sleep nor hibernate did anything. As others have found, this is because both /etc/acpi/events/ibm-sleepbtn and /etc/acpi/events/ibm-hibernatebtn use acpi_fakekey, which isn't set up to do anything. The easy fix is to change /etc/acpi/events/ibm-sleepbtn to:

   event=ibm/hotkey HKEY 00000080 00001004
   action=/etc/acpi/ force

and to change /etc/acpi/events/ibm-hibernatebtn to:

   event=ibm/hotkey HKEY 00000080 00001004

The *force* option in ibm-sleepbtn is necessary on my distribution because otherwise the sleep script defers to gnome-power-manager, and does nothing.

Now the sleep button worked, and the hibernate button did something -- it induced a kernel panic. After some investigation, it turned out that this was coming from the modules-unload script in /etc/acpi/suspend.d -- and, indeed, if I do # modprobe -r e1000, the machine *freezes*. Indeed, {path|/etc/acpi/suspend.d/}} tries to unload e1000 and ipw2200, *even if they are added to MODULES_WHITELIST in /etc/default/acpi-support*.
Help needed
Any ideas why WHITELIST doesn't work?
The best thing to do about this would be to compile a new kernel with the newest version of e1000...}} but instead, I just turned off the modules-unload script, since everything seems to work fine without unloading any modules, by doing this:
   # mv /etc/acpi/suspend.d/ /etc/acpi/suspend.d/

Now the suspend and sleep hotkeys work, and everything seems to continue fine, afterwards.

The CRT/LCD hotkey and a Projector

Initially, the Fn-F7 key did nothing -- and neither did # echo -n 'video_switch' > /proc/acpi/ibm/video. However, adding the line

   Option "BIOSHotkeys" "on"

to the Device section of /etc/X11/xorg.conf seems to have done the trick -- after a hard reboot. I need to use this for a bit longer, but it seems like it'll keep working.

To get a projector to work, all I had to do was to plug it in, then put it to sleep and have it come back. It still wouldn't play video, though -- the window where the video was playing would be blank on the projected screen. To fix this, I did the easiest thing, which was to add the line

   Option          "MonitorLayout" "LVDS,NONE"

also to the Device section of /etc/X11/xorg.conf.