Running FreeBSD 5.3 on the IBM Thinkpad X30 laptop

Initial installation

Booted successfully from a USB CD-ROM drive, once this was enabled in the BIOS settings.

The system comes configured with two partitions: ~36GB for Windows C:, and ~1.2GB for an IBM "restore" partition, which is actually a DOS-format partition but with a different partition type code to make it invisible to Windows. At bootup the BIOS gives you an option to run the recovery code which can recreate the Windows 2000 Professional system image from scratch.

Since the machine doesn't come with any recovery CDs, I decided to keep this restore partition, and also to take a hard backup of it. I did that by booting from a FreeBSD 5.3 "rescue" CD-ROM, initialising the network (fxp0), and then doing

   dd if=/dev/ad0 count=1 | ssh x.x.x.x 'cat >mbr.img'
   dd if=/dev/ad0s2 | ssh x.x.x.x 'cat >ad0s2.img'

where x.x.x.x is a desktop machine. I then split the ad0s2.img file into two and burned it onto two CD-ROMs.

Once that was done, it was a simple matter to reboot with a FreeBSD 5.3 installation CD-ROM and install as normal.

Hardware support

Almost everything works out-of-the-box with the GENERIC kernel:

fxp0		ethernet 10/100
fwohci0		firewire
uhci0-2		USB (1.1)
wi0		wireless (I had an internal miniPCI 802.11 card fitted)
atapci0		ATA hard drive controller, UDMA100
psm0		pointing stick with three buttons
lpt0		parallel port (not tested)
acpi		(type "apm" to see battery status)
ata2/ad4	compact-flash card slot (fab feature!)
cardbus0/1	cardbus/pccard interface

To configure wi0 I just did:

[/etc/rc.conf]
ifconfig_wi0="DHCP"
[/etc/start_if.wi0]
ifconfig wi0 wepmode on wepkey 0xNNNNNNNNNN powersave

For sound, create /boot/loader.conf with 'snd_ich_load="YES"'

I thought cardbus/pccard wasn't working because pccardd wasn't running, but putting in a card proved everything was OK - in fact I put in a 3com multifunction ethernet/modem card, and both sio4 and ep0 were configured (something which FreeBSD 4.x could not do)

Two serial ports are probed partially:

sio0: configured irq 4 not in bitmap of probed irqs 0
sio0: port may not be enabled
sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
sio0: type 8250 or not responding
sio1: configured irq 3 not in bitmap of probed irqs 0
sio1: port may not be enabled

I guess these are the serial port you get with the docking station and/or the infrared port. I have not tested them; maybe they need enabling in the BIOS.

The internal modem which came with the machine was taken out, as I had a miniPCI wireless+modem card installed. This card appears to be a winmodem, but I couldn't get it to be recognised via the 'comms/ltmdm' port. It's not very important for me, especially given the internal ethernet and wireless.

Graphics

X11 worked simply by following the instructions in the FreeBSD handbook:

  Xorg -configure
  mv /root/xorg.conf.new /etc/X11/xorg.conf
In the "Screen" section I just added DefaultDepth 16 and set the mode explicitly to be on the safe side:
	SubSection "Display"
		Viewport   0 0
		Depth     16
		Modes	"1024x768"
	EndSubSection

I am using KDE 3.3 (install package kde-lite-3.3.0) and it works perfectly ("exec startkde" in ~/.xinitrc). As usual with KDE, you have to ignore the stupid Konsole application and configure a button to run xterm: I use

    xterm -sb -sl 500 -ls

Then you can fit four 24x80 xterms on the display and still have plenty of room for the button bar. I also had to use "control center - regional - keyboard layout" to set a UK keyboard layout (or perhaps I could have put something in xorg.conf)

I have not tried using an external monitor. I came across a page on the 'net which suggests that it should be possible to configure X for dual-display (internal and external) operation.

Power control

Typing 'zzz', or pressing Fn-F4, makes the machine go to sleep. Recover by pressing the power button or closing and opening the case. The volume and brightness controls work happily, and the neat keyboard lamp.

I did find that moused froze after resuming, but this was fixed by putting

  killall -1 moused

in /etc/rc.resume

Shutting down using 'halt -p' correctly turns the power off.

The only thing which does not appear to work is suspend-to-disk. Pressing Fn-F12 does nothing; 'acpiconf -s 4' stops the machine quickly but pressing the power button just restarts the machine (followed by fsck of course). There is no separate suspend-to-disk partition, but the original Windows parition is still there (albeit shrunk), so I don't know what is needed to make this work.

Speed

The processor is a 1.2GHZ Pentium Mobile III, and I had the RAM upgraded to 512MB (there are 2 SoDIMM slots, the default config is one 256MB board). A kernel 'make depend && make && make install' took 25 mins while running on battery, during which time the battery dropped from 85% to 72%.

Quirks

Keyboard layout is not quite what I'm used to: F1 is where I expect ESC to be, F2 is where I expect F1 to be (etc). I'm used to PgUp/PgDn being elsewhere too. Otherwise the keyboard is really excellent for a laptop, far better than the one I'm used to (Sony Vaio PCG-C1F)

There are two extra keys in the cursor cluster, which act as "previous page" and "next page" in Windows. They don't seem to do anything in X, although perhaps they could be mapped somehow.

There is a parallel port on the back, but not a serial port (you need the docking station for that). That's a real shame; for me a serial port would be far more useful, for use with routers or an external modem.

Summary

I am absolutely delighted with this laptop; it has a three-year warranty and I'm sure I'll stick with it for at least that long :-)
Brian Candler - last updated 2004-11-11