Sunday, 8 February 2009

Ubuntu Intrepid on the Lenovo/IBM Thinkpad x200s

This machine came with a preinstall of Windows Vista Business OEM, but only 2GB of RAM. That was clearly an extremely poor choice, so I have installed Ubuntu Intrepid on it (and detailed compatibility and tweaks below). The laptop is light and runs a lot cooler than my previous x61s, although at the price of a slight increase in size. Personally I think that's a price worth paying, and the battery life is currently at about 7 hours on the 9 cell battery so it's also practical for long college lectures. The build quality is extremely good, and I can even race in TORCS, shoot things in OpenArena and use Google Earth on it. I'd recommend it as a linux laptop.


The processor is an Intel(R) Core(TM)2 Duo CPU L9400 @ 1.86GHz, and runs fine under Intrepid including frequency scaling.


The 4500MHD works well in performance (700fps in glxgears), but detects resolutions poorly at first, with the autodetect only picking up a 1024x768 resolution. I enclose my xorg.conf, which fixes the issue. It should also be noted that this is already fixed in Jaunty Alpha 3, where it works out of the box.
Section "ServerLayout"
Identifier " Configured"
Screen 0 "Screen0" 0 0

Section "Files"
ModulePath "/usr/lib64/xorg/modules"
FontPath "/usr/share/fonts/misc/"
FontPath "/usr/share/fonts/TTF/"
FontPath "/usr/share/fonts/OTF"
FontPath "/usr/share/fonts/Type1/"
FontPath "/usr/share/fonts/100dpi/"
FontPath "/usr/share/fonts/75dpi/"
FontPath "/usr/share/fonts/corefonts/"
FontPath "/usr/share/fonts/mathematica-fonts/"

Section "Module"
Load "dri"
Load "extmod"
Load "glx"
Load "record"
Load "xtrap"
Load "dbe"
Load "freetype"

Section "Monitor"
Identifier "Monitor0"
VendorName "LEN"
ModelName "4010"
Option "DPMS"
Option "PreferredMode" "1280x800"

Section "Monitor"
Identifier "FakeHDMI-1"
Option "Ignore" "True"

Section "Monitor"
Identifier "FakeHDMI-2"
Option "Ignore" "True"

Section "Device"
Option "DRI"
Identifier "Card0"
Driver "intel"
VendorName "Intel Corporation"
BoardName "Unknown Board"
BusID "PCI:0:2:0"
Option "monitor-HDMI-2" "FakeHDMI-2"
Option "monitor-HDMI-1" "FakeHDMI-1"
Option "monitor-LVDS" "Monitor0"

Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1280x800" "1024x768" "800x600"
# Virtual 1920 1200
The screen resolution preference can then be adjusted correctly. Many x200s models have 1440x900 screens, in which case the resolutions above should be altered accordingly.


Brightness controls function perfectly, as does backlight control.

Optical Drive

I don't have one, so I cannot comment.


The Intel HDA sound works out of the box, including the internal and external microphone and the volume controls above the keyboard.


The webcam is a UVC camera (17ef:480c) that is branded by Lenovo. It appears as a normal UVC device and works fully in Skype, Cheese and Ekiga. The picture quality is good, and it works well even under relatively low light.


The ethernet connector is a e1000e, and works perfectly out of the box. The command "ethtool -s eth0 wol d" allows the ethernet card to sleep, and I have enabled it in /etc/rc.local to save power.


The Intel 5300 802.11abgn wifi card works fully, as one now expects from Intel chipsets. Network Manager can handle all forms of encryption, and works after suspend.

The wireless switch works as one would expect.


The bluetooth works fully out of the box.

56K Modem

I have not attempted to use this.


USB works across all ports, and can autosuspend with a config tweak. Bear in mind that the fingerprint reader and bluetooth work via USB, and will thus prevent autosuspend if activated.

Suspend & hibernate

Both work fully out of the box. The time to come back from suspending to RAM is about 5 seconds.