Linux on Thinkpad T41

Bill Beinert

August 2004

Abstract

I bought an IBM Thinkpad T41 to have a machine to bring on trips, now that I am retired. I plan to do some Linux development. I selected the Thinkpad because of its high quality and good Linux compatibility. Weight and battery life were irrelevant, since it mostly lives in a docking station with a KVM connected to my desktop keyboard, monitor and mouse.

My plan was to have dual boot with WinXP Pro and Red Hat. WinXP is a reasonably useful OS (hard words to say, coming from someone who has despised MS since the OS/2 split, and still uses Warp for all serious computer work. But OS/2 is dead, and Linux the only acceptable alternative) and I wanted to keep it. I’ve been using Red Hat for a number of years, so decided to keep the same distro.

This is not a blow-by-blow account of the problems I encountered, but more how I would repeat the process if I had to do it over again, with warnings about the most serious pitfalls.

 

Partitioning

First task was to repartition the drive. I used Partition Magic 8.0 to do this. I was careful not to mess with the PreDesktopArea, even though I had obtained the rescue CDs from IBM. (This was a good thing, since at one point I got in such a mess with Partition Magic and Boot Magic that I had to use it to start from scratch.) It resized and moved the NTFS partition to 30 GB perfectly. I then created a 50 MB FAT16 primary partition at the beginning of the drive for Boot Magic, and installed Boot Magic.

Boot Magic has an insane default of hiding the BM partition from WinXP, so you can’t reconfigure it from XP! Fixing this turned out to be tricky. If you unhide it with PM, BM hides it again when you reboot! The trick is to unhide it with PM, let it reboot to do the unhide, and then reboot from the PM CD or the BM rescue diskette to set the partition visible for good. This “feature” of BM caused other problems with the Linux install. I should have made all partitions visible to ALL OSs to prevent this.

I then used PM to create and format ext2 and swap partitions for Linux, leaving space for an additional FAT partition for sharing data.

 

Installation of Linux

I first attempted to install Red Hat 8.0, since that is what I have been using on my desktop. The install went smoothly, with the exception of trying to create rescue disks. That just failed, probably because my floppy is a USB device. But when I tried to boot RH, the boot stopped at the lines:

PCI_IDE: unknown IDE controller on PCI bus 00 device f9, VID=8086, DID=24ca
PCI: Device 00:1f.1 not available because of resource collisions
PCI_IDE: (ide_setup_pci_device) Could not enable device.

I figured something went wrong with the install.

When I booted back to XP, I found PM would not run. It said there was an error in the partition table. Turns out the RH install messes with the CHS values. This might not happen if you go into the BIOS and expose the PDA before installing. PM does not try to fix partition table problems. What I did was use DOS FDISK to delete the last partition (Linux swap). This cleared the error, and I was able to create a new swap partition.

 

Having discovered that the boot hang at PCI_IDE might be due to the RH8 kernel level (2.4.18-14), I could either upgrade the kernel or try a newer distro. I chose to go to Fedora Core 2. When installing FC2, I chose the upgrade option. When it searched for previous versions, it reported finding RH8 at /dev/hda4. I thought this was peculiar because it was actually on /dev/hda3. But I proceeded and the upgrade went well. It noticed I was using a different boot loader, and left it alone.

First thing I checked was that it had not messed up the partition table. OK.

The first boot of FC2 failed. I just got “loading linux….”

Booting the install CD in rescue mode, I saw lilo.conf had boot=/dev/hda3. fd reported that linux was installed on /dev/hda4.

I modified lilo.conf to boot from /dev/hda4 and ran lilo (after dealing with a missing message file).

FC2 then booted just fine.

 

Starting up graphical mode, X gave an error activating XKB configuration message. This was fixed by changing option Xkbrules from xfree86 to xorg in XF86Config.

 

Aug 28, 2004 - I discovered that I could not mount CDROMs. Removing the “hcd=ide-scsi” from lilo.conf and running lilo solved that problem.

 

Oct 18, 2004 – I tried to change the display resolution from 1024x768 to 1280x1024. The result was that, when docked and using the KVM and my desktop monitor, my desktop was much larger than the screen. I had to scroll around the screen to get to most of it.

The cause of this was that my original install selected a Generic 1024x768 monitor. If I defined my ViewSonic 19” monitor, X would detect an undefined secondary monitor, and use defaults for it. I found some information at http://www.linuxforums.org/forum/post-129447.html and modified XF86Config file. Now I can run 1280x1024 both docked and undocked. Here are the sections that changed:

Section "Device"

      Option "CloneHSync" "30.0-97.0"

      Option "CloneVRefresh" "50.0-180.0"

      # no known options

      #BusID

      Identifier  "ATI Radeon Mobility 9000"

      Driver      "radeon"

      VendorName  "ATI Radeon Mobility 9000"

      BoardName   "ATI Radeon Mobility M9"

EndSection

 

# undocked LCD

Section "Monitor"

      Identifier   "Monitor1"

      VendorName   "Monitor Vendor"

      ModelName    "LCD Panel 1400x1050"

      HorizSync    31.5 - 90.0

      VertRefresh  59.0 - 75.0

      Option          "dpms"

EndSection

 

# undocked LCD

Section "Screen"

      Identifier "Screen1"

      Device     "ATI Radeon Mobility 9000"

      Monitor    "Monitor1"

      DefaultDepth     24

      SubSection "Display"

            Depth     24

            Modes    "1280x1024" "1280x960" "1152x864" "1024x768" "800x600" "640x480"

      EndSubSection

EndSection

 

#ViewSonic - docked

Section "Monitor"

      Identifier   "Monitor0"

      VendorName   "Monitor Vendor"

      ModelName    "ViewSonic PF790"

      HorizSync    30.0 - 97.0

      VertRefresh  50.0 - 180.0

      Option          "dpms"

EndSection

 

#ViewSonic - docked

Section "Screen"

      Identifier "Screen0"

      Device     "ATI Radeon Mobility 9000"

      Monitor    "Monitor0"

      DefaultDepth     24

      SubSection "Display"

            Depth     24

            Modes    "1280x1024" "1280x960" "1152x864" "1024x768" "800x600" "640x480"

      EndSubSection

EndSection

 

 

Some caveats about Partition Magic and Boot Magic

 

Using PM the way I did results in a partition table that is out of order. Here is what mine looks like (after I created an additional 12 GB FAT32 partition to share between both WinXP and Linux):

            /hda2                52MB              FAT16

            /hda3                28GB               NTFS

            /hda4                12GB               EXT2

            /hda1                13GB               Extended

            /hda5                500MB            Swap

            /hda6                12.5GB            FAT32

That, and the fact that the first partition was hidden from Linux, may have caused the /hda4 vs. /hda3 discrepancy seen in the FC2 install.

 

The Boot Magic rescue disk behaves differently from running BM from the CD in one important respect. If the BM partition is hidden, it restores the MBR, which keeps it hidden, before giving you the choice of OSs to boot. The CD apparently has an error on it that prevents it from running the restmbr command. I made a copy of the rescue disk with the restmbr commented out.

 Machine Hardware

My new Thinkpad is a T41 2373-9FU. Having

  • 1.7GHz Intel Centrino CPU (Pentium M)
  • 60GB Hard disk
  • 1 GB memory
  • Radeon 9000 display 1400x1050
  • CD-RW/DVD combined.
  • Ethernet Intel e1000 ??
  • Wireless Intel Pro 2100 built-in ??
  • 2 USB ports
  • IR port