Installing Ubuntu 6.06 Flight 6 on a ThinkPad X60s

From ThinkWiki
Revision as of 07:12, 16 August 2006 by Ioerror (Talk | contribs) (Added bug information about e1000 driver)
Jump to: navigation, search

Installation of Ubuntu 6.06 Flight 6 on X60s (model 1705-24U)

Summary

What works out of the box

  • Graphics adapter and accelerator (Intel GMA 950)
  • USB
  • Firewire
  • Lid switch (LCD off when lid closed)
  • Volume control, keyboard light and screen brightness control
  • Hard disk laptop-mode (/proc/sys/vm/laptop-mode)
  • LCD brightness auto-adjusts depending on AC or battery operation
  • Fn buttons generate ACPI events (/var/log/acpid)
  • EVDO device

What needs to be fixed

  • Network adapter (Intel PRO/1000)
  • Dual core processor
  • Wireless
  • Processor frequency scaling
  • Suspend to RAM
  • Suspend to disk
  • SD card reader
  • Sound
  • Fingerprint scanner

Installing Ubuntu 6.06 Flight 6

IBM Rescue and Recovery disks (seven CDs) can be created using preinstalled Windows: All programs→ThinkVantage→Create Recovery Media. However, as long as recovery partition (called predesktop in BIOS) is left intact, system can be restored to factory default without having recovery CDs.

Ubuntu Flight 6 installer boots normally using external (USB) IBM DVD-ROM/CD-RW. SATA disk is recognised, Xorg 7.0, gdm and Gnome start normally. Xorg is configured with i810. DRI works (glxinfo|grep rendering). Networking works, eth0 uses e1000. ALSA sound worked after original installation, but at some point it stopped working as Dapper instantly had numerous updates, including kernel.

Fixes after installation

SMP kernel

Flight 6 installs 2.6.15-*-386 kernel without SMP support. After installation of -686 kernel (which appears to be SMP) /proc/cpuinfo reports CPU0 and CPU1.

Wi-Fi

Intel 3945ABG wireless driver is available from http://ipw3945.sourceforge.net/. Wireless works after following QUICK INSTALL STEPS in provided INSTALL file. Automating driver loading works as described too, except that /etc/modprobe.d/ipw3945 has to be used instead of the proposed /etc/modules.d/ipw3945.

CPU frequency scaling

After installation CPU0 switches between 1.5 GHz (full speed) and 1 GHz depending on load, but CPU1 stays at full speed. This is caused by a bug in powernowd, which is resolved in powernowd 0.97. By defaqult Flight 6 uses powernowd with the userspace governor. Changing to ondemand governor (/sysfs/devices/system/cpu/cpu0,1/cpufreq/scaling_governor) and thus using kernel part for frequency scaling (modules speedstep_centrino and freq_table) fixes this. To keep the change between reboots, install sysfsutils package and add the following lines to /etc/sysfs.conf:

  devices/system/cpu/cpu0/cpufreq/scaling_governor=ondemand
  devices/system/cpu/cpu1/cpufreq/scaling_governor=ondemand

powernowd can then be disabled from auto-starting by rcconf. It can also be apt-get remove'd, but that also wants to remove ubuntu-desktop metapackage.

If you do not want to change governers, uprading powernowd from 0.96 to 0.97 also resolves the problem. Simply download powernowd 0.97 [1], compile it and replace the /usr/sbin/powernowd executable with the version that you have just compiled, then restart powernowd:

 /etc/init.d/powernowd stop
 /etc/init.d/powernowd start

However be careful if the powernowd package is upgraded and the original faulty executable is replaced.

High pitch noise while on battery

X60s CPU produces the infamous high pitch noise when in lower-power ACPI states (a.k.a. C-states). To eliminate the noise maximum (i.e. lowest power) C-state had to be limited to C2. In /etc/sysfs.conf:

  module/processor/parameters/max_cstate=2

Alternatively upgrade the BIOS to 1.06

Unsolved

  • Suspend to RAM (suspends, but crashes on resume)
  • Suspend to disk (suspends, but crashes on resume)
  • Sound
  • SD card reader (driver in Linux kernel >=2.6.17)

