Linux/Fedora Core 1 on an IBM Thinkpad T40p

I recently purchased a Thinkpad T40p because my Dell Inspiron 8200 started to flake out and I wanted a more reliable laptop (since my workload is going up now). Also Dell's service has started to decline (I used to get machines back from the depot in two days --- now it's one to two weeks --- since Dells are unreliable, now that service sucks there are fewer and fewer reasons to stay with Dell).


  • Video - worked out of the box (as Radeon Moblity M9, have not tested 3D)
  • Ethernet - worked out of the box
  • Wireless - requires manual installation of MADWIFI drivers plus additional configuration. Note that your success with this will depend on which Mini-PCI Wifi card you have in your Thinkpad; if the card uses the Atheros chipset, then MADWIFI should work.
  • Modem - have not yet tried this
  • Suspend - worked partially out of the box (more configuration)
  • Touchpad/Trackpoint - works out of the box (but cannot turn off "tap to click")
  • Display on/off with Fn-F3 - works out of the box
  • Hard Drive in Ultrabay - requires additional configuration
  • Bluetooth - I have read elsewhere that the BlueZ tools work fine with Bluetooth, but I have not tried it yet myself.
  • Dual boot - I am dual booting with Windows XP. I found it easiest to use the Knoppix Linux boot CD to resize the Windows XP partition before installing Linux. However, I will probably install Windows 2000 in the Windows XP partition.

Did graphical install of Fedora Core 1, went in without any problems and the machine booted into X without difficulty. From there installed apt for rpm which seems to work a lot better than Red Hat's default "yum" package manager. Updated the kernel and all OS packages.

Wifi Configuration

You need to install the cvs package and check out the MADWIFI source from CVS. You also need to install the sharutils package (using apt, "apt-get install sharutils"). Also it might help to say "export CC=gcc32" before doing the configure/make/make install.

Once installed you're not done. Red Hat/Fedora tends to assume all Ethernet cards will be called eth0, eth1, eth2, etc. But the MADWIFI drivers call the wireless card "ath0". I got some help from this page on MADWIFI configuration with Red Hat 9. In particular you should create a file /etc/sysconfig/network-scripts/ifcfg-ath0, with the following:

# Unknown vendor|Generic ath_pci device
# Change next line to "ONBOOT=no" to have this device not start at boot
# Comment above line and uncomment next 4 lines to use static IP
ESSID=<insert your essid here>
KEY='<insert your key here>'

If using a hexadecimal format for the encryption key, do not put a 0x in front, and use no dashes.

Do an /sbin/ifup ath0 and it should work, and when you reboot it should automatically start the wireless card.


To get suspend/resume to work more reliably, I created the following /etc/sysconfig/apm-scripts/apmcontinue script:

sleep 2
if [ $1 = "suspend" ] ; then
    killall artsd
    /etc/init.d/networking stop
    rmmod i810_audio ac97_codec soundcore e1000
    rmmod usblp visor usbserial hci_usb usb-storage uhci_hcd hid ehci_hcd ubcore e1000
if [ $1 = "resume" ] ; then
    for i in e1000 i810_audio ac97_codec soundcore usblp visor usbserial hci_usb usb-storage uhci_hcd hid ehci_hcd ubcore ; do
    modprobe -q $i
    /etc/init.d/networking start


I got a Thinkpad 2nd HDD Adapter for my Ultrabay slot, so I could insert a second laptop hard drive in there for extra space for things like video editing. Unfortunately hot swapping of the drive does not work under Linux at this time, because the CD-ROM drive wants to use the ide-scsi driver, and a 2nd hard drive works well only when NOT using the ide-scsi driver. However, if you're willing to reboot when you switch drives, it works fine. You need to edit /boot/grub/grub.conf and create a new entry without the hdc=ide-scsi line. I.e., I now have two entries, one for Fedora with CD-ROM in Ultrabay and one for Fedora with Hard Drive in Ultrabay. When I want to use the DVD/CD-RW, I reboot and select one, and when I want to use the hard drive, I reboot and select the other.