Ubuntu 8.10 Intrepid Ibex on ThinkPad X60s

2008.11.26

Šarūnas Burdulis

Department of Mathematics
Dartmouth College

IBM/Lenovo ThinkPad X60s (model 1705-24U)

Intel Core Duo low voltage processor L2300 (1.50GHz, 2MB L2, 667MHz FSB)
1GB RAM (2 NonParity DDR2 SDRAM SoDIMM PC2-5300)
Intel Graphics Media Accelerator 950
12.1 inch XGA (1024x768) (Lenovo LTN121XJ-L07)
40GB 5400rpm Serial ATA (Toshiba MK4032GSX)
USB 2.0 CD-RW/DVD-ROM Combo Drive
Intel PRO/1000 Gigabit Ethernet
Intel PRO/Wireless 3945ABG
Firewire
SD Card Reader
56K V.92 Modem

$ lspci
00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (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 Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 02)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #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) SATA AHCI Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)
02:00.0 Ethernet controller: Intel Corporation 82573L Gigabit Ethernet Controller
03:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection (rev 02)
15:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev b4)
15:00.1 FireWire (IEEE 1394): Ricoh Co Ltd R5C552 IEEE 1394 Controller (rev 09)
15:00.2 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 18)

What works "out of the box"

Not tested

HDAPS

hdaps kernel module is available and can be loaded. hdapsd however does not start, reports missing /sys/block/hda/queue/protect. tp_smapi not tested.

Notes

Ubuntu 8.10 “PC (Intel x86) desktop CD” boots normally using external IBM USB DVD-ROM/CD-RW. SATA hard disk is recognized. Install proceeds without a problem.

Xorg is automatically uses intel driver. From /var/log/Xorg.0.log:

... ... ...
(II) Loading /usr/lib/xorg/modules/drivers//intel_drv.so
(II) Module intel: vendor="X.Org Foundation"
	compiled for 1.5.2, module version = 2.4.1
	Module class: X.Org Video Driver
	ABI class: X.Org Video Driver, version 4.1
(II) intel: Driver for Intel Integrated Graphics Chipsets: i810,
	i810-dc100, i810e, i815, i830M, 845G, 852GM/855GM, 865G, 915G,
	E7221 (i915), 915GM, 945G, 945GM, 945GME, 965G, G35, 965Q, 946GZ,
	965GM, 965GME/GLE, G33, Q35, Q33,
	Mobile Intel® GM45 Express Chipset,
	Intel Integrated Graphics Device, G45/G43, Q45/Q43
... ... ...

DRI works (glxinfo|grep rendering).

ALSA sound works as long as modem is not disabled in BIOS.

Just after the install, running on battery (80% charge), screen at maximum brigtness and WiFi connected to access point with 80% signal strength, PowerTOP reports 12.6W:

# powertop --dump
PowerTOP 1.10    (C) 2007, 2008 Intel Corporation 

Collecting data for 15 seconds 

Cn	          Avg residency
C0 (cpu running)        ( 1.4%)
C0		  0.0ms ( 0.0%)
C1 halt		  0.0ms ( 0.0%)
C2		  0.2ms ( 0.0%)
C3		 23.8ms (98.5%)
P-states (frequencies)
  1500 Mhz     0.0%
  1000 Mhz   100.0%
Wakeups-from-idle per second : 42.2	interval: 15.0s
Power usage (ACPI estimate): 12.6W (2.2 hours) 
Top causes for wakeups:
  49.9% ( 22.7)        : iwl3945 
  16.5% (  7.5)       : Rescheduling interrupts 
   4.8% (  2.2)        : acpi 
   4.4% (  2.0)   multiload-apple : schedule_timeout (process_timeout) 
   4.0% (  1.8)    gnome-terminal : schedule_timeout (process_timeout) 
   2.9% (  1.3)       : function call interrupts 
   2.2% (  1.0)              Xorg : schedule_timeout (process_timeout) 
   2.2% (  1.0)              ntpd : do_setitimer (it_real_fn) 
   1.2% (  0.5)           iwl3945 : ieee80211_sta_work (ieee80211_sta_timer) 
   1.0% (  0.5)        : eth0 
   1.0% (  0.5)        : ahci 
   1.0% (  0.5)        pulseaudio : schedule_timeout (process_timeout) 
   1.0% (  0.5)    : neigh_table_init_no_netlink (neigh_periodic_timer) 
   1.0% (  0.5)      : e1000_intr_msi (e1000_watchdog) 
   0.9% (  0.4)    NetworkManager : schedule_timeout (process_timeout) 
   0.9% (  0.4)       gnome-panel : schedule_timeout (process_timeout) 
   0.9% (  0.4)      : neigh_table_init_no_netlink (neigh_periodic_timer) 
   0.6% (  0.3)   gnome-power-man : schedule_timeout (process_timeout) 
   0.6% (  0.3)          nautilus : schedule_timeout (process_timeout) 
   0.4% (  0.2)      : page_writeback_init (wb_timer_fn) 
   0.4% (  0.2)   update-notifier : schedule_timeout (process_timeout) 
   0.3% (  0.1)      : __enqueue_rt_entity (sched_rt_period_timer) 
   0.3% (  0.1)    : sta_info_start (sta_info_cleanup) 
   0.3% (  0.1)   gnome-settings- : schedule_timeout (process_timeout) 
   0.1% (  0.1)        : PS/2 keyboard/mouse/touchpad 
   0.1% (  0.1)              Xorg : do_setitimer (it_real_fn) 
   0.1% (  0.1)      avahi-daemon : schedule_timeout (process_timeout) 
   0.1% (  0.1)         nm-applet : schedule_timeout (process_timeout) 
   0.1% (  0.1)      : queue_delayed_work (delayed_work_timer_fn) 
   0.1% (  0.1)             touch : start_this_handle (commit_timeout) 
   0.1% (  0.1)              hald : schedule_timeout (process_timeout) 
   0.1% (  0.1)      : fib6_add (fib6_gc_timer_cb) 

