Linux on an IBM Thinkpad R32

Version 0.3, 16.03.2003

This is just a short summary of my first experiences I made trying to install Linux on my new IBM Thinkpad R32. Not everything is working yet but I managed to get it up and running. I plan to update this page whenever I manage to get more things working.

For more information on running various versions of linux on your laptop you could also have a look at

Technical details

Starting Point

The laptop came with Windows XP preinstalled (recovery-edition). Recovery medium was a hidden FAT partition. I don't want to use Windows, so I booted the machine from a SuSE 7.3 DVD and used parted to resize the partition where WinXP was installed to create free space for the linux installation. I made sure I didn't touch the hidden partition as I might want to see what WinXP is like later.


For the installation I didn't want to use SuSE. I rebooted and started the installation with Debian GNU/Linux 3.0. The only small problem there was that cfdisk refused to create partitions as /dev/hda2 was physically the last partition on the disk. I managed to get around this by using fdisk, hoping that the system would boot with this. Everything else was just straightforward, after the minimal system I installed everything from my local mirror through the ethernet card using the eepro100 kernel-module.


Getting XFree up and running was slightly more complicated. I didn't want to upgrade to testing or even unstable but could not find XFree86-4.2 as deb for stable. Instead I downloaded the source package from testing and recompiled it. After the installation with apt-get from my local archive everything worked right away. The trackpoint is accessed as a simple ps/2 mouse and all the buttons work.

External vga works out of the box. There's no need to plug in the external monitor before booting the machine. Just plug it in and use Fn+F7 to cycle through display on external monitor, external + internal and internal monitor only.

To watch DVDs I use the TV-out to connect a normal TV. Only drawback here is, I cannot activate TV-out and internal LCD simultanously. But using atitvout -f t to redirect the display to the TV and atitvout -f l to enable the internal LCD again works like a charm.


Enabling the sound was once again easy, just loading the right module (modprobe i810_audio) was enough. Now I just had to press one of the speaker related buttons on the keyboard to unmute the sound and I could enjoy my ogg-files. In order to control the sound volume with the volume buttons on the keyboard, ie not only mute/unmute, I installed the program tpb. (Available as debian-package in stable.)


For the keyboard I haven't done anything except running tpb for the volume buttons. For me the Fn-key seems to work just fine, the thinklight can be switched on and off, brightness control, button for suspend, turning the display off and on are all working... With tpb running even the Thinkpad-button has some effect, I still have to configure that one though.


The integrated ethernet adaptor works using eepro100 driver from the standard kernel sources. Although I sometimes got a kernel Oops when trying to enable/disable the network. At the moment I'm using the driver from Intel (e100.o) and I have encountered no problems so far.

For the wireless lan there is a driver that seems to be working fine with the card (orinoco_pci). With the version included in kernel 2.4.20 the connection failed as soon as I started to transfer some data. This problem was solved with a newer version of the drivers from (Version 0.13e).


With APM it is possible to suspend the system to memory and resume successfully. The only catch is the network, it hangs after resume and has to be restarted. This used to be a problem with the kernel driver as occasionally I would get a kernel Oops. With the driver from Intel I had no problems, the network has still to be restarted, but no Oops. (Actually I stop the network before the suspend and start it after resume, using the apmd.)

In the recent stable kernels (2.4.19/2.4.20) there appeared a problem with apm and the harddisk with DMA enabled. The disk doesn't come back from suspend. My workaround here is to disable DMA for the disk before suspending the system. And of course enable after resume.

I haven't tried to use ACPI yet as I need to patch the kernel to get better support of the SpeedStep feature.


Using the driver for the infrared port, that comes with the standard kernel, I was able to access a friends mobile phone (a nokia 6210) using gnokii. The version from debian woody (0.3.5) does not support this phone but with gnokii 0.4.3 I could read the battery status of the phone immediately. For now this is good enough for me.


As Christian Tardif has sent me an email stating that he managed to get the modem working on his thinkpad, I tried it on my machine. With version 2.7.10 of the driver from   I managed to both to establish a ppp connection and to send a fax. It takes 30-60 seconds to get a dial tone and I get the following message but it works anyway.

      This driver is not compatible with the installed modem codec.
      Please contact your modem provider for support.

Others have reported that version 2.7.14 does not work, ie they are not getting a dial tone at all.

So the modem is working as well, even though it is indeed a Winmodem.


These things I haven't tested yet, because I don't need them yet. The rest shouldn't be to much of a problem, but I'm not taking anything for granted. I'll try them anyway once I've got some spare time, just because I'm curious.

Hardware details

Anyone who's interested can find the output of various commands (like lspci) here. This page is generated with lanoche.


This document has nothing to do with IBM, they don't even know it exists. There is no guarantee that the information on this page is accurate, please don't hold me responsible if your experience is different from the information here.

Any feedback/corrections/improvements regarding this page are highly welcome. Please feel free to use my gpg-key.

Valid HTML 4.01! Best viewed with AnyBrowser! Page last modified $Date: 2004/05/02 16:04:16 $