Debian 4.0 Etch on ThinkPad X60s

2007.04

Š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, 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 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 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 18)

What works out of the box

What does not work

Not tested

Notes

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 the factory default without having recovery CDs.

Debian Etch installer boots normally from the netinstall CD using external IBM USB DVD-ROM/CD-RW. SATA hard disk and Intel PRO/1000 network adapter are recognized. Install proceeds without a problem. gdm and Gnome start normally. Xorg is automatically configured with i810. DRI works (glxinfo|grep rendering; glxinfo comes from mesa-utils package). Gigabit ethernet works, uses e1000. ALSA sound works as long as modem is not disabled in BIOS.

Default 2.6.18 kernel supports SMP. /proc/cpuinfo reports two CPUs: CPU0 and CPU1.

Fully charged battery provides just 2.5+ hours of mostly idle operation with CPU frequency scaling enabled. Still very low compared to 4 hours with another OS on the same laptop...

CPU Frequency scaling

After the install CPU scaling uses performance governor and the frequency does not scale. To enable scaling:

  1. Load speedstep_centrino and cpufreq_ondemand kernel modules:

    # modprobe speedstep_centrino cpufreq_ondemand

    Add them to /etc/modules to be loaded automatically on next system start.

  2. Install sysfs utilities:

    # apt-get install sysfsutils

  3. Add the following two lines to /etc/sysfs.conf:

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

  4. # /etc/init.d/sysfsutils restart

If you have CPU frequency applet on your desktop toolbar, then you should see frequencies dropping to 1GHz. Available frequencies are 1GHz and 1.5 GHz (/sys/devices/cpu/...). Should there be more frequency steps/lower minimum available?

Wireless

To enable Intel PRO/Wireless 3945ABG some packages from non-free repository have to be installed. Edit /etc/apt/sources.list by adding non-free repository, for example:

deb http://ftp.us.debian.org/debian/ etch main non-free

Then

# apt-get update

and install kernel module, firmware binary and regulatory daemon:

# apt-get install ipw3945-modules-`uname -r` firmware-ipw3945 ipw3945d

I have also commented out all but lo interfaces from /etc/network/interfaces since Network Manager was in use.

Modules

$ lsmod
Module                  Size  Used by
ipv6                  226016  10 
i915                   17600  2 
drm                    61332  3 i915
nvram                   8328  0 
uinput                  8288  0 
ppdev                   8676  0 
parport_pc             32132  0 
lp                     11012  0 
parport                33256  3 ppdev,parport_pc,lp
button                  6672  0 
ac                      5188  0 
battery                 9636  0 
dm_snapshot            15552  0 
dm_mirror              19152  0 
dm_mod                 50232  2 dm_snapshot,dm_mirror
speedstep_centrino      8384  1 
freq_table              4576  1 speedstep_centrino
cpufreq_ondemand        6636  2 
sbp2                   20840  0 
loop                   15048  0 
irtty_sir               7808  0 
sir_dev                15492  1 irtty_sir
snd_hda_intel          17332  2 
snd_hda_codec         137856  1 snd_hda_intel
snd_pcm_oss            38368  1 
snd_mixer_oss          15200  1 snd_pcm_oss
pcmcia                 34140  0 
snd_pcm                68676  3 snd_hda_intel,snd_hda_codec,snd_pcm_oss
ipw3945               179972  1 
nsc_ircc               20912  0 
snd_timer              20996  1 snd_pcm
psmouse                35016  0 
irda                  162588  3 irtty_sir,sir_dev,nsc_ircc
snd                    47012  8 snd_hda_intel,snd_hda_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer
rtc                    12372  0 
serio_raw               6660  0 
i2c_i801                7468  0 
crc_ccitt               2240  1 irda
ieee80211              29416  1 ipw3945
ieee80211_crypt         5952  1 ieee80211
sdhci                  16844  0 
mmc_core               23168  1 sdhci
i2c_core               19680  1 i2c_i801
firmware_class          9600  2 pcmcia,ipw3945
yenta_socket           24460  1 
rsrc_nonstatic         11840  1 yenta_socket
pcmcia_core            36852  3 pcmcia,yenta_socket,rsrc_nonstatic
soundcore               9248  2 snd
snd_page_alloc          9640  2 snd_hda_intel,snd_pcm
pcspkr                  3072  0 
intel_agp              21148  1 
agpgart                29896  3 drm,intel_agp
tsdev                   7520  0 
evdev                   9088  1 
eth1394                18212  0 
ext3                  119240  1 
jbd                    52456  1 ext3
mbcache                 8356  1 ext3
generic                 5476  0 [permanent]
sd_mod                 19040  3 
usbhid                 37248  0 
ahci                   17636  2 
libata                 89396  1 ahci
scsi_mod              124168  4 sbp2,sd_mod,ahci,libata
piix                    9444  0 [permanent]
ide_core              110504  2 generic,piix
ehci_hcd               28136  0 
ohci1394               30800  0 
uhci_hcd               21164  0 
ieee1394               86904  3 sbp2,eth1394,ohci1394
e1000                 108512  0 
usbcore               112644  4 usbhid,ehci_hcd,uhci_hcd
thermal                13608  0 
processor              28840  2 speedstep_centrino,thermal
fan                     4804  0 

/~sarunas