This post summarizes my experience of making the hardware in my shiny new IBM ThinkPad R52 work with Linux.

I initially tried Debian on this computer, but later on headed over to Ubuntu with a home-built kernel for a bunch of reasons on which I won’t elaborate here. Update: I’ve been back on Debian for a good while now.

The following remarks relate to Linux version, if not otherwise specified.

Serial ATA: Intel ICH6

The Debian Sarge installer, using the “kernel26” option, fails to recognize the hard disk. The default 2.4 kernel works ok.

After building my own kernel, using the Intel PIIX/ICH SATA support (SCSI_ATA_PIIX) driver worked fine for the hard disk, but the PATA DVD/CDRW/CDROM was not found. The first attempt was to compile support for PATA into the kernel as well (not just as a module), as the driver’s help states:

      This option enables support for ICH5 Serial ATA.
      If PATA support was enabled previously, this enables
      support for select Intel PIIX/ICH PATA host controllers.

However, this is only one part of the way there. The next part is to change

#undef ATA_ENABLE_ATAPI         /* define to enable ATAPI support */
#undef ATA_ENABLE_PATA          /* define to enable PATA support in some
                                 * low-level drivers */


#define ATA_ENABLE_ATAPI        /* define to enable ATAPI support */
#define ATA_ENABLE_PATA         /* define to enable PATA support in some
                                 * low-level drivers */

in include/linux/libata.h. I’m really puzzled why this is not on by default.

Update: In Kernel 2.6.14, this patch is no longer necessary (or possible, for that matter). Instead, append libata.atapi_enabled=1 to your boot command line.

Update: In Kernel 2.6.16, there is a bad interaction of early versions of suspend2 and libata, which prevents ATAPI devices from working. The fix is to upgrade suspend2.

Modem: A Conexant HCF WinModem

You need to buy the driver from Linuxant to actually make this work. The snd-intel8x0m module loads, but does not work, so the Smartlink modem daemon can’t work with this, at least not yet.

Graphics: Intel i915

Intel i915, supported out of the box by X.Org, using the stock DRI module for that card. Two things made life with this chip a lot better:

Section "Device"
    Identifier      "Intel Corporation Intel Default Card"
    Driver          "i810"
    BusID           "PCI:0:2:0"
    Option          "MonitorLayout" "CRT,LFP"

    VideoRam        65536
    Option          "DDC"   "false"

The VideoRam option makes the card use more main memory during 3D operation, which makes many GL applications lots faster, because there’s less texture thrashing going on.

The DDC option allowed me to use my NEC Multisync LCD 1860NX with the card; when the option was not specified, it refused to come up with anything higher than 640x480.

Update: I have recently gotten multihead to work, so that I am now using an LCD and the laptop panel side-by-side. Pretty wicked cool. I’ve attached a working xorg.conf.

Network: Broadcom Tigon3

Works great using the tg3 driver.

The only stumbling block is that Debian refuses to include this driver in its stock 2.6 kernels, since it has a builtin firmware blob. Nathanael Nerode, however, recently made a patch that splits this out into a separate file, which would allow distribution with Debian in the future.

Update: Debian seems to have come to its senses; the tg3 driver is back in the stock kernels as of 2.6.14, at least.

WLAN: Intel IPW2200BG

Theoretically supported through the ipw2200 driver, but this is really flaky right now. Early versions (0.19, IIRC) drop the connection every once in a while and need to be reloaded to work again. Newer versions (>1.0.4) are bitten by “Firmware error” messages, as detailed in this bug log. No solution as yet.

Update: Version 1.0.3 is reported working somewhere, but it apparently needs a patch to compile against I haven’t tried this yet.

Update: Version 1.0.0, as included in Kernel 2.6.14, works like a charm. Get firmware version 2.2 to go with it. Better yet, this version is also in the Debian stock kernels.

Sound: Intel AC‘97

No problems using the ALSA snd-intel8x0 driver.

Power management

SpeedStep and ACPI work out of the box with the appropriate drivers. Suspend-to-RAM works, just like -to-disk, even though currently, 3D (DRI, that is) can’t be used after wakeup.

Other things

The display is very bright, even a bit too bright for my taste. The keyboard is excellent, as is usual for IBM machines. The fan is louder than on my old ThinkPad A21m, but with the processing power of a Pentium-M running at 1.7 GHz, I am supposing that this was to be expected. I’m a bit concerned that the ACPI Thermal Zone 0 reports temperatures of 76 degrees Celsius under sustained peak load, which sounds a bit high. But then, the trip point is at 90 degrees, so I guess it’s fine.

Also, I’m currently trying to return the copy of Windows XP that came with the machine, and on the upside, my complaint has not yet been smacked down by Lenovo. So there is some hope. I’ll write a detailed report once this is over.

I’ll keep this report updated as I continue to tame the hardware. Martin Schwenke’s page on the T43, quoted above, was of great help in getting everything to run.


Suspend to Disk is straightforward, for Suspend to RAM to work you need one little non-obvious trick: specify acpi_sleep=s3_bios on the command line. Also make sure that vbetool does not mess with your video card (i.e. no repost, no state saving). Thanks to ThinkWiki for the hint.


I’m perfectly happy with the machine. :)