my thinkpad x31

thinkpad

I own four thinkpads, an X40, an R40 and two X31 (of which I broke one). They are quite cheap (+/- 100E, +/- 4 years ago) and very reliable. All of them run either Debian or Ubuntu.

installing debian squeeze on my X31 (model 2673PBG)

Installing Squeeze wasn't as easy as installing Lenny. The main problem was getting hibernation to work.

install disc

The installation process (both graphical and non-graphical) freezes after trying to get a network connection. The problem was that the wireless device needs some non-free firmware (which is of course not included in the install image) and then afterwards a bug exposed that it couldn't reach the install-cd anymore (problems with fat fs or something). After disabling the wireless device in BIOS, it worked and it proceeded to use the wired ethernet device. After installing I could turn on the wireless device again.

wireless

Getting wireless to work is easy (and similar to Lenny):

.Xmodmap

I do not know why, but my .Xmodmap is not automatically loaded, which is the case under Lenny. So I now explicitly load it at the startup of my window-manager / desktop (whatever it is called).

hibernation

Now the big problem. Under Lenny, hibernation worked "out-of-the-box". Under Squeeze it doesn't and while duckduckgoing (okay: googling) it seems I'm not the only one having this problem after installing squeeze.

symptoms

For me, the symptoms were as follows. After giving the hibernation command (either using pm-hibernate, or the hibernate script from the hibernate package) it seems to switch off some devices including the screen. After a second the backlight of the screen switches on again, but the screen is black. The keyboard does not respond anymore, except some of the special thinkpad buttons (think-light, screen-brightness). I do not see the harddisk light burning, so it seems nothing was written to disc. After doing a hard reboot the system startups normally.

failed attempts

(dirty) fix

I found out that on Lenny I used uswsusp (user space suspend) and that this package was not available on squeeze because of stability problems. So, I went ahead and installed uswsusp from Debian testing (Wheezy). Look here how to do this. Unfortunately this package depends on the new libc6 package from testing which creates a (small) avalanche of testing-packages that need to be installed. Nevertheless, afterwards hibernation works as expected (by calling s2disk). Strange enough, pm-hibernate now also started to work, but with less feedback than s2disk. Probably, it uses uswsusp, but suppresses some of the output.

thinkpad buttons

Some of the special thinkpad buttons are working (soundvolume, thinklight, screenbrightness), but some are not. The wifi and hibernation button, which I use often, are not working.

I added a file /etc/acpi/events/thinkpad-hibernate with:


  # had to add this myself based on the
  # the thinkpad-mute file and running think_listen
  event=button/suspend SUSP 00000080 00000000
  action=/usr/sbin/s2disk

  # this event does not work:
  #event=ibm/hotkey HKEY 00000080 0000100c
  
This makes the hibernation button work.

thinkwiki

Hmm, I wanted to put a link to this page on thinkwiki. But this great site seems to be dying. It seems to be impossible to register for over a year now. Perhaps somebody should help out or else fork the site...