Installing Ubuntu 6.06 Flight 6 on a ThinkPad X60s

From ThinkWiki
Revision as of 22:47, 23 July 2006 by StabiloBoss (Talk | contribs) (compiling the madwifi drivers from source - WORKS :))
Jump to: navigation, search

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

Summary

What works out of the box

  • Network adapter (Intel PRO/1000)
  • 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)

What needs to be fixed

  • Dual core processor
  • Wireless
  • Processor frequency scaling
  • Suspend to RAM
  • Suspend to disk
  • SD card reader
  • Sound

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

  • Network adapter (Intel PRO/1000)
  • 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

  • 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.

What works after installation

Wireless

  • 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)

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!

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