Lenovo Thinkpad X200s

1. Hardware information

1.1. Standard Features

2. CentOS-5

2.1. Installation

I had no problems during the installation process from a DVD image on a USB harddisk. The laptop itself has no DVD player, but you can use the DVD player from the Ultrabase to install directly from CD/DVD if you have one.

2.2. Post-installation notes

The following components worked out of the box:

2.2.1. Wireless hardware support for Intel 5300AGN

CentOS 5.3 comes with working drivers for both the Ethernet and the Wireless. You need at least kernel 2.6.18-128.el5 !

I have added the following options to /etc/modprobe.conf to influence the iwlagn driver:

alias wlan0 iwlagn
options iwlagn fw_restart50=1 11n_disable50=1 qos_enable50=1 swcrypto50=1

2.2.2. Wireless firmware for Intel 5300AGN

I needed the Intel firmware for my Intel Wireless 5300AGN adapter, so I had to install the iwl5000-firmware package from RPMforge. As described on the Wireless page.

2.2.3. Onboard Ethernet

See above remark about kernel 2.6.18-128.el5 or higher.

2.2.4. Direct rendering

The video drivers for this hardware worked fine. For direct rendering support you need to load the i915 kernel module. One way to do this on start up is to add a line with "modprobe i915" to /etc/rc.d/rc.local (there should be some infrastructure to load kernel modules on boot).

Despite this, I could not make Compiz work (yet). GL applications crash the X server with CentOS 5.3.

2.2.5. Framebuffer driver

I am not a big fan of using the framebuffer driver (mostly because I seldom use text consoles nowadays), but if you like to boot with a framebuffer driver, try the following kernel command line parameters: vga=0x0368 or try vga=872 video=intelfb

2.2.6. External VGA port

I had some issues making the external VGA port work as I expected using Fn+F7. Apparently this was because X somehow finds 2 HDMI pipes that have no external connector. The easiest way to make everything work is to disable these HDMI ports from your /etc/X11/xorg.conf by doing something like this:

Section "Monitor"
    Identifier    "HDMI-1"
    Option        "Ignore" "True"
EndSection
Section "Monitor"
    Identifier    "HDMI-2"
    Option        "Ignore" "True"
EndSection
Section "Device"
    Identifier  "Videocard0"
    Driver      "intel"
    Option      "monitor-HDMI-1" "HDMI-1"
    Option      "monitor-HDMI-2" "HDMI-2"
EndSection

This may also help if X has troubles with correctly setting your resolution, or changing resolution using xrandr.

2.2.7. Harddisk Active Protection System

Does not work out of the box. You can compile the driver and install the hdapsd package from RPMforge if you prefer.

2.2.8. Camera support

The built-in camera is driven by the uvcvideo driver, which on CentOS 5.3 correctly loads and provides the device node. But some programs do not use the V4L interface to this camera correctly:

Most likely we need to control the device before being able to use it with those apps. Or these applications need a more robust interface.

But ffmpeg and xawtv work !

With ffmpeg from RPMforge, you can run the following command to record from your camera:

ffmpeg -f video4linux2 -s 320x240 -i /dev/video0 -f m4v camera.m4v

And play it back using vlc or mplayer. Or simply watch yourself using xawtv from RPMforge

Good news: The kmod-video4linux from the ELRepo repository provides a newer driver and makes the webcam device work without flaws. Works great in Skype and other applications.

2.2.9. Volume buttons

I am pleased to say that the volume buttons on the newer Thinkpads are software buttons, and not hardware buttons. This makes it possible to simply map those button's keycodes to Xorg events systemwide. You can do this simply by adding the following lines to the file /etc/X11/Xmodmap:

keycode 144 = XF86AudioPrev
keycode 153 = XF86AudioNext
keycode 160 = XF86AudioMute
keycode 162 = XF86AudioPlay
keycode 164 = XF86AudioStop
keycode 174 = XF86AudioLowerVolume
keycode 176 = XF86AudioRaiseVolume
keycode 233 = XF86Forward
keycode 234 = XF86Back

And then either restart Xorg or run xmodmap /etc/X11/Xmodmap.

The default Gnome mixer understands the XF86AudioMute, XF86AudioLowerVolume and XF86AudioRaiseVolume events. Firefox understands the XF86Forward and XF86Back events. And Rhythmbox understands the XF86AudioPlay, XF86AudioPrev and XF86AudioNext events.

(!) Alternatively, you can configure these buttons inside Gnome in System > Preferences > Keyboard Shortcuts. Then simply press the keys for the Volume Mute (0xa0), Volume Down (0xae) and Volume Up (0xb0). However this will only change it for the current user and is not the advised solution.

2.2.10. Additional Fn keys

The following Fn key combinations work by default:

For the additional Fn key combinations to work, you need to load the thinkpad_acpi module with some extra options, add this to the /etc/modprobe.conf:

options thinkpad_acpi experimental=1 hotkey_report_mode=1

From then on, you can add new acpi events in /etc/acpi/events/, like /etc/acpi/events/fn-f5.sh for the Fn-F5 key combination:

event=ibm/hotkey HKEY 00000080 00001005
action=/etc/acpi/actions/thinkpad-bluetooth.sh

And new acpi actions in /etc/acpi/actions, like /etc/acpi/actions/thinkpad-bluetooth.sh:

#!/bin/bash
case "$(/bin/awk '/status/ { print $2 }' /proc/acpi/ibm/bluetooth)" in
    (enabled) echo -n disable >/proc/acpi/ibm/bluetooth ;;
    (disabled) echo -n enable >/proc/acpi/ibm/bluetooth ;;
    (*) echo "ERROR: Unkown status from /proc/acpi/ibm/bluetooth, please fix." >&2 ;;
esac

And make this file executable:

chmod a+x /etc/acpi/actions/thinkpad-bluetooth.sh

If you want to test it you have to restart acpid:

service acpid restart

2.3. Issues

2.3.1. Fingerprint reader

The fingerprint reader that ships with this laptop is not supported by the thinkfinger package nor by the libfprint/pam_fprint package. Currently no solution exists for this hardware, but it is believe to be part of libfprint in a future release.

2.3.2. Lenovo BIOS hardware whitelisting

With most recent IBM/Lenovo's thinkpads, the BIOS is very picky on what PCI devices are supported. If your device is not a standard Lenovo option (or your BIOS is old), your newly inserted hardware may cause the dreaded ERROR 1802 Unauthorized network card is plugged in - Power off and remove the miniPCI card. error.

You can find ways to patch the BIOS via Google, however this may be dangerous or time-consuming.

In my case I had foreseen an Intel Pro Wireless 3945ABG mini PCI card, but the BIOS (v1.06) did not accept this device. Luckily I managed to make the original devices work (see above).

2.4. Models tested

3. CentOS-4

Please add your experiences with CentOS-4 here.

4. Links

HowTos/Laptops/Lenovo/Thinkpad-X200s (last edited 2009-06-04 21:50:38 by DagWieers)