I bought a ThinkPad X24 from the cheap ThinkPad shop on Tottenham Court Road (Shyamtronics, in case you don't know about it - you can normally barter their advertised prices down a bit.) By and large it works very well; these are some slightly haphazard notes about what does and doesn't. There are similar pages linked from the Linux on Laptops website.
The X24 ThinkPads currently (autumn 2005) go for about £250 on eBay. This is a pretty good deal, I reckon, although you should probably factor in the cost of getting a usable amount of memory for it and a larger disk now that the prices of disks have dropped so much. Also, the lack of USB 2 is pretty irritating if you have to use removable storage a lot.
On the whole, I'm very happy with this laptop. It has the usual good build quality of IBM's ThinkPads and the hardware has excellent Linux support. In addition, it's small enough that I'm happy to carry it around with me, and the battery life is excellent. However, I have had to send it back twice for repair, in both cases since because the video hardware on the main board stopped working. These were both covered by the three year warranty, but it was very annoying being without a laptop while they fixed it, of course. In addition it was much more difficult than it should have been to persuade IBM to fix it, since by that stage I'd removed Windows and installed Debian GNU/Linux on it. The next time I get a laptop I'm going to make sure of the following things:
For my initial installation, I kept the original copy of Windows XP and preserved the recovery partition. I shrank the NTFS partition with Partition Magic, although nowadays the NTFS resizing in GNU Parted (as included in recent Debian install CDs) works well enough that I'd have no need for Partition Magic.
Once it became clear that Linux worked fine for me on the X24, I thought that the only needed Windows for the occasional BIOS update, but of course with the options of using PXE or building a DOS boot CD with the BIOS update software on it that reason didn't apply, so I ended up repartitioning it so that only Linux remained on the disk:
Disk Drive: /dev/hda Size: 80026361856 bytes, 80.0 GB Heads: 16 Sectors per Track: 63 Cylinders: 155061 Name Flags Part Type FS Type [Label] Size (MB) ------------------------------------------------------------------------------ hda5 Boot Logical Linux ext3 79002.40* hda6 Logical Linux swap / Solaris 1023.94
(Note that this is with a larger hard disk than the one the machine came with.)
You need to use the idepci flavour of boot CD or the system hangs on boot. I did a network installation over ethernet, which worked fine. I used the old eepro100 module, rather than the Intel e100 module - as far as I recall, they both work fine, though.
I'm now using GRUB as a boot loader, which is a great improvement over LILO.
I'm using Linux kernel 2.6.13.1 on my laptop, and it basically works fine. My kernel .config may be of some use.
Sound works fine with the ALSA driver selected with CONFIG_SND_INTEL8X0 in the kernel.
I've never bothered trying to get the infrared module to work, since I just use a USB Bluetooth dongle for talking to my mobile.
I'm using ACPI in preference to APM. Suspend to RAM works fine for me with a short script that just shuts down the wireless before suspending:
#!/bin/sh set -e wireless-disable echo -n "mem" > /sys/power/state
The laptop unsuspends when you next open the lid. One possible source of concern is that although most of the ACPI devices you'd expect are detected:
ACPI: Battery Slot [BAT0] (battery present) ACPI: AC Adapter [AC] (off-line) ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3]) ACPI: Processor [CPU] (supports 8 throttling states) ACPI: Power Button (FF) [PWRF] ACPI: Lid Switch [LID] ACPI: Sleep Button (CM) [SLPB] ACPI: Thermal Zone [THM0] (45 C)
... the fan isn't. I'm not sure how much to worry about that...
The built-in Prism 2.5 based 802.11b device works reasonably well with the kernel's orinoco_pci module. However, it won't let you scan for access points with iwlist:
cider:/# iwlist eth1 scan eth1 Interface doesn't support scanning : Operation not supported
... and had other strange foibles, like refusing to turn off WEP once it had been enabled for the interface. Those were both very irritating, of course, so I switched to using the prism2_pci module from the linux-wlan-ng project. I have some simple scripts that scan for access points, join networks and so on - that all works very well now.
The XFree86 works fine using the Debian xserver-xfree86 (4.2.1) package with the radeon driver:
Section "Device" Identifier "ATI Radeon Mobility M6 LY" Driver "radeon" BusID "PCI:01:00:00" Option "UseFBDev" "false" EndSection
The kernel's Radeon framebuffer driver seems to work OK as well.
mplayer runs well with xvidix video output, though you have to be root for it to work.
Getting the built-in modem to work was a rather painful experience, unfortunately, in that I had to try many different third party drivers before finding one that worked. What you want are the slamr module and slmodemd daemon from SmartLink's slmodem-2.9.4 package. The modem appears as /dev/ttySL0.
I also bought the Ultrabase X2 Media Slice (i.e. a docking station) and a DVD drive to go into it. I was pleased to discover that mplayer, xine and ogle could all play DVDs quite happily once I'd remembered to turn on DMA for the DVD drive.
I haven't yet figured out how to get the notebook to happily dock into the media slice and notice the DVD drive. If I suspend the notebook first, I can add or remove the slice (which is useful since it has better speakers than the built-in one) but unless the notebook was booted with the DVD drive attached, it doesn't get picked up. I guess this just needs a bit more research on my part...
In case it's of use to anyone who's thinking of buying one of these machines and wants to know exactly what hardware is in there, this is the result of lspci -v:
0000:00:00.0 Host bridge: Intel Corp. 82830 830 Chipset Host Bridge (rev 04) Subsystem: IBM ThinkPad A/T/X Series Flags: bus master, fast devsel, latency 0 Memory at d0000000 (32-bit, prefetchable) [size=256M] Capabilities: [40] #09 [1105] Capabilities: [a0] AGP version 2.0 0000:00:01.0 PCI bridge: Intel Corp. 82830 830 Chipset AGP Bridge (rev 04) (prog-if 00 [Normal decode]) Flags: bus master, 66MHz, fast devsel, latency 96 Bus: primary=00, secondary=01, subordinate=01, sec-latency=64 I/O behind bridge: 00003000-00003fff Memory behind bridge: c0100000-c01fffff Prefetchable memory behind bridge: e0000000-e7ffffff 0000:00:1d.0 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #1) (rev 02) (prog-if 00 [UHCI]) Subsystem: IBM ThinkPad A/T/X Series Flags: bus master, medium devsel, latency 0, IRQ 11 I/O ports at 1800 [size=32] 0000:00:1d.1 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #2) (rev 02) (prog-if 00 [UHCI]) Subsystem: IBM ThinkPad A/T/X Series Flags: bus master, medium devsel, latency 0, IRQ 11 I/O ports at 1820 [size=32] 0000:00:1d.2 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #3) (rev 02) (prog-if 00 [UHCI]) Subsystem: IBM ThinkPad A/T/X Series Flags: bus master, medium devsel, latency 0, IRQ 11 I/O ports at 1840 [size=32] 0000:00:1e.0 PCI bridge: Intel Corp. 82801 PCI Bridge (rev 42) (prog-if 00 [Normal decode]) Flags: bus master, fast devsel, latency 0 Bus: primary=00, secondary=02, subordinate=0a, sec-latency=64 I/O behind bridge: 00004000-00008fff Memory behind bridge: c0200000-cfffffff Prefetchable memory behind bridge: e8000000-f00fffff 0000:00:1f.0 ISA bridge: Intel Corp. 82801CAM ISA Bridge (LPC) (rev 02) Flags: bus master, medium devsel, latency 0 0000:00:1f.1 IDE interface: Intel Corp. 82801CAM IDE U100 (rev 02) (prog-if 8a [Master SecP PriP]) Subsystem: IBM ThinkPad A/T/X Series Flags: bus master, medium devsel, latency 0, IRQ 11 I/O ports at <ignored> I/O ports at <ignored> I/O ports at <ignored> I/O ports at <ignored> I/O ports at 1860 [size=16] Memory at 10000000 (32-bit, non-prefetchable) [size=1K] 0000:00:1f.3 SMBus: Intel Corp. 82801CA/CAM SMBus Controller (rev 02) Subsystem: IBM ThinkPad A/T/X Series Flags: medium devsel, IRQ 11 I/O ports at 1880 [size=32] 0000:00:1f.5 Multimedia audio controller: Intel Corp. 82801CA/CAM AC'97 Audio Controller (rev 02) Subsystem: IBM ThinkPad T23 (2647-4MG) or A30/A30p (2652/2653) Flags: bus master, medium devsel, latency 0, IRQ 11 I/O ports at 1c00 [size=256] I/O ports at 18c0 [size=64] 0000:00:1f.6 Modem: Intel Corp. 82801CA/CAM AC'97 Modem Controller (rev 02) (prog-if 00 [Generic]) Subsystem: IBM: Unknown device 0227 Flags: medium devsel, IRQ 11 I/O ports at 2400 [size=256] I/O ports at 2000 [size=128] 0000:01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility M6 LY (prog-if 00 [VGA]) Subsystem: IBM ThinkPad X22/X23/X24 Flags: bus master, stepping, fast Back2Back, 66MHz, medium devsel, latency 66, IRQ 11 Memory at e0000000 (32-bit, prefetchable) [size=128M] I/O ports at 3000 [size=256] Memory at c0100000 (32-bit, non-prefetchable) [size=64K] Expansion ROM at c0120000 [disabled] [size=128K] Capabilities: [58] AGP version 2.0 Capabilities: [50] Power Management version 2 0000:02:03.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 80) Subsystem: IBM ThinkPad A/T/X Series Flags: bus master, medium devsel, latency 168, IRQ 11 Memory at 50000000 (32-bit, non-prefetchable) [size=4K] Bus: primary=02, secondary=03, subordinate=06, sec-latency=176 Memory window 0: e8000000-e9fff000 (prefetchable) Memory window 1: c2000000-c3fff000 I/O window 0: 00004000-00004fff I/O window 1: 00005000-00005fff 16-bit legacy interface ports at 0001 0000:02:03.1 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 80) Subsystem: IBM ThinkPad A/T/X Series Flags: bus master, medium devsel, latency 168, IRQ 11 Memory at 50100000 (32-bit, non-prefetchable) [size=4K] Bus: primary=02, secondary=07, subordinate=0a, sec-latency=176 Memory window 0: ea000000-ebfff000 (prefetchable) Memory window 1: c4000000-c5fff000 I/O window 0: 00006000-00006fff I/O window 1: 00007000-00007fff 16-bit legacy interface ports at 0001 0000:02:05.0 Network controller: Intersil Corporation Prism 2.5 Wavelan chipset (rev 01) Subsystem: Actiontec Electronics Inc: Unknown device 0406 Flags: bus master, medium devsel, latency 64, IRQ 11 Memory at f0000000 (32-bit, prefetchable) [size=4K] Capabilities: [dc] Power Management version 2 0000:02:08.0 Ethernet controller: Intel Corp. 82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (rev 42) Subsystem: IBM ThinkPad A/T/X Series Flags: bus master, medium devsel, latency 66, IRQ 11 Memory at c0200000 (32-bit, non-prefetchable) [size=4K] I/O ports at 8000 [size=64] Capabilities: [dc] Power Management version 2