User talk:Gmetal

From ThinkWiki
Jump to: navigation, search

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: [1] 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.

Hardware Configuration

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

# lspci

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:

    * CONFIG_SATA_AHCI

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 [2] 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:

    *   CONFIG_SENSORS_HDAPS=m

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

TODO

Finish the remaining sections