Linux on the ThinkPad R40

Wake Forest faculty and students are issued new IBM ThinkPads on a two-year rotation. The model I had from 2003 till June 2005 was the R40.

Specs | Linux installation | XFree86 | Network card | Hard disk | Modem | Audio
CD writer | Wacom USB tablet | IBM resources | Other people's pages

Specifications

The WFU-issue Thinkpad R40 (2681 WF1) came with

Linux installation

If you want to preserve the Windows installation and create a dual-boot setup, I strongly recommend that you pause, read (not just here but also some of the other accounts referenced below), and think, before firing up fdisk -- perhaps even before booting the ThinkPad for the first time.

I've installed Linux on a couple of earlier ThinkPad models (the 390E and A21m) with little difficulty, but the R40 was trickier, since it came with Windows XP on an NTFS partition (as opposed to FAT32).

That said, I'll tell you what I did, though with hindsight I would have done things differently, using QTParted (available on Knoppix) or maybe even the commercial Partition Magic:

After doing this my disk partitions looked like this:

Disk /dev/hda: 240 heads, 63 sectors, 5168 cylinders
Units = cylinders of 15120 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hda1   *         1      3264  24675808+   7  HPFS/NTFS
/dev/hda2          3265      3364    756000   82  Linux swap
/dev/hda3          3365      5168  13638240   83  Linux

You'll notice that the Linux partition is smaller than the Windows one. That is not what I originally intended. My problem was that even after disabling virtual memory, etc., under Windows, and running the Windows disk defragmenter, ntfsresize didn't want to reduce the windows partition any more than shown above. Apparently the Windows defragmenter didn't do a good enough job, and I'd have been better off running a heavier-duty repartitioning tool. For now, though, 13GB is big enough for my Linux needs.

XFree86

XFree86 version 4.3.0 supports the ATI Radeon video (module "radeon"), and can drive the TFT display at 1024x768 resolution, with a color depth of 24 bits per pixel. Very nice. The only wrinkle is that the radeon DRM kernel module included with the Linux 2.4.21 source is not recent enough to cooperate properly with XFree86 4.3.0, so if you want to get hardware acceleration (direct rendering) you will need to install the current radeon kernel module available in source form from http://dri.sourceforge.net/. I've done this and it works very well: I can play Tuxracer on a ThinkPad for the first time!

Note that there's a fairly substantial manual page on the XFree radeon driver (man 4 radeon). This has useful info for customizing your XF86Config, particularly if you're hooking up an external monitor.

TrackPoint/Touchpad

The R40 features a dual pointing system: trackpoint plus "UltraNav" touchpad. If you just configure this in X as a PS/2 "mouse" both components work OK as two-button devices (with 3-button emulation). If you disable the touchpad in the BIOS setup, the middle button of the trackpoint works as a real third button.

Ben Pfaff describes a clever trick with gpm to get both 3-button operation and the touchpad. I tried it but found I didn't care for the way gpm handled the mouse. YMMV.

Page keys

There are a couple of special keys above the left and right arrow keys, which I gather are bound to Forward and Back in Internet Explorer under Windows. Using xev, I identified their keycodes as 233 and 234, and I put the following into my ~/.Xmodmap:

keycode 233 = Next_Virtual_Screen
keycode 234 = Prev_Virtual_Screen

Then in sawfish (the window manager I use) I bound these keys to page between workspaces.

Ethernet Adapter

The WFU R40 comes with an integrated ethernet controller, the Intel Pro 100+. You can drive this using either the module supplied with the linux kernel (I'm currently using kernel 2.4.21), namely e100.o, or a driver available from Intel. The latter is available in source form; you can find it on the Intel website by starting at

http://support.intel.com/support/network/adapter/pro100/pro100plus/index.htm

Follow the link "Software & Drivers" and select Linux from the drop-down list of operating systems.

Hard disk

From reading some of the other pages mentioned below, I gathered that, depending on the Linux version and configuration, there can be an issue with the speed of access to the hard disk on the R40. Specifically, if dma is not enabled for the drive, access will be much slower than need be (around 2.5 MB/sec as opposed to around 20 MB/sec). To see if dma is on, use the command

hdparm /dev/hda
If dma is on you'll see something like this:
/dev/hda:
 multcount    = 16 (on)
 IO_support   =  0 (default 16-bit)
 unmaskirq    =  0 (off)
 using_dma    =  1 (on)

If using_dma is off you can try turning it on by issuing this command (as root):

hdparm -d1 /dev/hda
If that works, you can either add this command to your boot scripts, or reconfigure your kernel to make it the default. If it doesn't work (you get an error message), you will have to update and/or reconfigure the kernel. The 2.4.21 kernel supports dma on the R40, if configured correctly. The relevant lines of my kernel configuration (well, I think these are the relevant lines) read thus:

CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
CONFIG_IDEDMA_PCI_AUTO=y
CONFIG_BLK_DEV_IDEDMA=y
CONFIG_BLK_DEV_PIIX=y
CONFIG_IDEDMA_AUTO=y
CONFIG_BLK_DEV_IDE_MODES=y

Modem

A "Lucent soft modem AMR". I haven't messed with this yet, but I hear it is usable. There is some relevant info here.

Audio

This is "SoundMax" (Intel 82801DB-ICH4 card, Analog Devices AD1981B chip). It works fine with either the OSS sound modules (supplied with the Linux 2.4 kernel series; the relevant module is i810_audio) or the ALSA sound driver (module snd-intel8x0). The ALSA kit comes packaged with 2.5 series kernels, but can also be installed (separately) on a 2.4 kernel setup.

CD Writer

By default, Linux recognizes this as an IDE CD drive. This is fine for reading from the drive, but if you want to use the writing feature you have to reconfigure the drive to use SCSI emulation. There is a HOWTO on this.

Wacom USB tablet

I bought myself a reconditioned Wacom Intuos 9x12 graphics tablet, USB version. It works fine with the ThinkPad. Here are details.

IBM resources

It's worth checking from time to time for BIOS updates and so on at IBM. Reasonably full technical specs from IBM are here.

Other R40 + Linux pages

Other people's pages I have found useful:

Also, Ben Pfaff's page for the (closely related) Thinkpad T30.


Allin Cottrell (cottrell@wfu.edu) July, 2003