Installing Gentoo Linux 2006.1 on a Thinkpad T60
This page details my efforts on installing Gentoo Linux on my Lenovo Thinkpad T60 Model No. 2007FVG. My laptop has the following hardware configuration:
* Audio: AD1981HD * 15in TFT (1400 x 1050) * Mobile Intel 945PM Express * Bluetooth * Gigabit Ethernet * Wireless LAN IEEE 802.11(a/b/g/n) * DVD-Writer * Core 2 Duo - T5600 (1.83 GHz) * 1 GB RAM * 120 GB SATA-150 HDD * Trusted Platform Module (TPM 1.2) Security Chip * Fingerprint reader * ATI Mobility Radeon X1400 PCIe (x16) 128 MB
Preliminary Steps and Gentoo Linux Setup
First step was to make space for my Linux partitions. Booted into Knoppix, resized the Windows partition (freeing about 90Gb of space for Linux) using QTParted. The hidden partition used by IBM/Lenovo for restoring the laptop was left untouched. I then created an extended partition on the free space and created the logical partitions for Linux. This machine is 64-bits, but I also wanted to be able to have a 32-bit environment. So I created two root partitions and a separate home partition. Furthermore, I also placed the directory holding the distfiles and portage into two separate partitions. All in all this is how drive was partitioned:
* /dev/sda1 Windows NTFS * /dev/sda2 IBM Rescue partition * /dev/sda3 Extended partition * /dev/sda5 Boot partition * /dev/sda6 Swap artition * /dev/sda7 Portage partition * /dev/sda8 Distfiles partition * /dev/sda9 Gentoo64 root * /dev/sda10 Gentoo32 root * /dev/sda11 /home partition
Once this was finished I proceeded to reboot and use the Gentoo Linux 2006.1 installation cd for the AMD64 architecture (which is what should be used for a 64-bit installation on a Core 2 Duo).
64-bit Gentoo Linux 2006.1 Installation
The installation was quite smooth and was done according to the Gentoo Handbook:  The only glitch the kernel that I built, which was done with a manual
# make menuconfig
and not with Gentoo's genkernel. Once I restarted the laptop, my kernel booted fine but was unable to mount the root partition. Turns out that it needed the following .config entries:
* CONFIG_PARTITION_ADVANCED * CONFIG_MSDOS_PARTITION
Once I added these entries to my .config and rebuilt the kernel, everything went fine and I booted into Linux.
The flags used for compiling the 64-bit partition are the following:
* kde mp3 mpeg xv sdl quicktime nptl gtk gtk2 jpeg tiff nptlonly alsa qt qt3 qt4 dvd cdr dvdr aac ipv6 trutype emul-linux-x86 png X opengl
The result of
is the following:
* 00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express Memory Controller Hub (rev 03) * 00:01.0 PCI bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express PCI Express Root Port (rev 03) * 00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02) * 00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02) * 00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 02) * 00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 02) * 00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 02) * 00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 02) * 00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 02) * 00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 02) * 00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 02) * 00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02) * 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2) * 00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02) * 00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02) * 00:1f.2 SATA controller: Intel Corporation 82801GBM/GHM (ICH7 Family) Serial ATA Storage Controller AHCI (rev 02) * 00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02) * 01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility X1400 * 02:00.0 Ethernet controller: Intel Corporation 82573L Gigabit Ethernet Controller * 03:00.0 Network controller: Atheros Communications, Inc. Unknown device 0024 (rev 01) * 15:00.0 CardBus bridge: Texas Instruments PCI1510 PC card Cardbus Controller
Hardware working out of the box
The integrated gigabit ethernet controller works fine with the e1000 driver:
* 02:00.0 Ethernet controller: Intel Corporation 82573L Gigabit Ethernet Controller
The USB controllers also work fine with the ehci_hcd and uhci_hcd drivers found in the kernel:
* 00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 02) * 00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 02) * 00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 02) * 00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 02) * 00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02)
This version of the laptop has an integrated SATA controller, and its HDD is also SATA. To get it working you need to use the AHCI driver:
I also added the following Kernel options (not sure if they are needed though):
* CONFIG_ATA_PIIX * CONFIG_PATA_MPIIX
This laptop also includes an integrated Bluetooth adapter. It is reported as a USB device with a Broadcom Bluetooth chip. More specifically
# lsusb -v
is reporting the following:
* Bus 004 Device 004: ID 0a5c:2110 Broadcom Corp. * Device Descriptor: * bLength 18 * bDescriptorType 1 * bcdUSB 2.00 * bDeviceClass 224 Wireless * bDeviceSubClass 1 Radio Frequency * bDeviceProtocol 1 Bluetooth * bMaxPacketSize0 64 * idVendor 0x0a5c Broadcom Corp. * idProduct 0x2110 * bcdDevice 1.00 * iManufacturer 1 Broadcom Corp * iProduct 2 BCM2045B * iSerial 0 * bNumConfigurations 1
This device appears to be working fine by including Bluetooth support in the kernel, and using the hci_usb driver. It does not seem that for this device to work the BCM203x driver is required (it is not loaded by the kernel). To get it to work, I also needed to emerge bluez-libs and bluez-utils. I must also note that it can be turned on and off by using the laptop's Function key and F4.
The audio part was a bit tricky to get it to work properly. The integrated audio chipset uses the snd_hda_intel ALSA driver (export ALSA_CARDS="hda-intel"). However, I had to use version 1.0.14_rc1 to get it to compile. Eventually, everything was working fine, but I realised that I needed to run alsaconf or restart the alsasound script each time to get sound working, because the driver wasn't being loaded correctly. Eventually I came across this post  which solved my problems. After enabling the integrated modem from the BIOS, my problem went away.
HDAPS appears to be working fine. Compiled the kernel with:
and emerged app-laptop/hdapsd, and it appears that IBM's HDD shock protection mechanism is working fine. You must also run:
# rc-update add hdapsd default
to make the hdapsd daemon start up at boot time.
Hardware Partly working
Finish the remaining sections