splitbrain.org

electronic brain surgery since 2001

Lenovo Thinkpad X240 & Xubuntu

I just bought a new laptop. After years with netbooks (first the EeePC 4G and then the EeePC 1015PE) this is my first full powered laptop since my Fujitsu Lifebook. I wanted something powerful with good screen resolution and battery life.

I finally decided for the Thinkpad X240. More specifically model 20AMS21B00, which is a university edition and not available in this exact configuration to the general public. Luckily I have connections ;-).

This post features a short review and some hints on configuring the X240 with Xubuntu.


The Specs

  • 12.5“ IPS display (no touch)
  • 1920×1200 full HD resoulution
  • Intel® Core™ i7-4600U CPU 2.10GHz
  • 512 GB Samsung SSD
  • 8GB RAM
  • no 3G module (available in other models)

Here's what lspci says:

00:00.0 Host bridge: Intel Corporation Haswell-ULT DRAM Controller (rev 0b)
00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 0b)
00:03.0 Audio device: Intel Corporation Device 0a0c (rev 0b)
00:14.0 USB controller: Intel Corporation Lynx Point-LP USB xHCI HC (rev 04)
00:16.0 Communication controller: Intel Corporation Lynx Point-LP HECI #0 (rev 04)
00:16.3 Serial controller: Intel Corporation Lynx Point-LP HECI KT (rev 04)
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I218-LM (rev 04)
00:1b.0 Audio device: Intel Corporation Lynx Point-LP HD Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 6 (rev e4)
00:1c.1 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 3 (rev e4)
00:1d.0 USB controHeadlineller: Intel Corporation Lynx Point-LP USB EHCI #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation Lynx Point-LP LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation Lynx Point-LP SATA Controller 1 [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation Lynx Point-LP SMBus Controller (rev 04)
02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. Device 5227 (rev 01)
03:00.0 Network controller: Intel Corporation Wireless 7260 (rev 83)

Photos

Hardware Review

So far I like the laptop a lot, though I still need to get used to the much bigger size than my previous netbook. This 12.5 inch model is the biggest I would ever consider for a mobile computer. I wouldn't have minded it to be a bit smaller even. However unlike other Ultrabooks I considered, the Thinkpad is not a glued together blackbox but can still be opened with a screwdriver – serviceability is a big plus IMHO.

The build feels very solid and personally I find the slightly rounded edges much more pleasing than the traditional hard edges of Thinkpads in the past. The soft matte finish looks nice but seems to attract fat though - you see where you touch it a lot.

The keyboard is quite large with lots of space below to rest your palms - no danger of accidentally activating the touchpad while typing. The keyboard illumination can be enabled manually (FN+Space) in three levels (off, medium, bright). Overall the keyboard is nice, though sometimes I miss keys because the pressure point is a just a tiny bit too hard in my opinion. Some layout decisions are weird though. Eg. the print screen key in the lower row between AltGr and Ctrl is pretty useless. Luckily it's easy to reassign keys if you want (see below).

One thing I found weird is how Lenovo treats the function keys (F1 to F12) - by default they execute their second function (like volume and brightness control). Only when you press FN and the function key the actual F-key code is sent to your applications. Luckily this can easily be reversed by enabling the “FN-Lock”. Just press FN+Esc. The Thinkpad will even remember the setting over reboots.

The CPU is one of the most powerful mobile CPUs available, which of course produces heat. This means as soon as the CPU has to do something more than idling, the fan starts to blow quite audible. Using proper power management (see below) mitigates the problem a bit.

The clickpad is weird. It's a multitouch trackpad but the entire area is a big button too. Depending where your finger is detected while clicking, a different mouse button is emulated. But usually there is no need for real clicks anyway. Just use tapping as on any other touchpad and you're fine. The clicking is mostly useful in combination with the Thinkpad's signature red track point. I rarely use it, but found it useful for selecting text as it is more precise than working with the touchpad.

The display resolution is perfect. You get lots of space on the 12.5 display. People with vision problems might want to adjust the DPI of their system but I am quite happy with a native resolution at 96DPI. Oh, and the display is a matte one - no glares.

The X240 comes with an interesting concept regarding battery life: there is one built-in battery and a second is hot swapable in the back. So you can change batteries while the computer is running! The built-in one is a 3 cell, 23200 mWh one and normally the one in the back is another 3 cell one. I opted for a 6 cell, 71280 mWh instead. So far I can't give extensive feedback on battery life, but I already can confidently say it's above 8 hours and will bring me safely through a day of work without the need for a power socket. Excellent.

With the 6 cell battery the whole weight comes to 1616g - a bit over my limit of 1.5kg. I'm considering buying an additional 3 cell battery for when I don't need the extended battery life.

The power cord uses a weird rectangular connector I haven't seen on any other laptop before. I fear this proprietary adapter might make it hard to find a cheap replacement should the power brick die. I would have preferred something like the Apple magnetic connectors that prevent accidental breakage when someone trips over the cord.

Not hardware related, but still worth mentioning is that there is no manual in the box except for a single quickstart sheet that doesn't explain much more than how to insert the battery. But manuals are available at the Lenovo website. For reference here are the User Manual and Hardware Maintenance Guide.

Verdict: a nearly perfect system with only minor nitpicks.

Xubuntu 13.10 Setup

Xubuntu is still my system of choice for laptops. Since Lenovo is partnering with Ubuntu, hardware support is quite good out of the box and the default install works without problems. I opted for encrypting my home partition in the installer - the system should be powerful enough to handle the slight performance overhead.

