grml / Linux on the Lenovo X61s

Mika bought a Lenovo ThinkPad X61s notebook on 25th of july 2007. The reference distribution is an updated version of grml 1.0-1 (the current devel-release featuring kernel 2.6.22-grml). Mika is always using a grml-kernel, find its configuration in the kernel-repository of grml.

Please report feedback to mika (at)

Latest change: Die Okt 9 08:41:51 CEST 2007


Device State works
LAN (e1000) works
WLAN (ipw3945) works
WAN works
Sound works with current devel version of Alsa
Harddisk works
Mouse/TrackPoint works
USB works
Bluetooth works
Firewire not yet tested
SMBus works
PCMCIA works
Cardreader works
Fingerprint Reader works
Suspend works
Extra keys not fully functional
ACPI works

Resizing the windows partition

Resizing the Windows Vista partition worked fine using ntfsresize of ntfsprogs version 1.13.1-6+b2 and cfdisk of gnu-fdisk version 0.9.4-2. If you want to keep the ThinkVantage rescue partition just don't touch the first partition (see screenshot of cfdisk of my partition setup for details). All you have to do to use ThinkVantage and/or Windows then is adding an entry to your bootmanager like the following for /etc/lilo.conf:



Notice: GNU Fdisk 0.9.4 of package gnu-fdisk version 0.9.4-2 segfaults when trying to print my partition schema (#0 0xb7e4870b in strlen () from /lib/ but fdisk v2.12r from util-linux works fine.

Booting and Installing grml/Linux

The X61s doesn't have an optical drive (unless you have a docking station of course). I booted grml from USB pen (installing grml on usb pen via grml2usb) and did a normal grml2hd installation (took about 5 minutes overall). As grml supports installation on external USB and firewire devices out-of-the-box that's not a big deal. If you want to install *plain* Debian (as in: not grml) just boot grml from usb pen and install Debian via grml-debootstrap.

Hardware details

% lspci
00:00.0 Host bridge: Intel Corporation Mobile PM965/GM965/GL960 Memory Controller Hub (rev 0c)
00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 0c)
00:02.1 Display controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 0c)
00:19.0 Ethernet controller: Intel Corporation 82566MM Gigabit Network Connection (rev 03)
00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Contoller #4 (rev 03)
00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 03)
00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 03)
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 03)
00:1c.1 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 2 (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f3)
00:1f.0 ISA bridge: Intel Corporation 82801HBM (ICH8M-E) LPC Interface Controller (rev 03)
00:1f.1 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) IDE Controller (rev 03)
00:1f.2 SATA controller: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA AHCI Controller (rev 03)
00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 03)
03:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02)
05:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev ba)
05:00.1 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller (rev 04)
05:00.2 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 21)

% lsusb
Bus 006 Device 005: ID 1199:6813 Sierra Wireless, Inc.
Bus 001 Device 009: ID 0a5c:2110 Broadcom Corp.
Bus 001 Device 008: ID 0483:2016 SGS Thomson Microelectronics Fingerprint Reader


The 'Intel(R) Core(TM)2 Duo CPU L7500 @ 1.60GHz' CPU works (of course) out-of-the-box. cpu-frequency scaling works as well out-of-the-box using the acpi-cpufreq kernel driver.


I updated the BIOS to version 7NET25WW (1.06), release date 07/02/2007 via the Lenovo tool inside Windows Vista.


I bought an upgrade from 2*512MB to 2*1024MB RAM (using original Lenovo SODIMM/DDR2 RAM running at 667 MHz).

Works out-of-the-box with intel_agp of kernel 2.6.22-grml using the intel driver running:


Multihead support works as well thanks to xrandr (more details regarding xrandr will follow in my personal blog). See xorg.conf for details.

Just as a reference my current package versions:

ii  xserver-xorg            1:7.2-5                 the X.Org X server
ii  xserver-xorg-core       2:       X.Org X server -- core server
ii  xserver-xorg-video-inte 2:2.1.0-2               X.Org X server -- Intel i8xx, i9xx display driver

Notice: Whereas you won't be able to use differnet resolutions for internal and external monitor inside Windows Vista(!) that just works with Linux! Using 1024×768 on the X61s interal display and something like 1680×1050 on an external TFT monitor is no problem! Clone modus works as well as internal-monitor-only, external-monitor-only and Xinerama! The VGA signal is fine, I don't have any problems with my external 22” TFT connected via VGA to the X61s.

