This document describes experiences with running Linux on IBM laptops such as X40 2371-8NG (pilchard) (and T23 (kirki)). The suggestion has been made that they replace Sony VAIOs as the `other' supported laptops.

It is reported that even different series IBM ThinkPads are fairly similar. As such, it might be worth looking at reports on T40 and X30 machines such as RH 8/9 debian RH debian Mandrake RH as well as X40 pages such as FC1 FC2 debian OpenBSD

This page was started the day the first machine arrived, and is developing.

When it is working sufficiently (or some other laptop breaks), it will be given to its user, so I will no longer have access to it.

This report is listed at TuxMobil - Linux on laptops, notebooks, PDAs and mobile phones under IBM

Overall Description

The X40 comes with a 1200MHz Pentium M (Centrino) with a 64KB/1MB cache, 512MB onboard, 12.1" XGA-TFT 1024x768, 40GBi.

Initial system Load


The machine comes with no external drive, i.e. no floppy or CD. It appears that it expects a USB floppy and CD. It does a PXE boot and boots off a generic USB floppy, but not a CD.

Came with a FAT32 partition using most of the disc, followed by an IBM "recovery" partition. The latter can be booted by pressing F11 during boot so long as it has original IBM MBR hasn't been overwritten. It is said that the Restore operation resets the WHOLE DISK.

On setting up WXP, the partition is changed from FAT32 to NTFS, with the result that Fn-F12 doesn't see a FAT FS, so cannot hibernate (WXP uses SW hibernate, so isn't effected).

During POST, pressing F12 causes it to generate a list of boot devices, and allows the user to select one.

I booted WXP, and installed PQMagic and shrank the NTFS FS from 39GB to 12GB.

RedHat 9 network Load

I tried a Knoppix boot, but it failed to find the FS, so I used a PXE boot to get an NFS client running, then did a `std Lab' NFS install. The BIOS sets the heads to 240 rather than 255. Left the NTFS and FAT32 FSs ASIS, and allocated a 4GB primary hda3 for root, with the rest assigned to an extended hda4 partition.

It all `just worked'.

`lspci' knows about most of the devices.

The installed kernel could not load the e1000 driver, so I used a 3C589C PCMCIA card.

FC2 DVD load

`just worked' for X40. The T23's drive didn't boot from it. Work with an external USB drive (Sony DRX-500UL).

FC3 image load

A std local "FC3 image" instaleld onto md3 worked (so long as the uni kernel was booted).

UTP "just worked". X still had "junk at top" problem. madwifi worked (when installed) With "ehci_hcd" HACK and "acpi_sleep=s3_bios", shutsdown OK, but on restart, TTY VCs are green boxes, and the it decided to (cleanly) shut down, rather than resume. "acpi=off" uses APM, which works. G3 needs work still?

Device Tuning

kernel: Fedora 2.6.5 for ACPI and UTP

The RH9 2.4.20 kernels appeared not to be able to drive the Intel Corp. 82541GI Gigabit Ethernet Controller whereas the Fedora 2.6.5 just worked. This also gave a usable ACPI kernel, but this breaks suspend.

UNRELIABLE: WiFi: madwifi

To install the driver modules, the kernel source RPM was needed, along with a copy of the madwifi CVS module1. gcc also needed upgrading so that the modules were built with the same version as Fedora used for the kernel, and the Mandrake wireless-tools RPM. Use `COPTS=-DSOFTLED' to enable the LED. The device is ath<N> rather than the more usual eth<N>.
`iwlist scanning' displays details of the available connections. `iwpriv ath0 mode <N>' sets auto, a, b, g for <N> = 0..3. For debugging, try `sysctl -w dev.ath.debug=1', `sysctl -w dev.ath.dump="hal"', `echo 1>/proc/net/wlan0/debug'. kismet 4 is needed.

Although it may work EVENTUALLY, much of the time it reports `unable to reset channel 12 (2467MHz)', and fails to get a DHCP address.

Matthew Garrett has a page on how to get wireless to work.

user niggle: display shifted after sleep

After some sort of sleep, the screen is shifted down so that the bottom is no longer visible.
De- and then re- selecting the X screen fixes the problem. This can be automated if ACPI is used, by adding a file /etc/acpi/events/lid.conf containing the lines `event=button/lid' and `action=/usr/bin/acpi-lid' and arranging that /usr/bin/acpi-lid contained the line `chvt 1; chvt 7' to switch away from X, and back again.
HOWEVER this is a show stopper for one of the user's main requirements, which is to use its VGA output while lecturing.

However, Matthew Garrett suggested sourceforge's i855crt which enables a separate pipe for the VGA output (e.g. `sudo i855crt on rawpipe' or `sudo i855crt on 1024x768@70' - see i855crt.conf for the known modes), as does i810switch which uses the same pipe (e.g. sudo i810switch crt on), (built in /usr/groups/linux/extra-packages/ThinkPad). Note that neither can manipulate the LCD, so do not boot with a CRT attached (setting the BIOS `Config -> Display -> Boot Display Device' to `ThinkPad LCD' or `BOTH' does not work).

It's been suggested that using APM rather than ACPI fixes it - doesn't appear to work for me.

If all else fails, reboot with VGA connected.

suspend (not yet hibernation)

The old APM methods rely on the BIOS to do all the work, whereas the newer ACPI methods rely on the kernel doing it all.

When suspended, the right most "crescent" light comes on. To wake it up, press the "on/off" button for about 3s.

suspend using ACPI

By setting MODULES to ehci_hcd in /etc/sysconfig/acpi-sleep, `sudo acpi-sleep' will unmount the ehci_hcd kernel module before writing 3 to /proc/acpi/sleep, and re-insert it when the machine wakes up. (Post 2.6.6-1)

Sometimes a machine gets into a state where the display does not come back on after waking up. This is cleared by powering off and back on - subsequent suspends work.

Adding acpi_sleep=s3_bios to the kernel boot flags may be needed so that the display comes back on after suspension.

suspend using APM

If booted using APM, Fn-F4 and `apm -s' will suspend-to-RAM. This takes a while (nothing displayed on the screen while it does it), but once done, the `crescent moon' is displayed. Fn-F4 (the user reports that pressing the power button makes it shut down) returns power.

Think also about tphdisk, lphdisk, or IBM's utility.

extra keys in text mode

`setkeycodes e06a 126 e069 127' to cause the extra cursor keys to generate more normal keycodes, then `echo keycode 126 = Decr_Console | loadkeys; echo keycode 127 = Incr_Console | loadkeys' to make them step through the VCs.

extra keys in X

Using xev it appears that the extra cursor keys generate keycodes 116 and 117 (Super_R and Menu). If of use, they can be mapped using `xmodmap -e "keycode 116 = F19"' or similar.

tpb - access to ThinkPad buttons

I installed the Mandrake tpb and libxosd and manually added the xinerama .so's.
Running `tpb -osd=on -verbose -thinkpad="xterm"&' causes it to display the speaker, brightness, zoom and light setup when the buttons are pressed, log misc other events, and start xterm when the `Access IBM' button is pressed.

TO BE DONE: modem

Use 2.9.x from smlink user -> I agree -> Linux drivers -> The latest beta Linux driver

Not yet tried: BT, IrDA, SD


... module1
cvs login;
cvs -z3 co madwifi

Piete Brooks 2005-06-21