Not tested

  • PCMCIA slots
  • Embeded Security Subsystem (TCPA)
  • Active Protection System (HDAPS)
  • Modem

Installation of Ubuntu 6.06 Flight 6 on X60s (model 170466U)

Specifications

  • Processor - Intel Core Duo 1.66GHZ
  • Hard Drive - SATA 80GB - HTS541080
  • Networking - Integrated Wireless (Atheros)
  • Sound - Intel
0000:00:00.0 Host bridge: Intel Corporation Mobile Memory Controller Hub (rev 03)
0000:00:02.0 VGA compatible controller: Intel Corporation Mobile Integrated Graphics Controller (rev 03)
0000:00:02.1 Display controller: Intel Corporation Mobile Integrated Graphics Controller (rev 03)
0000:00:1b.0 0403: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)
0000:00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02)
0000:00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 02)
0000:00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 02)
0000:00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 02)
0000:00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 02)
0000:00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 02)
0000:00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 02)
0000:00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 02)
0000:00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02)
0000:00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
0000:00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
0000:00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02)
0000:00:1f.2 0106: Intel Corporation 82801GBM/GHM (ICH7 Family) Serial ATA Storage Controllers cc=AHCI (rev 02)
0000:00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)
0000:02:00.0 Ethernet controller: Intel Corporation 82573L Gigabit Ethernet Controller
0000:03:00.0 Ethernet controller: Atheros Communications, Inc. AR5212 802.11abg NIC (rev 01)
0000:15:00.0 ffff: Ricoh Co Ltd RL5c476 II (rev ff)
0000:15:00.1 ffff: Ricoh Co Ltd R5C552 IEEE 1394 Controller (rev ff)
0000:15:00.2 ffff: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev ff)

Summary

What works out of the box

  • Graphics adapter and accelerator (Intel GMA 950)
  • USB
  • Lid switch (LCD off when lid closed)
  • Volume control, keyboard light and screen brightness control
  • LCD brightness auto-adjusts depending on AC or battery operation
  • Fn buttons generate ACPI events (/var/log/acpid)
  • Sound, using the snd_hda_intel driver

What doesn't work out of the box

  • Network adapter (Intel PRO/1000)
  • Suspend to ram
  • Suspend to disk
  • Wireless
    • atheros driver in linux-restricted-modules-2.6.15-20-686 will not work, see below for instructions

Sound

  • The sound is very clean, loud enough and there doesn't appear to be any backround machine noise escaping through the card.

Annoyances

  • Battery life - With the 8 cell battery Lenovo boasts that it gets about 8 hours of battery life. So far in Linux it is getting about 5-6. Need to mess around with more power saving options. To improve battery life rmmod uhci_hcd (disable USB).
  • The Hitachi serial ATA harddrive makes a faint but noticeable high pitched clicking sound when running off the battery.
  • The e1000 network driver currently has issues with the x60s. If you're having issues with eth0 appearing, give this bug report a read:

http://sourceforge.net/tracker/index.php?func=detail&aid=1474679&group_id=42302&atid=447449

What works after installation

Wireless

  • The X60s comes with an EVDO modem in the USA model of the laptop. The device seems to register correctly with usbserial (when given the correct options).
  • The X60s comes with Bluetooth support it appears to work out of box.
  • Unlike the earlier versions of the X60s this one uses the Atheros driver.
  • The LED wireless indicator light does not switch on when wireless is enabled (unless you use ndiswrapper)
  • The wireless toggle switch does nothing (although it appears to turn the led on momentarily)

EVDO

Some general EVDO info here.

First we detect the device with lsusb. It should be the Sierra Wireless device unless IBM/Lenova changes it mid-stream:

Bus 005 Device 003: ID 17ef:1000
Bus 005 Device 001: ID 0000:0000
Bus 002 Device 003: ID 1199:0218 Sierra Wireless, Inc.
Bus 002 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000
Bus 004 Device 002: ID 0a5c:2110 Broadcom Corp.
Bus 004 Device 003: ID 0483:2016 SGS Thomson Microelectronics Fingerprint ReaderBus 004 Device 001: ID 0000:0000

Then we modprobe the driver with the previously discovered values:

modprobe usbserial vendor=0x1199 product=0x0218

