IBM Thinkpad T20

Installation

Before you are going to install FreeBSD you should upgrade to the newest BIOS, because there were some problems with older BIOSes that wouldn't boot anymore after the installation. (the problem was, as far as I know, that the older Thinkpad BIOSes took partitions of the type n * 16 + 5 (for any n) as DOS hibernation partitions; FreeBSD slices (-partitions in the sense of DOS) have the type 165...). You can download the newest BIOS on the IBM Thinkpad BIOS page (to create the flash floppy disks you need Windows, however). My BIOS version is 1.17 (IYET57WW), and this one works.

Booting from CD worked then, and the installation went as smooth as on "non-mobile" machines.

Kernel configuration

The GENERIC kernel doesn't need to be modified a lot. I just commented out unneeded drivers and enabled the sound chip and also APM (Advanced Power Management). You can download my kernelconfig file here.

XFree86

The S3 Savage chip is natively supported by XFree86 4.1; I had some problems however with xf86cfg, which gave me a working XF86Config-File, but the resolution was at unreadable 640x480. With a suitable entry for the frequencies of the display in the section "Monitor", X now runs with nice 1024x768. If you wanna try, there is also a special driver for XFree on the page http://www.probo.com/timr/savage40.html. You can download my XF86Config-File here.

Sound

The Crystal Semiconductor sound chip is supported by FreeBSD, but you must add "device pcm" to the kernel configuration and build a new kernel. Then you have to "cd /dev && sh MAKEDEV snd0" to create the needed devices. If you run mixer it should show you that the sound chip works. (It should also be listed in the dmesg-output.)

Communication

Ethernet

The integrated Intel card is detected as device fxp0 and works as expected.

Modem

The integrated modem presents itself under Windows as "Xircom MPCI+ Modem 56 WinGlobal" and, surprise surprise, is a WinModem. Usually these devices won't work under FreeBSD (they require a special driver), but after doing a little research on Google I found a solution to use this modem with FreeBSD. There is Linux binary driver for some Lucent WinModems, which also works with this Xircom modem, and someone has already ported this driver to FreeBSD, where it can be used as a loadable kernel module. It even has a dedicated port (comms/ltmdm).

At first I had problems to address the WinModem correctly; I always got the message "NO DIALTONE". The solution for this is in the BIOS: in "Config" - "PCI" you should set all entries to "Auto-Select" (no fixed IRQs).

Nevertheless the driver seems to have a problem: if you unload the kernel module with kldunload, you get a beautiful kernel panic after some seconds (surprisingly not immediately after "unloading"; a debug kernel with core dump is already produced, perhaps I find someone who knows what to do with it :-).

PCMCIA, USB, infrared, serial, parallel, S-Video-Out

I didn't test these interfaces for lack of devices yet. I can't say if infrared and S-Video-Out work at all. PCMCIA, USB and serial interface are detected and get listed in the dmesg-output.

Miscellaneous

The DVD drive ran only in the PIO mode at first. An entry of hw.ata.atapi_dma=1 in /boot/loader.conf made it run in the faster DMA mode. Thanks to the friendly people on the freebsd-mobile mailing list list for this tip. You should update to the latest STABLE version to remove problems with DVDs larger than 4 GB. (I got kernel panics when I tried to access the Star Wars: Episode I DVD. For watching DVDs I use graphics/vlc, which works fine.

DVD and floppy both share one slot, you can use only one at a time. Under Windows the two drives are fully "hot swapable" and can be swapped during operation. You can get that to work under FreeBSD too, since recently the atacontrol(8) utility was merged from the CURRENT branch and the ata(4) driver received a few patches. The only drawback is that you have to suspend/resume to stop that annoying beeping the Thinkpad makes when removing a drive.

Links

The following pages helped me very much installing and configuring FreeBSD on this laptop: