Installing Fedora Core 5 on a ThinkPad T60

From ThinkWiki
Jump to: navigation, search

Installation of Fedora Core 5 (Bordeaux) on a ThinkPad T60 (2007-46G). The installation works fine, but the system hangs during the first boot. It can only be circumvented by booting the rescue system and modifying a Fedora startup file.

Summary

What works out of the box

  • Network card (e1000 module)
  • Keyboard light and brightness control (not controlled by the OS)
  • Dual CPU (uses SMP kernel by default)
  • Graphics Card (recogized as ATI unknown device 7149)
  • SATA controller (in AHCI mode)

What needs to be fixed post-install

  • System boot
  • Fingerprint Scanner
  • Sound
  • Modem
  • Wireless
  • Software Suspend

Not tested

  • PCMCIA Slots (at least lspci shows Texas Instruments CardBus bridge)
  • Monitor out
  • Bluetooth

Details

Getting the system booted

Boot from the Fedora Core 5 CD and enter rescue mode (linux rescue).

Edit the file /etc/sysconfig/modules/udev-stw.modules and delete parport_pc parport lp (don't forget to chroot into /mnt/sysimage or adjust the path of the edited file). So the for loop will iterate only over nvram and floppy.

I also disabled the parallel port in the BIOS, but it does not seem to be necessary. Now reboot and enjoy the first clean boot of your Fedora Core 5 on your T60.

If anybody has an idea why the system hangs while trying to load this modules, please let us know.

Activating the Fingerprint Scanner

FC5 recognizes the integrated fingerprint scanner as an USB device. All you have to do is follow the instructions of How_to_enable_the_fingerprint_reader. The script works, but make sure you have installed all necessary packages (like gcc-c++, pam-devel, ...). Within the script you are asked to swipe the finger, it install all necessary entries into the /etc/pam.d files and it works afterwards :-)

Controlling the fan and system LEDs

  • LEDs

The LEDs can be controlled out of the box. Type "cat /proc/acpi/ibm/led" to see the detailed usage. Unfortunately there is no mapping between number and LED. Just try out and reset it if necessary.

(For example "echo 7 blink > /proc/acpi/ibm/led" will make the rightmost (crescent) LED blinking.)

  • Fan

Add the following line to your /etc/modprobe.conf: options ibm_acpi experimental=1

After the next reboot you will have a new entry in your proc-fs: /proc/acpi/ibm/fan

Now type "cat /proc/acpi/ibm/fan" to see the current status (including speed). Feel free to control your fan with "echo [disable|enable] > /proc/acpi/ibm/fan". (But remember: it's at your own risk! I wouldn't switch off the fan during kernel compilation ;-) )

Modem

In my T60 (2007-B12), the modem is a Connexant winmodem, linked together very closely with the High Definition Audio Soundcard.

I got it working with the linuxant HSF driver (download). I had to recompile my kernel without the 4KSTACKS option (in the Kernel Hacking section), otherwise, my system paniced during boot when the HSF driver was loaded. Still I get a freeze when I try to suspend with the HSF driver loaded (I have to rmmod snd_hda_intal hsfhda) --- but I yet cannot resume with 2.6.17 anyway.

Wireless

The wireless IPW3945 card works with the drivers available from ipw3945.sourceforge.net or Intel. Before the driver compiled, I had to first update ieee80211 kernel support from the version 1.1.7-git (coming with 2.6.17) to 1.1.14 available from ieee80211.sourceforge.net.

I updated the ieee80211 directly in the kernel source tree with make KSRC=/usr/src/linux-2.6.17_FC5-custom patch_kernel (in ieee80211-1.1.14).

Then, ipw3945 works fine. Note that you have to install all the three parts:

  1. ipw3945.ko into /lib/modules
  2. ipw3945.ucode into /lib/firmware
  3. ipw3945d into /sbin (and run it).

Suspend

This was quite tricky to get working. The key issue is that the ATA hard drive is controlled by the SATA kernel module --- and kernel modules are not yet available at the time SoftwareSuspend would try to resume from the swap partition. The hard drive is not available yet at that time, and the suspended state is thus ignored and the computer boots instead of doing a resume.

To get Software Suspend working, you have to compile scsi_mod.ko, sd.ko, libata.ko, and ahci.ko into the kernel. (Options CONFIG_SCSI, CONFIG_BLK_DEV_SD, CONFIG_SCSI_SATA, and CONFIG_SCSI_SATA_AHCI have all to be changed from "m" to "y").

On a DuoCore CPU with SMP enabled, you also need CONFIG_HOTPLUG_CPU=y (this allows to switch into Uniprocessor mode, needed for SoftwareSuspend). Works fine for me afterwards. (Note: I got it working only with 2.6.17-1.2174; I am still getting unresolved problems (a sudden reboot at the end of a resume) in 2.6.17-1.2187.

External Sources