This page is no longer maintained by the author but is reproduced here with his permission.
update 4/23/00: i updated the Slackware section today with information on getting apmd to unload/load the sound driver and suspend/resume the pcmcia network card automatically.
i picked up my 240 from elinux.com. i also got a Linksys EtherFast 10/100 CardBus PC Card NIC from them, which works perfectly under Windows 2000 Professional and Slackware Linux 7, which are the two operating systems i run on it (Windows 98 was promptly removed, much to the chagrin of IBM Tech Support). i put an extra 128mb of memory in it, which i got from crucial. i also have an Archos PC Card 20x CDROM for it that i got from ecost.com (which i believe is actually the same company as elinux.com, but the items they sell vary slightly).
notes on IBM's newest BIOS 'fix' (read this if
you've had hard drive problems with your 240!!!):
note: i just checked IBM's support site (4/21/00) and they have a newer BIOS version (IRET71WW) than the one i have had problems with (IRET70WW), so maybe they have fixed this by now. i'm not going to try it myself now that i finally have my system up and running. ;)
i have a feeling that a lot of people may be having hard drive problems with their 240s, so here is what i discovered after having two 'bad' drives. i think the problem is with IBM's newest BIOS update for the 240. i actually know a lot of people have had problems, because i've read numerous 240 user reviews on the net where people have talked about having to send their units in for hard drive replacement. if you are one of those people, or you plan to repartition your 240, you should read this.
after receiving my 240, i planned to strip Windows 98 from it and install Windows 2000 Professional and Linux on it. at the time, i only had a network card because the CDROM had not yet arrived (actually, i hadn't ordered it yet because i figured i would be able to get by with just the network card). just to be on the safe side, i checked with IBM's Tech Support site to see if they had any notes about installing Windows 2000 on the 240. they did indeed have a set of instructions for upgrading Windows 98 to Windows 2000, so i decided to give that a try. basically, the instructions said to update the 240 BIOS to the latest revision to get support for all the new APM features in Windows 2000, then copy the Windows 2000 setup files (by CDROM, but i used the network card) to the hard drive and run the setup from there. so i did all that, and got ready to install Linux.
the 240 (at least my model) comes with a 6.4gb hard drive, and is split into two partitions by default. i think one is about 2gb, and that is the c: drive where Windows 98 in installed. the other one takes the rest of the drive and is empty. that was fine by me, because i keep separate OS and data partitions on my Windows machines anyway. but to install Linux, i needed to add a main Linux partition and a Linux swap partition. i also wanted a small FAT partition at the beginning of the drive to install System Commander, the boot manager i use. i've found it's better to install it to its own primary partition, as that makes it easy to wipe out any given OS's partition without having to reinstall System Commander. somewhere on their site, they have some documents explaining how to set this up.
so some serious repartitioning was in order. normally, i would start with a totally clean drive and partition it from scratch, but i couldn't do that in this case because i didn't have a CDROM to install from, nor did i have any DOS drivers for my network card. (i suppose i could have installed Linux first since it has boot floppies that support my network card, gotten Samba running, copied the Windows 2000 setup files over the network and done it that way.) my partitioning tool of choice is Partition Magic 5, but it won't run under Windows 2000. luckily, you can put everything you need on a floppy disk and run it from a DOS prompt. so i did that and started repartitioning.
i can't remember now if i starting having hard drive problems during repartitioning or shortly after, but at some point the hard drive started making terrible noises. i proceeded as far as i could, but it got to a point where i couldn't even finish formatting a partition because there were so many disk errors. i called IBM tech support, told them what happened, put the phone up to the 240 so the tech could hear the hard drive grinding, and they authorized a return. i sent it in to them and they replaced the hard drive. i got it back, started the repartitioning process again, and sure enough, had the same exact problems. 'not another bad drive!' i thought. by this point i had already ordered a PC Card CDROM, so i figured that before calling IBM i would wait for it to get there and really try starting from scratch. actually, there was a little more to it than that: when i ran Partition Magic on the drive, it told me there was a discrepancy between the way the hard drive had been formatted and the way the BIOS was recognizing it (that wasn't exactly what it said, but that was the gist of it). this made me suspect the BIOS update, which does indeed appear to be the culprit.
so once my CDROM arrived, i decided to test my theory. i really wanted to start absolutely from scratch, so i used DOS debug to completely wipe the partition table off the drive. after that, i used fdisk to create a little FAT primary partition for System Commander, using Windows 98 DOS as the OS. after i got that on, i used Partition Magic to set up a Windows 2000 Professional NTFS primary partition, a FAT32 logical partition for data and sharing between Windows and Linux, a Linux logical partition, and a Linux swap logical partition. not a single problem or noise during the partitioning and formatting. i installed Windows and Linux from CDROM, no problems there either.
so i have now been running my 240 with a drive that was apparently 'bad' for over a month with nary a problem. i hope IBM has figured this out by now too (once i get this section written up i'm going to post a link to it on the IBM support message board). i guess the moral of the story is: don't repartition your drive unless you are willing and able to totally wipe it clean and start from scratch. i don't recommend messing with it unless you have a PC Card CDROM and/or really know what you're doing, because otherwise you can easily wind up with a 2.9lb paperweight.
notes on installing and running Slackware 7 on the 240:
i originally planned to install Linux Mandrake 7 on my 240, because i figured it would be the easiest to install. i tried it and it was a mess. i couldn't get it to recognize my PC Card CDROM at all. so i got a network install using FTP to work (from an FTP server on my Windows 2000 desktop machine), but then X was all screwed up because it was trying to display 640x480 on the 800x600 LCD display, and there were other problems i've forgtten. so i decided to give Slackware 7 a try. boy am i glad i did.
Slackware works really well on this laptop. one thing i would recommend is downloading the current version of Slackware 7 from one of the mirror sites. it has the 2.2.14 kernel, an updated version of XFree86 (as well as 4.0 for you brave souls out there), and some other updates. i think the only thing i've updated is apmd, from a 3.0 beta version to 3.0 final. no, i take that back-i also updated Enlightenment to version 16.x because for some reason the Slackware folks still prefer and include a 15.x version. a note on updating Enlightenment (and actually, most big packages in Slackware 7): i found this site on the Enlightenment web page, and it has a bunch of pre-made Slackware packages, including Enlighenment. i recently found another site that has Slackware packages called Linux Mafia. see my links at the bottom of this page.
for the install, i created these floppies:
i booted off the boot disk, loaded the root disk, then the pcmcia disk, and my PC Card CDROM started working immediately. from there on, the install is smooth sailing. or at least there aren't really any more issues specific to the 240-there's still the Slackware install to deal with. it may not be the most user-friendly install (no fancy graphics or anything), but i like it quite a bit. the only 240 related thing i can think of offhand is to tell the install to use the 800x600 frame buffer console. this is perfect for the 240 since it has an 800x600 screen, and you can even use it for X. i think that is how my system runs X now, but to be honest i haven't really checked into it because it all worked from the get-go. no messing with X config files or programs, Slackware set it all up for me. gotta love it. i think all the other 240 Linux sites i've seen have a copy of an XFree86 config file, but not here! another reason to like Slackware. ;)
most of the 240 Linux sites i've found talk about using the ALSA sound drivers, but i
didn't do that. if you recompile your kernel and turn on experimental
options, the driver for the ESS Solo1 in the 240 is natively supported
(at least in version 2.2.14, i don't know about previous
versions). you can make it part of the kernel or a module, it works
either way, but i am setting mine up as a module so i can load and
unload it when the machine suspends and resumes. if you don't
unload the sound driver before suspend, sound won't work when you
resume. if you look at the man page for apmd, (make sure you have the
latest version, get it from that web page, build it, and copy the new
executables, mainly apm and apmd, over the old versions) it talks
about setting up an apmd_proxy file. there is an apmd_proxy file in
the apmd tarball-start with that, and put it in /etc, /etc/apmd, or
wherevery you like. then find the file where apmd is started (should
be /etc/rc.d/rc.M on Slackware) and use the -P flag to point it to the
apmd_proxy file. note: this is a shell script, so it needs to be
executable. i forgot to chmod it and i couldn't figure out for a while
why it wasn't working. but i did figure out how to see the apmd log
messages when i was trying to fix the problem, which is a good thing
to know. i think the stock apmd_proxy file takes care of suspending
and resuming pcmcia cards for you, but you have to add in the lines to
load and unload the sound driver. assuming you are using the ESS Solo1
driver in the kernel as a module, you need these lines:
the first loads the module, so put that in the resume section, and the second unloads it, so put that in the suspend section. i also put the insmod command in the start section to load the sound driver initially because the kernel doesn't seem to be loading it automatically. that's probably not really the right place to do that (i would welcome any suggestions), but it should work for now.
oh-another note about sound. after getting it running, i could only use sound when i was logged in as root. to make sound work for my user account, i had to chmod /dev/dsp so it was writable by all users.
about networking: i have had no problems with the Linksys 10/100 PC Card i got. it works great under Linux, it is also supported natively right in the kernel or as a module. i move my laptop between networks at home, school, work, etc. so i have it set up to use DHCP to get an IP address, set up DNS servers, etc. for some reason the default Slackware DHCP setup gave me problems, so i set it up to use dhclient to get an IP address instead of whatever program it was set up to use in /etc/rc.d/rc.inet1. sometimes it doesn't work right at first and i have to use ipconfig to bring eth0 down and up again, then run dhclient again to get my routing table set up right. i'm not sure why this is happening-again, i welcome any suggestions!
this isn't really 240 specific, but if you are running Slackware you really need to read this. i didn't really understand the Slackware package system at first, RPM is definitely simpler to use, but now that i know how to use it i think the Slackware way is really slick. you get the best of both worlds: packages you can install, uninstall, and upgrade, and you can configure and build software from source instead of installing pre-compiled binaries. to find out how to use the Slackware package system, read this enlightening article.
another cool trick (if you have lots of memory, my 240 has 192mb): you can set up VMWare so that if you have a dual-boot system, you can load one OS inside the other. for example, my 240 is set up so that i can run Linux from inside Windows 2000 and switch between them. VMWare is just a cool piece of software in general; if you don't know about it you really should check it out.
i have been hearing a lot of good things about Debian lately, especially if you have access to a high speed net connection. my DSL line at home hasn't been installed yet (any day now, they say-i'm not holding my breath) but i can plug my 240 into the UNM network, which has a ridiculously fast net connection. so sometime in the near future i think i'm going to try installing Debian in VMWare to see how i like it. perhaps i'll switch from Slackware to Debian, who knows. it sounds like their update system is really cool if you have the bandwidth for it. i'll post info here if/when i try it.
links to other ThinkPad 240 sites:
a site about SuSE 6.2 on the 240. some good stuff here about APM, sound, and more.
a site about RedHat 6.1 on the 240. some more good info here.
links to Linux notebook related sites:
Linux on Laptops. links to info about Linux on many laptop models.
Linux Notebook HQ. lots of info about Linux and notebooks.
links to Slackware related sites:
Linux Mafia looks like a good source for Slackware packages and info. i just found it and haven't had much of a chance to check it out, but it looks pretty promising.