Suggestion: increase the VM dirty writeback time from 5.00 to 15 seconds with:
  echo 1500 > /proc/sys/vm/dirty_writeback_centisecs 
This wakes the disk up less frequenty for background VM activity

Suggestion: Enable SATA ALPM link power management via: 
  echo min_power > /sys/class/scsi_host/host0/link_power_management_policy
or press the S key.

Suggestion: Enable wireless power saving mode by executing the following command:
  echo 5 > /sys/bus/pci/drivers/iwl3945/0000:03:00.0/power_level 
This will sacrifice network performance slightly to save power.

Suggestion: Enable laptop-mode by executing the following command:
   echo 5 > /proc/sys/vm/laptop_mode 
... ... ...

After following the suggestions above, power usage drops to 10.7W (again, 2.6 hours is with battery at 80% charge, Wi-Fi connected and screen at max. brightness).

PowerTOP 1.10    (C) 2007, 2008 Intel Corporation 

Collecting data for 15 seconds 

Cn	          Avg residency
C0 (cpu running)        ( 1.4%)
C0		  0.0ms ( 0.0%)
C1 halt		  0.0ms ( 0.0%)
C2		  0.7ms ( 0.1%)
C3		 19.8ms (98.5%)
P-states (frequencies)
  1500 Mhz     2.0%
  1000 Mhz    98.0%
Wakeups-from-idle per second : 50.7	interval: 15.0s
Power usage (ACPI estimate): 10.7W (2.6 hours) 
Top causes for wakeups:
  42.2% ( 21.6)        : iwl3945 
  20.1% ( 10.3)       : Rescheduling interrupts 
   8.0% (  4.1)        : acpi 
   4.3% (  2.2)       : function call interrupts 
   3.9% (  2.0)   multiload-apple : schedule_timeout (process_timeout) 
   3.9% (  2.0)              Xorg : schedule_timeout (process_timeout) 
   3.4% (  1.7)    gnome-terminal : schedule_timeout (process_timeout) 
   2.0% (  1.0)              ntpd : do_setitimer (it_real_fn) 
   1.8% (  0.9)        : ahci 
   1.0% (  0.5)        : eth0 
   1.0% (  0.5)    : neigh_table_init_no_netlink (neigh_periodic_timer) 
   1.0% (  0.5)      : e1000_intr_msi (e1000_watchdog) 
   1.0% (  0.5)        pulseaudio : schedule_timeout (process_timeout) 
   1.0% (  0.5)           iwl3945 : ieee80211_sta_work (ieee80211_sta_timer) 
   0.8% (  0.4)    NetworkManager : schedule_timeout (process_timeout) 
   0.7% (  0.3)   gnome-power-man : schedule_timeout (process_timeout) 
   0.7% (  0.3)      : neigh_table_init_no_netlink (neigh_periodic_timer) 
   0.5% (  0.3)      : __enqueue_rt_entity (sched_rt_period_timer) 
   0.5% (  0.3)      avahi-daemon : schedule_timeout (process_timeout) 
   0.5% (  0.3)       gnome-panel : schedule_timeout (process_timeout) 
   0.4% (  0.2)   update-notifier : schedule_timeout (process_timeout) 
   0.1% (  0.1)        : PS/2 keyboard/mouse/touchpad 
   0.1% (  0.1)              Xorg : do_setitimer (it_real_fn) 
   0.1% (  0.1)      : page_writeback_init (wb_timer_fn) 
   0.1% (  0.1)         iwl3945/0 : queue_delayed_work (delayed_work_timer_fn) 
   0.1% (  0.1)             touch : start_this_handle (commit_timeout) 
   0.1% (  0.1)    : sta_info_start (sta_info_cleanup) 
   0.1% (  0.1)      : laptop_io_completion (laptop_timer_fn) 
   0.1% (  0.1)      : queue_delayed_work (delayed_work_timer_fn) 
   0.1% (  0.1)   console-kit-dae : schedule_timeout (process_timeout) 