DRI (3d acceleration) works out-of-the-box with libgl1-mesa-dri version 7.0.1-1 from Debian/experimental (unless you use Xinerama where DRI won't work at all):

% glxinfo | head -5
name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.2



The Intel Corporation 82566MM Gigabit Network Connection LAN device is present using the e1000 kernel module and works out-of-the-box.


The Intel Corporation PRO/Wireless 3945ABG Network Connection WLAN device works out-of-the box using the ipw3945 kernel module.


The Sierra Wireless UMTS modem works running:

# modprobe usbserial vendor=0x1199 product=0x6813
# modprobe sierra
# gcom -d /dev/ttyUSB0
# wvdial --config /etc/wvdial.conf.umts $PROVIDER

$PROVIDER is 'tmusb' (T-Mobile USB variant in grml's /etc/wvdial.conf.umts configuration) in my case.

Tip: If you don't get a /dev/ttyUSB0 device make sure to check out /proc/acpi/ibm/wan of the thinkpad_acpi kernel module ('modprobe thinkpad_acpi experimental=1; echo disable > /proc/acpi/ibm/wan ; echo enable > /proc/acpi/ibm/wan').


The Intel Corporation 82801H (ICH8 Family) HD Audio Controller soundcard does not work out-of-the-box because Alsa 1.0.14 does not support the device yet. But the current development version (hg tree) of Alsa source (which will become the next stable version) works fine. Grab my Debian packages for building it with module-assistant or the ready-to-go Debian package for 2.6.22-grml from

Tip: you have to enable the speaker item inside alsamixer to get output on your boxes, otherwise you'll have working sound only on the headphone. ;-) Check out alsamixer.png as a reference for a working soundsetup.


Works fine in AHCI mode:

# hdparm -tT /dev/sda

 Timing cached reads:   4460 MB in  1.99 seconds = 2235.82 MB/sec
 Timing buffered disk reads:  124 MB in  3.03 seconds =  40.98 MB/sec

The harddisk protection does not work with the mainline kernel hdaps driver. Use the tp-smapi-source package from Debian instead to build the tp_smapi modules for hdaps. Use Debian packages hdaps-utils and hdapsd for further testing and use.

Mouse / TrackPoint

The touchpad and mouse replacement named TrackPoint (the “red point inside the keyboard” :-)) works out-of-the-box. Tested with different types of services using kdebluetooth and a Sony Ericsson K750i.


Works out-of-the-box.


The Broadcom BCM2045B device works out-of-the-box using the kernel drivers bluetooth and hci_usb. Tested with several services of kdebluetooth and a Sony Ericsson K750i.

Notice: If you don't see anything inside 'hwinfo –bluetooth' make sure to check out /proc/acpi/ibm/bluetooth of the thinkpad_acpi kernel module ('modprobe thinkpad_acpi experimental=1 ; echo disable > /proc/acpi/ibm/bluetooth ; echo enable > /proc/acpi/ibm/bluetooth').


Not yet tested, but ohci1394/ieee1394/… are loaded out-of-the-box.


Running sensors-detect reveals that you have to load the coretemp kernel module, then you will get:

# sensors
Adapter: ISA adapter
Core 0:      +47°C  (high =  +100°C)

Adapter: ISA adapter
Core 1:      +46°C  (high =  +100°C)


Works out-of-the-box (tested with a Qualcomm 3g CDMA vodafone card from austrian provider T-Mobile).


The Ricoh Co Ltd RL5c476 II card reader works out-of-the-box. Inserting a SD card automatically loads the sdhci kernel driver, grml-rebuildfstab is executed and accessing the card is possible via a simple 'mount /mnt/mmcblk0p1'.

Fingerprint Reader

The SGS Thomson Microelectronics Fingerprint Reader works fine with the instructions from the ThinkWiki using the Debian packages from It is connected via USB and therefore uses the uhci-hcd kernel module.

The thinkfinger package is not yet available in Debian's pool but it's sitting in the new queue already and targeted for experimental (see #409563 for details).

Hint: do not forget to load the uinput kernel module and of course make sure uhci-hcd is loaded as well.



Works fine, even in grml live-mode. Just boot your system with the 'acpi_sleep=s3_bios' kerneloption, activate 'USuspendRamForce yes' in /etc/hibernate/ususpend-ram.conf and suspend your system running:

# hibernate-ram --force

Notice: suspending on the plain console does not work yet (have to investigate on that), suspending from works fine though.

As a reference: I've hibernate Debian package version 1.96~pre-svn.r1136-1 and uswsusp version 0.6~cvs20070618-1 on my system.


Works. All you have to do is adjust /etc/uswsusp.conf:

# /etc/uswsusp.conf(8) -- Configuration file for s2disk/s2both 
compress = y
early writeout = y
resume device = /dev/sda5

and make sure you boot with a valid resume=/dev/… kernel option (make it permanent via /etc/lilo.conf or /boot/grub/menu.lst) and finally do not forget to rebuild initramfs via 'update-initramfs -c -t -k $(uname -r)' if you are using it so it's aware of the resume feature.

Extra keys

Some extra keys work but some don't (investigating on that). Which extra buttons definitely work out-of-the-box:

  • the light button (Fn-“Bild” on my german keyboard layout)
  • the suspend-to-RAM button (Fn-F4) [suspending and restore work fine]

I'm investigation on the other keys…


Works out-of-the-box:

# dmesg | grep 'supports S'
ACPI: (supports S0 S3 S4 S5)
# acpi -V
     Battery 1: discharging, 97%, 01:40:16 remaining
     Thermal 1: ok, 48.0 degrees C
     Thermal 2: ok, 47.0 degrees C
  AC Adapter 1: off-line

Notice: I'm using the provided/by-default-shipped, small battery here. You can buy a bigger battery providing much longer battery time of course…


Keymapping for Caps-Ctrl

The control key is nearly below the A-key and therefore not that comfortable to use for users of GNU screen. I remapped the Capslock key as control key therefore using the following snippet at the end of my ~/.Xmodmap:

! caps-lock- *and* ctrl-key should be ctrl:
clear Lock
keysym Caps_Lock = Control_L
add Control = Control_L


The thinkpad-acpi provides several features like adjusting brightness of display, activating hardware,… Important: if bluetooth and/or wan don't work for you use the thinkpad_acpi kernel module to control them:

# modprobe thinkpad_acpi experimental=1

You will find several files inside /proc/acpi/ibm then:

root@grml /proc/acpi/ibm # ls
beep  bluetooth  brightness  cmos  driver  ecdump  fan  hotkey  led
light  thermal  video  volume  wan

See ibm-acpi-README for more details regarding configuration (like “echo 'level 7' >/proc/acpi/ibm/brightness”, “echo enable > wan” and so on).

lenovo_x61s.txt · Last modified: 2011/10/13 21:55 (external edit)
Recent changes RSS feed Creative Commons License Valid XHTML 1.0 Valid CSS Grml homepage Driven by DokuWiki