260 × 202 × 27 mm, 1.3 kg
"Perhaps one of the best supported notebooks because several developers also use it." - OpenBSD i386 Laptop Status. This laptop replaced my Thinkpad 240 in July 2006. In early 2010 I replaced the battery, upgraded the memory to 1280 MiB, and upgraded the SSD (see below) to 16GB for a total of $120.
Suspend to disk actually works. You will need tphdisk.
I'm put off by a few things. I couldn't figure out how to buy one without also buying Microsoft software I don't need. I'm worried by reports that it doesn't work with most mini-pci 802.11 cards (apparently fixable with the tpwireless command). The Microsoft sticker on the back is hard to remove. And it has no serial port.
The default settings put all interrupts on irq11. You can change this in the bios. I set all mine to "Auto" and now I get a range of irqs. There is no perceptible change in performance.
The two keys on either side of the up-arrow key are codes 233 and 234, or in more recent versions of xorg, 167 and 166. As suggested by jcs I map them to page-down and page-up:
xmodmap -e "keycode 167 = Page_Down" -e "keycode 166 = Page_Up"
To eliminate those embarassing beeps when you plug in the power adaptor or enter sleep mode, go into BIOS setup, Config->Alarms.
A great resource for Thinkpad information is ThinkWiki.
Compact Flash (CF) cards (the least compact of the flash cards) connected via pcmcia/cardbus don't work on linux and probably never will. Mark Shuttleworth filed a bug report and if he can't get this fixed I'm sure I can't. They seem to work fine connected directly to the IDE connector (see below).
Sound won't work? run alsamixer: unmute "master" and "pcm", mute "headphone jack sense" and "line"
Also make sure you're in the "audio" group and restart alsa-utils.
Installing the oss-compat package seems to help too.
Kernels later than 2.6.32-18 have a bug that makes the screen brightness go to its lowest setting. See Kubuntu discussion.
See ibm-acpi at sourceforge to enable hotkeys, control LEDs, etc.
If firefox crashes on youtube, try setenv XLIB_SKIP_ARGB_VISUALS 1. If running the default Ubuntu gnome desktop you may also need to set system->prefs->appearance->visual effects->none.
Kernels later than about 2.6.30 installed on Ubuntu 9.04 require the
nomodeset kernel option due to
kernel mode setting (KMS).
The kernel that comes with 10.04 lucid is completely broken. See for example
Bug #574854.
I'm using kernel 2.6.32.10+drm33.1, which seems to be the latest one that works.
Oddly enough, starting with Ubuntu 10.04 (lucid), the 2.6.32 kernel requires
KMS but has it blacklisted. The fix is to re-enable it:
echo "options i915 modeset=1" >/etc/modprobe.d/i915-kms.conf; update-initramfs -u
Lucid xpdf is broken. Grab /usr/bin/xpdf.bin from karmic.
Suspend doesn't work with the Ubuntu 8.10 2.6.27 kernel. The Ubuntu 8.04 2.6.24 and Ubuntu 9.04 2.6.28 kernels both seem to be ok.
In /etc/acpi/resume.d/72-acpi-pain.sh, comment out the two "modprobe acpi_sbs" lines.
/etc/default/acpi-support: DOUBLE_CONSOLE_SWITCH=true
If xorg segfaults on resume, see PPA for Intel graphics driver testing and load the backports Intel graphics drivers.
My disk drive started failing in May 2008. It's a Hitachi HTC426030G7AT00. I replaced the disk with a 8GB CF card using an Addonics adapter. (You can get adaptors from Hong Kong on eBay now for $3). The CF is faster, cheaper, quieter, and draws less power than the disk. 8GB is plenty since I don't run anything from Microsoft. You do have to tweak Ubuntu a bit to get decent performance with flash. In 2010 I replaced the 8GB with a 16GB that was noticeably faster.
Disable scrollkeeper:
sudo mv /usr/bin/scrollkeeper-update /usr/bin/scrollkeeper-update-
In firefox you have to disable the disk cache and session store (which worked fine until they broke it in firefox 2.0). Type in "about:config" in the url bar then set browser.cache.disk.enable and browser.sessionstore.enabled to "false".
Linux kernel 2.6.24 puts this "disk" in UDMA/33 mode because it thinks it has a 40 pin cable and can't do any better. There is a patch to fix this. It also seems to be fixed in kernels starting around 2.6.28.
You'll want to remove or rename /etc/acpi/resume.d/90-hdparm.sh.
I was able to reduce my file system usage by half by doing a cli install from the alternate CD and just installing the packages I need.
I was unable to get the Intel PRO/Wireless 2200BG 802.11 card that came with my x40 to work on OpenBSD. After installing the firmware it almost works, but if I try to change the WEP key the firmware apparently crashes. I tried the iwi_stop() patch from rev 1.67 of if_iwi.c but that didn't help. I tried the 3.0 firmware with the driver from OpenBSD 4.0 in a 3.9 kernel but it doesn't work. I haven't tried it on linux.
I bought a card based on the Ralink 2560 chip for $18 to replace the useless Intel card. After running tpwireless it seems to work fine with the OpenBSD ral(4) driver. It has a few quirks, which I can live with: The wireless indicator light at the bottom of the lcd screen doesn't work; I lose connectivity in monitor mode; kismet can't see the nework I'm associated with; and sometimes I have to unset the channel number to get it working (ifconfig -chan).
Unfortunately Ralink doesn't work on Ubuntu after 8.10, in spite of it being the one that Ubuntu recommends, because the working ("legacy") driver was removed and replaced with a non-working one. There is rumored to be a working driver available but so far I've been unable to get it to build in the jaunty kernel. More detail in ubuntu forums 373338.
I gave up on the Ralink and bought an Atheros with the AR5213A chip on eBay for $15. That has been working just fine for normal use. Promiscuous and ad-hoc modes seem to be broken. I got ad-hoc to work by upgrading to the Ubuntu version of the 2.6.30 kernel, but it's got other problems, in particular the ath5k driver has to be reloaded each time the interface is configured. The Atheros driver doesn't work in the 2.6.31 kernel. I switched to the 2.6.32 kernel. More detail in lkml/2009/9/24/72 and kernel bug 14267.
In March 2010 the Atheros started going flakey and I replaced it with a Orinoco I found on eBay for $6. It works ok after installing firmware (agere_sta_fw.bin). Only quirk so far is that it takes an extra 12 seconds to resume from sleep mode while the firmware reloads. This was fixed in Ubuntu 10.04, but scanning is broken again.
In June 2009 my battery was down to less than half its original capacity, and I replaced it with a $35 third party battery I found on Amazon. That battery quit after a few months. I attempted a cell transplant from the failed pack to the original IBM pack but that didn't work, possibly due to clumsiness on my part. To open the pack, use a knife to open up the seam in the ridge at the upper rear edge then pry the two halves apart. There are four cells with a connection to each plus a temperature sensor. The bumpout where the connector is has the circuit board inside it.
nfs-port
Don't insist on a reserved port for nfs mounts.
nfs
Become root in nfs_connect.
Needed for tcp mounts against Netapp (for example).
ukbd
Fix the keysym for the Backspace key on usb keyboards (see wscons above).
vfs
Don't panic on dangling inodes.
Only needed for afs.
Possibly dangerous, not recommended.
wdc
After boot, always use 10 second timeout in wdcwait().
Try this if your disk fails to work after having been spun down.
kernel config (dmassaged) and dmesg
kernel config (dmassaged) and dmesg
xorg.conf
kernel config (dmassaged) and dmesg
kernel config (dmassaged) and dmesg
XF86Config