... ... ...

Kernel modules as loaded after the install:

$ lsmod
Module                  Size  Used by
aes_i586               15744  1 
aes_generic            35880  1 aes_i586
af_packet              25728  4 
i915                   38144  2 
drm                    86056  3 i915
binfmt_misc            16904  1 
ppdev                  15620  0 
ipv6                  263972  12 
acpi_cpufreq           15500  0 
cpufreq_stats          13188  0 
cpufreq_powersave       9856  0 
cpufreq_conservative    14600  0 
cpufreq_userspace      11396  0 
cpufreq_ondemand       14988  2 
freq_table             12672  3 acpi_cpufreq,cpufreq_stats,cpufreq_ondemand
pci_slot               12552  0 
container              11520  0 
sbs                    19464  0 
sbshc                  13440  1 sbs
wmi                    14504  0 
iptable_filter         10752  0 
ip_tables              19600  1 iptable_filter
x_tables               22916  1 ip_tables
sbp2                   29324  0 
parport_pc             39204  0 
lp                     17156  0 
parport                42604  3 ppdev,parport_pc,lp
pcmcia                 43052  0 
thinkpad_acpi          66176  0 
arc4                    9984  2 
ecb                    10880  2 
nvram                  16524  1 thinkpad_acpi
serio_raw              13444  0 
evdev                  17696  12 
crypto_blkcipher       25476  1 ecb
psmouse                45200  0 
snd_hda_intel         381616  3 
yenta_socket           31756  1 
sdhci_pci              15360  0 
sdhci                  23940  1 sdhci_pci
mmc_core               58268  1 sdhci
snd_pcm_oss            46848  0 
snd_mixer_oss          22784  1 snd_pcm_oss
rsrc_nonstatic         19072  1 yenta_socket
pcspkr                 10624  0 
snd_pcm                83204  2 snd_hda_intel,snd_pcm_oss
pcmcia_core            43412  3 pcmcia,yenta_socket,rsrc_nonstatic
iwl3945                98804  0 
iTCO_wdt               18596  0 
snd_seq_dummy          10884  0 
iTCO_vendor_support    11652  1 iTCO_wdt
rfkill                 17176  3 thinkpad_acpi,iwl3945
mac80211              216820  1 iwl3945
snd_seq_oss            38528  0 
led_class              12164  2 thinkpad_acpi,iwl3945
battery                18436  0 
ac                     12292  0 
cfg80211               32392  2 iwl3945,mac80211
video                  25104  0 
output                 11008  1 video
snd_seq_midi           14336  0 
snd_rawmidi            29824  1 snd_seq_midi
snd_seq_midi_event     15232  2 snd_seq_oss,snd_seq_midi
snd_seq                57776  6 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_seq_midi_event
irda                  199612  0 
crc_ccitt              10112  1 irda
snd_timer              29960  2 snd_pcm,snd_seq
snd_seq_device         15116  5 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_rawmidi,snd_seq
button                 14224  0 
snd                    63268  15 snd_hda_intel,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_seq_oss,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
intel_agp              33724  1 
soundcore              15328  1 snd
agpgart                42184  3 drm,intel_agp
shpchp                 37908  0 
pci_hotplug            35236  1 shpchp
snd_page_alloc         16136  2 snd_hda_intel,snd_pcm
ext3                  133384  1 
jbd                    55444  1 ext3
mbcache                16004  1 ext3
pata_acpi              12160  0 
sd_mod                 42264  4 
crc_t10dif              9984  1 sd_mod
sg                     39732  0 
ata_piix               24580  0 
ahci                   37132  3 
ata_generic            12932  0 
libata                177312  4 pata_acpi,ata_piix,ahci,ata_generic
scsi_mod              155212  4 sbp2,sd_mod,sg,libata
ohci1394               37936  0 
ehci_hcd               43404  0 
ieee1394               96324  2 sbp2,ohci1394
uhci_hcd               30736  0 
usbcore               149104  3 ehci_hcd,uhci_hcd
e1000e                112680  0 
dock                   16656  1 libata
thermal                23708  0 
processor              42156  4 acpi_cpufreq,thermal
fan                    12548  0 
fbcon                  47648  0 
tileblit               10880  1 fbcon
font                   16512  1 fbcon
bitblit                13824  1 fbcon
softcursor              9984  1 bitblit
fuse                   60828  5 

/~sarunas