dmesg should show something like this:

[17187980.292000] drivers/usb/serial/usb-serial.c: USB Serial support registered for generic
[17187980.292000] usbserial_generic 2-1:1.0: generic converter detected
[17187980.292000] usb 2-1: generic converter now attached to ttyUSB0
[17187980.292000] usb 2-1: generic converter now attached to ttyUSB1
[17187980.292000] usb 2-1: generic converter now attached to ttyUSB2
[17187980.292000] usbcore: registered new driver usbserial_generic
[17187980.292000] drivers/usb/serial/usb-serial.c: USB Serial Driver core

You can have the driver automatically load by adding the following line to your /etc/modules file:

usbserial vendor=0x1199 product=0x0218

Your modem is now loaded and ready to go on /dev/ttyUSB0. Call your service provider for details.

Bluetooth

Bluetooth should work out of box. Ensure that you have the 'bluez-utils' package installed and then you can query your device with 'hciconfig -a':

hci0:   Type: USB
        BD Address: 00:16:EC:B2:D1:90 ACL MTU: 1017:8 SCO MTU: 64:8
        UP RUNNING PSCAN ISCAN
        RX bytes:375 acl:0 sco:0 events:17 errors:0
        TX bytes:319 acl:0 sco:0 commands:17 errors:0
        Features: 0xff 0xff 0x8d 0xfe 0x9b 0xfd 0x00 0x80
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
        Link policy: RSWITCH HOLD SNIFF PARK
        Link mode: SLAVE ACCEPT
        Name: 'makho-0'
        Class: 0x3e0100
        Service Classes: Networking, Rendering, Capturing
        Device Class: Computer, Uncategorized
        HCI Ver: 2.0 (0x3) HCI Rev: 0x206c LMP Ver: 2.0 (0x3) LMP Subver: 0x415c        Manufacturer: Broadcom Corporation (15)

Note: Bringing the device down with 'hciconfig hci0 down' will not disable the bluetooth light on the laptop.

compiling the madwifi drivers from source - WORKS :)

apt-get install build-essential
apt-get install linux-headers-`uname -r`
apt-get install sharutils
  • in the madwifi directory build and install the module
make
make install
modprobe ahc_pci

WPA1 encryption - WORKS :)

ndiswrapper - WORKS :)

  • Why use ndiswrapper instead? Madwifi would not allow me to connect to 5+ wireless networks I had access to. So, if you too have this problem, try ndiswrapper, if not, support open source and use madwifi.
  • Download and install ndiswrapper
  • Download the driver and use wine to extract it (or another machine):
  • Goto the WINXP_2K directory where the driver is and do the following:
 ndiswrapper -i NET5211.INF
 modprobe ndiswrapper
  • Your wireless card should now be the wlan0 interface, and the wireless light should light up!

Fingerprint reader

The X60s comes with a small USB fingerprint reader attached below the mouse buttons. It appears as a USB device. Here's the relevant output of lsusb:

Bus 004 Device 003: ID 0483:2016 SGS Thomson Microelectronics Fingerprint Reader

It may be possible to use this device with the instructions found on the following two websites: http://pavelmachek.livejournal.com/25060.html http://66.102.7.104/search?q=cache:9VkP3DzVdoYJ:linuxbiometrics.com/modules/newbb/viewtopic.php%3Fviewmode%3Dflat%26order%3DASC%26topic_id%3D66%26forum%3D1%26move%3Dnext%26topic_time%3D1122861328%26PHPSESSID%3D677fd91c80089e4ba3edd25fbbbbc2f8+SGS+Thomson+Microelectronics+Fingerprint+Reader+Bus&hl=en&gl=us&ct=clnk&cd=5&client=firefox

Special Keys

Post-install support for special keys in Ubuntu Linux 6.06 Flight 6
Keys function status
FnF2 lock screen does not work
FnF3 blank screen does not work
FnF4 suspend to ram does not work
FnF5 switch bluetooth not tested
FnF7 switch display does not work
FnF8 ?? not tested
FnF9 eject not tested
FnF12 suspend to disk does not work
FnEND reduce brightness works
FnHOME increase brightness works
FnPGUP keyboard light works