Linux On The IBM Thinkpad A31
(model 2652-XXJ)

Prelude

I replaced my old IBM Thinkpad 760LD with a nearly new A31, model 2652-XXJ. Upon reciept I immediately wiped Windows XP from the hard drive and loaded RedHat Linux 9. This install went pretty well and everything worked the first time except the built-in Winmodem. I have since played around with it a bit and tweaked the kernel configuration. What follows is some of the historical knowledge gained. Although this information is from my particular model A31, it should be broad enough to cover most any A31 model.

NOTE: Since this was written, I have switched to a minimal Mythbuntu/Xubuntu based distro. I am leaving this page up for historical reference.

Hardware

The A31 is a dreadnought. It's big and heavy; basically a desktop replacement. With two bays for anything from a basic floppy drive all the way up to a second hard drive, these notebooks are capable of fitting almost any personal computing need.

My particular machine contains the following hardware:

Some of the more esoteric information from the output of the lscpi command:

   00:00.0 Host bridge: Intel Corp. 82845 845 (Brookdale) Chipset Host Bridge (rev 04)
   00:01.0 PCI bridge: Intel Corp. 82845 845 (Brookdale) Chipset AGP Bridge (rev 04)
   00:1d.0 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #1) (rev 02)
   00:1d.1 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #2) (rev 02)
   00:1d.2 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #3) (rev 02)
   00:1e.0 PCI bridge: Intel Corp. 82801BAM/CAM PCI Bridge (rev 42)
   00:1f.0 ISA bridge: Intel Corp. 82801CAM ISA Bridge (LPC) (rev 02)
   00:1f.1 IDE interface: Intel Corp. 82801CAM IDE U100 (rev 02)
   00:1f.3 SMBus: Intel Corp. 82801CA/CAM SMBus (rev 02)
   00:1f.5 Multimedia audio controller: Intel Corp. 82801CA/CAM AC'97 Audio (rev 02)
   00:1f.6 Modem: Intel Corp. 82801CA/CAM AC'97 Modem (rev 02)
   01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility M7 LW [Radeon Mobility 7500]
   02:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 80)
   02:00.1 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 80)
   02:03.0 PCI bridge: Texas Instruments PCI2032 PCI Docking Bridge
   02:08.0 Ethernet controller: Intel Corp. 82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (rev 42)
   09:01.0 IDE interface: CMD Technology Inc PCI0648 (rev 01)
   09:02.0 CardBus bridge: Texas Instruments PCI1420
   09:02.1 CardBus bridge: Texas Instruments PCI1420


Loading Linux

Loading Linux on the A31 is fairly easy. These machines boot off pretty much anything so you shouldn't have any problems getting an installer to run. Before starting insert any PCMCIA cards such as modems or NICs. This will ensure they are installed correctly.

Once you get the install started it is safe t use the GUI installer. The A31 has no problem handling this.

There is nothing special that needs to be done during the install. Everything should load without trouble.


Getting X Running

The ATI Radeon Mobility 7500 is supported by the version of X that comes with RedHat 9 (4.3.0). The config file for this card is in my Thinkpad XFree86 Config File Repository.

There should be no problem with other A31 models. A check with the XFree86 resources pages should answer any questions you have about your graphics chipset.


Other Hardware

As stated above, all of the hardware in the A31 except the modem should be detected and configured properly at install time.

IBM does have a Linux driver for the Agere modem and it was available at this fairly hidden page at IBM as I write this. I downloaded the standard Agere driver package with partial source. It's partial source because one requirement for the driver is that you have the kernel source installed as it uses parts of this to build the driver. Installing is rather easy; follow the first two steps in the readme.txt file. The modem installed as /dev/ttyS14 for some odd reason. However, it's been working fine since.


CPUFreq and the A31

The Intel P4M in the A31 supports Intel's SpeedStep technology. If you are not familiar with this, it is a method of increasing battery life by running the CPU at slower speeds. This only occurs when the unit is not plugged into an external power source via its A/C adapter. Until very recently, SpeedStep was not supported under Linux. Therefore, even though my A31 was a 1.6Ghz machine, Linux was treating it as a 1.1GHz machine. This was evident when I looked a /proc/cpuinfo (issue the following command at a root prompt: cat /proc/cpuinfo). Two lines were of interest in the output:
	model name      : Intel(R) Pentium(R) 4 Mobile CPU 1.60GHz
	cpu MHz         : 1199.012

To remedy this, you must implement CPU Frequency Scaling. This is done via a driver/utility called cpufreq. cpufreq has been rolled into the 2.6 kernel but is only available as a patch for the 2.4.x kernels. To install cpufreq, do the following:

For more information on cpufreq, see the cpufreq-old file in <path to cpufreq source>/linux/Documentation. There really isn't much in the way of "how-to's" out there so this will have to do for now. However, you might want to hunt down cpufreqd on Sourceforge and install it afterwards. Makes managing cpufreq a lot easier.

For anyone interested, this is my kernel .config file. Note that it does have the cpufreq patch. Skip that portion if you don't.


Some Helpful Links

If you have any comments or suggestions, please e-mail me.


Back to Linux Page