Installing Ubuntu 6.06 Flight 6 on a ThinkPad X60s
Contents
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
- EVDO device
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
- 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).
- 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
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.
compiling the madwifi drivers from source - WORKS :)
- untar the latest drivers from teh madwifi website - http://sourceforge.net/projects/madwifi/
- prepare build environment
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 :)
- In order for this to work you must compile the wpa_supplicant from source.
- follow these instructions carefully - http://madwifi.org/wiki/UserDocs/802.11i
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
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 |