Installing Debian Linux on a ThinkPad 600E: Another data point

Note that this page is rather old now - if you haven't already seen Thomas Hood's Linux on an IBM ThinkPad 600 (2645-21U) and IBM's TP 600E - Guide to installing Red Hat Linux 6.0 I strongly recommend them.

In November 1998 I decided I wanted another laptop, reasonably lightweight, good audio, 1024x768 display and much hard disk. I've got most mileage out of my TP701 (the one with the butterfly keyboard and a 486 - works great with Linux) so after much consultation with the Linux Laptop page I went with a TP600.

I've done lots of Linux installations, including laptops. However, I've only just got sound going, seven weeks after purchase and with many man-days of effort. So the aim of this page is to make sound easier for others, although I'll cover briefly the standard problems that others have also reported.

This report is based on Debian/Hamm, but now the current Debian distribution is Slink, in any case it is worth looking at for the latest. However, the 2.2.x kernels and X 3.3.3 didn't make it to slink so you need to fix these anyway.


The TP600 has two memory expansion slots and a maximum memory of 288 Mbyte. What I wasn't told when I bought the machine was that the 64Mbyte that it comes with is 32 Mbyte internal and 32 Mbyte on an expansion slot. So to use both slots you have to throw away 32 Mbyte, and to get the total amount you have to buy two 128 Mbyte expansions.

Also, I need a mem= line in lilo.conf (even with kernels 2.0.36 and 2.2.1). If you add memory then watch out as you need to use the figure reported at boot up which is slightly less than the total. So I needed append="mem=130496k" for 128 Mbyte and append="mem=228800k" for 224 Mbyte.

Even with 224 Mbyte I can suspend to disk in 7 seconds and resume in 15 seconds, which I find impressive.

Battery life

I don't have any great experience yet, but this report has taken me about two hours to write and about 60% of the LiIon battery, which seems pretty good. The disk spins down (and no doubt can be tuned better). The display is very bright and I'd expect it to be taking most of the power.

Other hardware

Even with the disk spinning it isn't very noisy. The internal modem won't work under Linux.

Kernel version

I started with kernel 2.0.36 which was the stable version at the time. I went onto 2.1.x in order to try to solve the sound problems. I'm now running 2.2.10 with this config. Right now I seem to be loose time on suspends (but it used to work).

If you want to run 2.0.36 or earlier then you'll notice that suspend is more permanent than you expected. You should Change the line #define APM_NOINTS to #undef APM_NOINTS in drivers/char/apm_bios.c

I can't get bzImage to work - it hangs on boot. A "make zImage" works fine but you have to watch how much stuff you compile in or put up with the extra hassle of modules.

Boot disks

Debian Hamm needs special boot disks with this machine. Perhaps this is fixed with Debian Slink - I hope so as RedHat boots straight off.


I've never got on very well with Debian's PCMCIA support as I kept deleting them so isolating the machine from the distribution needed to get it talking. I ended up with pcmcia-cs-3.0.8 because I wanted the latest kernel version.

My old 3Com EtherlinkIII works well, as before. My new 3Com MegaHertz modem works fine until the machine suspends, the card get lost and you have to reinsert it (or you can take it out before the suspend). I've bought a 100 Mbps Cardbus ethernet card and that goes with some 2.2.x kernels if you get the latest pcmcia distribution - others such as 2.2.3 fail with "could not allocate 136K memory for CardBus socket 1"

X 3.3.2/3.3.3

The TP600 contains a NeoMagic NM2160 display driver. Other installation reports on the web suggest a variety of hacks, these are out of date as X 3.3.3 supports this configuration very well. But Debian doesn't support X 3.3.3, so assuming that you didn't go with RedHat because of the booting problem, and you still don't want to do it, then just go to the X consortium web site, download X 3.3.3 and follow the instructions. It is a bit fiddly, but not very hard, so you know you'll get there in the end.

This machine works really well with X, it is the first I've had with a 1024x768 screen and I can see me preferring the clarity over my 1280x1024 standard monitor setup that I use elsewhere. The pixels are much sharper than with a CRT and the viewing angle is not restrictive.

Here is my /etc/X11/XF86Config


Sound is the reason I wrote this report. When I started I had three data points, everyone agreed that the standard kernel sound doesn't work, one person got OSS/4Front to work, another got ALSA and one person gave up. So I thought that this was good enough for me, I'll just plug at OSS and ALSA until one of them works. It took seven weeks.

Windows reports that it uses IRQ 5, DMA 1,0 and addresses 0x530, 0x538 and 0x388. I used these, as reported here.

I found the whole PnP issue very confusing. pnpdump doesn't find any devices, but the CS423x chips claim to be PnP but also standalone. So there are three things to go wrong, PnP support in the kernel, the use of isapnp.conf or not, and whether the CS423x driver should be PnP enabled. Perhaps this is why getting audio going is so hard.

Kernel sound

The machine has a CS4239 chip on board which rumour has it, is backward compatible with the kernel/Sound/OSS sound modules option "Support for Crystal CS4232 based (PnP) cards. Documentation/sound/CS4232 gives some help in setting this up, but it didn't work for me (no surprises).


Under kernel 2.0.36 I found OSS easy to install. However, it seemed to have the same problem as the kernel, namely that it didn't find the hardware. Soundon for me gave me: kernel: ad1848: Interrupt test failed (IRQ5)

I also tried OSS under kernel 2.2.1-ac5, this required a bit of patching to get it to accept that the kernel version was really 2.2.1 (by using -f options as the documentation tells you not to do). The same problem persisted.

I used OSS's tech support (given the huge number of hours I spent on sound I have no problem with what they charge for the driver). They were very helpful, always replied within a few hours, gave me some useful debugging options and suggested trying different interupts, but all of this didn't get the driver going.


Late last night I eventually got sound going. I used alsa-driver-0.3.0-pre3 and followed the instructions for compilation. I didn't have PnP support operational in my kernel and "Sound Card Support" is ticked as a Module but no options were enabled.

To get it to compile I had to give the location of the kernel sources and also I symlinked /usr/src/linux to /usr/local/src/linux-2.2.1.

./configure --with-debug=full --with-kernel=/usr/local/src/linux-2.2.1
make install
Note that --with-isapnp=yes was not used. As recomended by Raph Levien, my modules.conf looks like:
alias char-major-14 snd
alias snd-minor-oss-0 snd-card-cs4236
alias snd-minor-oss-1 snd-opl3
alias snd-minor-oss-3 snd-pcm1-oss
options snd-card-cs4236 snd_port=0x530 snd_cport=0x538 snd_irq=5 snd_dma1=1 snd_dma2=0 snd_fm_port=0x388
alias sound off
and now I can load the sound driver with:
modprobe snd-card-cs4236 
modprobe snd-pcm1-oss
Note that you have to read the ALSA trouble-shooting FAQ to find that the second line is needed to get /dev/dsp going. Everything is muted by default.

Also note that performing a suspend (e.g. closing the lid) will freeze the driver, which really limits the usefulness.

Kernel sound

Addendum: I can now get sound output by selecting the CS4236 sound option in the kernel compile - howwever the output is very distorted as it cuts in and out with "IRQ/DRQ config error"s.


Linux on a TP600 was time consuming for me. Later in 1999 all distributions will have X3.3.3 and be based around kernel 2.2.x so perhaps others will have much less work to do. Reviewing the sound card troubles, my suggestion is to go with ALSA and not enable PnP in any form in the kernel or in the drivers.

Good luck!

Later misc points

The CDROM drive works but hot swapping doesn't -- you have to reboot.

Tony Robinson