Running Linux on an IBM ThinkPad 600E

Note: My ThinkPad 600E, serial number 78-KXNN2, was stolen in November 1999 while I was at home in Rhode Island, parked at a CompUSA for 15 minutes. It was in a nondescript looking backpack. Any help or suggestions on how to get it back are appreciated, but everyone be sure to keep an eye on yours!
-Ben Brillat


I purchased an IBM ThinkPad 600e, customized for RPI students. (Model 2645-RP1, which is actually a model 2645-4AU with more RAM and academic software.)

One of the reasons that I purchased this computer, other than it was a great deal, was that it happens to have a 3-button pointing device, making it perfect for running X-Windows.  I chose Linux.

Specifically, I chose RedHat Linux 6.0.  I recommend this distribution for this computer, it has lots of the features that laptop users will need.  I have since reinstalled and am now running RedHat Linux 6.1, but I had to install it from CD.

First, you will need to install Linux.  Get it on a CD, it's the easiest.  If you can't find it on a CD, then you should do an FTP install.  Only one problem.  Most RPI students received an IBM EtherJet CardBus card with their laptop.  The Linux drivers for this card were developed very recently, so if you want to do an FTP or other network-based install, you have to borrow a PCMCIA card from someone.  I recommend the 3Com cards, they generally work well.  (Note that Megahertz cards, while exactly the same on the inside as the 3Com versions, can't be used to install Linux because they aren't recognized by the installer).

After installing Linux, you'll have to customize it to run well on the ThinkPad, and that's what this page is about. Also, I wrote this page under the assumption that the average user will need to configure everything, so some of my packages expect to find the other packages (the pcmcia package needs the dhclient package, which are customized to work with the apm package.). So, you may have better luck if you do everything at the same time.

RAM, Hard Drive, & CD

An important note about the ThinkPad 600e is that Linux doesn't recognize all of the RAM. You need to tell it how much memory you have by changing /etc/lilo.conf to add the line:
append="mem=[size from startup screen]k"
For most RPI owners, who have 128 Megs of RAM, that line would be:
For all users, that number will be the number reported to you by the BIOS at system startup.
Additionally, you may want to be able to hot-swap your CD drive in the UltraSlimBay. To do this, you must add:
hdc=cdrom hdc=noprobe
To the append statement. So, my "append" line says:
append="mem=130496k hdc=cdrom hdc=noprobe"

RedHat suggests that you put the append line as the first line of your /etc/lilo.conf file. Rerun /sbin/lilo after making these changes.

Important BIOS Info:

I have heard from some users that the ThinkPad 600E does not detect the hard drive properly, particularly under certain BIOS revisions. I recently heard from someone at IBM regarding this problem. The official word is that BIOS revisions from 26 to 28 have issues detecting the drive geometry, and that the geometry on the sticker on the drive itself is also not necessarily correct. Therefore, IBM recommends one of the two following solutions:
It is possible that passing the drive geometry to LILO with "hda=c,h,s" will work, but IBM does not recommend this, since it could damage the partitions and destroy the data if you get the numbers wrong.


You will also need to build PCMCIA/CardBus support and install the APMd package. I have customized both of these packages to work well with the ThinkPad 600e and the IBM EtherJet CardBus 10/100 Ethernet Card.
You can download my customized versions here:

Some notes about these packages:

They contain basically everything that a user with a ThinkPad 600e and IBM EtherJet CardBus card will need. This includes the following:

The APM package should be installed by uzipping/untaring the package, reading the files README and README.thinkpad600e, and running the following commands from the apmd-tp600e directory:
make install
This should install all of the necessary files in the right places.
After you do this, but before you restart, you must recompile your kernel (or you will get errors).

After installing apmd-tp600e, in the directory:
You will find a configuration file for the Linux 2.2.13 kernel, named "kernel-2.2.13-config-for-tp600e". Load this file as your kernel configuration and recompile. If you need help compiling a kernel, see the Kernel-HOWTO.

After compiling your kernel, you should be able to reboot and use APM and sound.

There are a few important notes about APM on the ThinkPad:


Sound under Linux works very well. Getting it running is a little tricky, but once you get it going it works very well. So, here's some info to help get sound going.
The linux kernel supports the Crystal Audio PnP system of this computer, with the Crystal Audio 4232 drivers (cs4232). Note: The APMd package for download above includes all of the files I'll be mentioning here.
First, you want to set up your BIOS to deal with Linux and the sound card as the script is expecting it. To do this, I have a .bat for Windows or DOS which will run the "ps2" utility, which should be installed on your computer by default. If you have reinstalled Windows since then, you will have to do a custom install of the ThinkPad Utility and be sure to install the DOS version of the utility. This .bat file will also disable the internal modem (it doesn't work under Linux anyway), and enable the IR and serial ports, so edit it to meet your needs.
After configuring your computer to be able to use sound, you should then recompile your kernel under Linux to support the cs4232 sound card. You can use my config file, or just use it as a guideline to configure your own kernel.
After you get the kernel configured, simply run this script to load or unload the modules (sound control start or sound control stop)


After compiling the kernel, you will then want to get PCMCIA/CardBus support working. Fortunately, with the version of PCMCIA-CS I have for download (or the generic verison 3.1.1), this is relatively painless.
As a note, I just tried to use the PCMCIA-CS version 3.1.6 with the 600e and EtherJet card and it didn't work. Everything was fine as soon as I switched back to 3.1.1, so I highly recommed using 3.1.1 - "it ain't broke".
First, install the dhclient software. To do this, unzip/untar the dhcp source, and then run: (from the dhcp directory)
cd client
make install
The "cd client" makes sure that you only install a dhcp client, not the server...

After this, you can install the pcmcia-cs package. All that you have to do is to ungzip/untar the file, and then run the following commands from the pcmcia-cs directory:
make config
make all
make install
This should install everything that you need. The package that I have for download has been modified to better support the IBM EtherJet CardBus card and the new dhclient DHCP client.

Some final notes & news:

Links that I found helpful while doing this:

Change Log

29 Novemeber 2002 - Moved the page to, updated broken links.
28 April 2000 - Added a note about hot-swappping the CD & /etc/lilo.conf
27 April 2000 - Moved the site to, now professionally hosted.
7 March 2000 - Added a reference to Till Straumann's Linux TrackPoint Utilities
6 March 2000 - Added a link to Thomas Hood's tpctl page
3 March 2000 - Redesigned the page for easier readability
3 March 2000 - Updated the sound_control script and Sound sections
16 February 2000 - Updated BIOS information & Drive section


Please let me know if something I mentioned here is wrong, and Good Luck!
-Ben Brillat
Back to

This page last updated on 01 Jul 2013.
Send comments and suggestions to
Visitor since 12 May 2009 (orig 9 Nov 2003).