Installing Linux on a Thinkpad 240


The Thinkpad 240 is a rather neat little system from IBM. It's an inch thick, and has a smaller footprint than a sheet of notebook paper. It is also very light - 2.9 pounds with battery. This document's meant to show you what I did to get Linux to run on this machine.

System specs

Here are the specs of my Thinkpad 240:

Processor:Celeron 366 MHz (300, 366 models also available)
Memory:320M: IBM's site shows 192M as the maximum for this machine, but low density 256M PC66/100 (not PC133) SODIMMS may work. They do not work reliably in the 240X models, and unless you want to desolder the RAM from the 240X's mainboard, you're stuck with only 192M there.
Hard disk:6.4G
Screen:800x600 TFT
Internal Modem:Lucent MiniPCI Winmodem

In addition to one PCMCIA slot and a USB port, the 240 also has VGA output, serial, parallel, floppy, and PS2 mouse connectors built in. No need for a port replicator!

Preparing the system and installing Linux

I assume that you will want the laptop to be Linux only (as it should be). You may have to do things differently to preserve a Windows installation, so be careful. If you break your system, you get to keep both pieces.

I also assume that you have the external floppy drive to go along with your 240. If you don't, you'd best head on over to Ebay and get one!

Update: To install any version of Fedora Core newer than Core 1, you'll need to do some extra hacking, since new Fedora Core releases don't come with boot floppies.

Prepare the hard drive for hibernation

  1. Wipe the drive. You can use either a Linux or DOS/Windows 95 boot floppy for this (provided it has FORMAT and FDISK on it).
  2. Create a DOS partition, then format it. It should be at least MEMORY SIZE + 2M large. It may be formatted as FAT16 or FAT32 (as far as I can tell), but it must be formatted.
  3. Get IBM's hibernation file creation utility [insert url]. This is not PS2.EXE. PS2.EXE is not compatible with the Thinkpad 240. This is a good thing, as you don't need a boot disk to change basic BIOS settings anymore. IBM's hibernation utility will extract to a bootable disk image.
  4. Boot with the IBM utility disk, and create a hibernation file on your DOS partition. After this, your 240 should be able to hibernate. If you later change the memory size, you'll have to go back and do this again.

Unfortunately, it appears that hibernation does not work properly with 320M of RAM installed, where it does work just fine with IBM's recommended 192M installed. Since you can suspend overnight even with a near-dead battery, this doesn't bother me much. If you have 320M RAM and can get hibernation to work reliably, please let me know. It might just be that I don't have the right BIOS version. Another possible option for this laptop is to use software suspend to hibernate.

How to get a Linux install started

Initially, I was going to do a network install of Red Hat 9 through a PCMCIA Ethernet card. I have a Zip CD 650 (USB), and the 240 has a perfectly good USB (1.1) port, so why not install from the CD? This, as it turns out, works without a hitch, but is probably slower than a network install over a LAN.

If the USB isn't an option for you, you can get by with a 16-bit ethernet card and a couple of boot floppies.

If you have a cardbus card, you may need to pass pci=assign-busses to the kernel on bootup for the card to be recognized by Linux. I had to do this for my Dlink card.

Hardware recognition

Video: The 240 comes with a Neomagic 128XD video chipset. This chipset is supported by XFree86 4.x, with 2D acceleration. The xvideo extension is also available with XFree 4.3. Redhat 9 autodetects the video chipset of the 240. Note: The 240X has a different video card!

Sound: The 240 has an ESS Technology ES1969 Solo-1 Audiodrive sound chip onboard. This is autodetected by Redhat 9. I've only used the OSS drivers so far: The module that supports this card is esssolo1.o You should be able to get sound up and running by just running modprobe esssolo1.

Modem: Get the Lucent drivers from here. If you're using Red Hat, just get the binary RPM and install it. Easy as pie.

PCMCIA: You may need to pass pci=assign-busses to the kernel on bootup for cardbus cards to work. If you don't have any cardbus cards, this isn't an issue. 16-bit cards work out-of-the-box, provided there's a Linux driver in the first place.

Mostly, everything "just works" with this laptop, which is how I think things should be.

TuxMobil - Linux on laptops, notebooks, PDAs and mobile phones
Click this link to go back to the top
This web site was last updated December 19, 2009.