Nearly everything (volume controls and sound, WiFi, camera, SD-card reader, etc) works out of the box after install. However as always, some things need to be tweaked…

Brightness Controls

Turning up and down the screen brightness with FN+F5 and FN+F6 did not work correctly out of the box. It basically did nothing for a few keypresses and then dimmed the display to barely visible. This blog post brought the solution. Adjust the default boot parameters in /etc/default/grub like this:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux acpi_backlight=vendor"

Then run sudo update-grub and reboot.

Power Management

Instead of relying on Ubuntu's standard power management I decided to install TLP.

First I disabled Ubuntu's power governor:

sudo update-rc.d -f ondemand remove

then installed the tool and dependencies:

sudo add-apt-repository ppa:linrunner/tlp
sudo apt-get update
sudo apt-get install tlp tp-smapi-dkms acpi-call-tools

TLP is well working without any configuration, but I changed a few things in its config anyway.

/etc/default/tlp
CPU_SCALING_GOVERNOR_ON_AC=ondemand
CPU_SCALING_GOVERNOR_ON_BAT=ondemand
CPU_BOOST_ON_AC=1
CPU_BOOST_ON_BAT=0
SATA_LINKPWR_ON_BAT=medium_power

These might be the defaults and commenting them in might be unnecessary. I'm not sure. The last option is a recommendation for some ThinkPads and might not be needed for the X240, but it won't hurt.

Touchpad

To make the touchpad work as I like it, I started with this blog post and got more info from the Arch Linux Wiki and finally came up with the following configuration file:

/etc/X11/xorg.conf.d/50-synaptics.conf
# Synaptics Touchpad configuration for Thinkpad X240
Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
 
        # buttons by multi-touch taps
        Option "TapButton1"           "1"     # left click with one finger tap
        Option "TapButton2"           "2"     # middle click with two finger tap
        Option "TapButton3"           "3"     # right click with three finger tap
 
        # bottom right corner tap is right click
        Option "RBCornerButton"       "3"
 
        # scroll with two fingers only
        Option "VertEdgeScroll"       "off"
        Option "VertTwoFingerScroll"  "on"
        Option "HorizEdgeScroll"      "off"
        Option "HorizTwoFingerScroll" "on"
        Option "CircularScrolling"    "off"
 
        # locked drags
        Option "LockedDrags"          "1"
        Option "LockedDragTimeout"    "500"
 
        # top row click areas
        Option "ClickPad"             "true"
        Option "SoftButtonAreas"      "60% 0 0 5% 40% 60% 0 5%"
        Option "AreaTopEdge"          "4%"
EndSection
 
# avoid interferences from other drivers
Section "InputClass"
        Identifier "touchpad ignore duplicates"
        MatchIsTouchpad "on"
        MatchOS "Linux"
        MatchDevicePath "/dev/input/mouse*"
        Option "Ignore" "on"
EndSection

This keeps the standard acceleration settings which are quite fast but IMHO necessary to navigate the huge screen efficiently. But I'm used to fast mouse pointers on my desktop as well.

I use the easier two-finger tap for middle mouse button, because I need this much more often than a right click (pasting, opening links in new tab, closing tabs, etc.). As a shortcut, a tap in the lower right corner also works as right mouse button.

I exclusively scroll with two finger gestures and disabled all other ways.

In another blog post I learned about locked drags which makes selecting longer text with the touchpad much easier.

The last lines finally enable the standard clicking behaviour of the clickpad.

As an additional tweak you might want to make double clicks a bit easier by extending the allowed time and movement in XFCE's setting manger: “Settings Manager” → “Mouse and Touchpad” → “Behavior”. A time of 400ms and distance of 8px seem to work fine for me.

Window Managing

All the default XFCE themes use very thin window borders. To resize a window you need to grab the corner of the lower right window. Depending on the theme this might be a 1 by 1 pixel area – extremely annoying to target with just a trackpad.

So I configured a few keyboard shortcuts for the XFCE window manger to ease manual window managing. To do so, go to the Application menu and pick “Settings Manager” → “Window Manager” → “Keyboard”. Here are the shortcuts I set:

Maximize Window <super>Escape
Resize Window <super>Space
Tile window to the top <super>Up
Tile window to the bottom <super>Down
Tile window to the left <super>Left
Tile window to the right <super>Right

The <super> key is the otherwise pretty useless Windows key of course.

Keyboard Config

One thing I found extremely annoying about the keyboard layout is the position of the Home and End keys. And even more annoying is that you need to press FN+End when the FN-Lock is enabled (see above). So I wanted to remap those to the much more convenient PgUp and PgDown buttons right next to the up arrow key.

Extremely helpful in figuring out how to do that was this AskUbuntu answer. A simple .Xmodmap does the trick:

~/.Xmodmap
keycode 112 = Home Home Prior
keycode 117 = End End Next

Pressing Ctrl with one of the keys will make them work as standard paging buttons, otherwise they default to Home and End.

To automatically load the keymap in XFCE I referred to this AskUbuntu answer and created a new entry via “Settings Manager” → “Session and Startup” → Application Autostart” with the folllowing command:

/bin/bash -c "sleep 20; /usr/bin/xmodmap /home/$USER/.Xmodmap"

Fingerprint Sensor

I haven't really tried to get this working. If you have a description, let me know in the comments please.


Update 2018: Thinkpad X240 Arch Linux

Tags:
laptop, notebook, xubuntu, linux, review, howto
Similar posts: