Linux on the ThinkPad 390E

Wake Forest University has a special relationship with IBM, dating back to the inception of the Plan for the Class of 2000. Faculty and students are issued with new IBM ThinkPads on a staggered two-year rotation. The model I had from 1999 till 2001 was the ThinkPad 390E.

Specs | Linux installation | XFree86 | Network card | Modem | Audio | Serial port | APM | Other resources


The WFU-issue ThinkPad 390E came with

Basic installation

It is easy to install Linux using free tools, without damaging the MS Windows98 system that is pre-installed. One procedure that works is

My disk partitions:

   Device Boot    Start       End    Blocks   Id  System
/dev/hda1   *         1       303   2433816    b  Win95 FAT32
/dev/hda2           304       320    136552+  82  Linux swap
/dev/hda3   *       321       789   3767242+  83  Linux
The ThinkPad's hard drive, CDROM and floppy are all recognized by Linux no problem. You will probably want to enter BIOS setup (F1 on booting) and move the parallel port from the "dumb" location of 0x3BC to 0x378, particularly if you want to use a parallel-port zipdrive.

For more step-by-step details on (Red Hat) Linux installation for the ThinkPad, see David Lyons' notes.


XFree86 version or higher (SVGA server) supports the NeoMagic NM2200 chipset, and can drive the TFT display at 1024x768 resolution, with a color depth of 24 bits per pixel.

Some X clients (e.g. netscape) don't behave very nicely with 24-bit color depth. If black-and-white pixmaps in netscape bother you, then run the display at 16bpp instead. It's faster that way too -- part of the available video RAM seems to be used for acceleration.

A nice tip from Craig Kulesa: You don't have to ask for 3-button emulation in the mouse section of XF86Config. Under X, the "extra" big button for the TrackPoint works as a middle button!

Here's my XF86Config (for XFree version 4.0.1).

EtherJet Adapter

The 10/100 Cardbus Adapter is now supported by David Hinds' pcmcia package for Linux (version 3.0.14 or higher). Details.

Lucent Win Modem

At first I reckoned this was a piece of pure deadweight, but now -- saints be praised! -- it works fine under Linux. I'm not sure who at Lucent we have to thank, but a binary-only driver has filtered its way out: (you'll probably want to check that this is really the latest version available, at

The driver was compiled for Linux 2.2.12-20 (some RedHat invention?). I find that it works OK with kernel 2.2.13, although you have to insert the module with "insmod -f ltmodem" (i.e. the force option) to get around the mismatch [details]. I have also tried it with linux 2.2.16 and it didn't work; in fact it crashed the system. Christoph Hebeisen has a workaround for using the ltmodem module with newer kernels. You may want to give it a try, but don't ask me about it! I keep a copy of 2.2.13 on hand for the relatively rare occasions when I want to use the modem.

NEW: Try this page for info and sources for compiling the LT modem module for later kernels. Looks good, though I haven't actually tried it out yet.

ESS Solo-1 audio

The ESS audio is based on the es1938 chipset. "Experimental" support for this is provided with 2.2.12 and higher Linux kernels. Fuller support is offered by the Advanced Linux Sound Architecture (ALSA) drivers and the commercial Opensound system. You can find some details on my sound setup here.

Serial port

In the BIOS setup I ensured that the serial port was enabled, and set at ioport 0x02f8, irq 3. Find it under Linux at /dev/ttyS1. I can use my Epson PhotoPC 550 just fine, with GNU gphoto to talk to the camera.


Advanced Power Management, that is. I haven't done very much with this since my ThinkPad spends almost all its time connected to AC. I did enable APM support in the Linux kernel build. Craig Kulesa offers details on this topic.

I've found that asapm is a nice little battery-monitor doodad. One other tip: If you run a 2.2 series Linux kernel you may be wondering what happened to the "power off on shutdown" that worked just fine with late 2.0 kernels. That functionality has been hived off. You need to enable poweroff on shutdown in the kernel configuration, but you also have to activate it in your shutdown script. On my system, this involved editing /etc/rc.d/rc.6, looking for the line command=halt and substituting command="halt -p". (This requires a fairly recent halt binary.)

Other resources

I'm aware of two other sites devoted specifically to Linux on the ThinkPad 390E. They both have very useful information which may sometimes be more up to date than what I have here.

In addition, IBM now has a set of pages devoted to Red Hat Linux 6.0 on the ThinkPad 600E! Nice to see this, and some (not all) of the info provided there will be relevant to the 390E.

Allin Cottrell ( June, 2001