Thinkpad x220

Thinkpad x220

305 × 206 × 20 mm, 1.3 kg

This laptop replaced my Thinkpad x120e in February 2013, mostly because the AMD E-350 processor was too slow.

Everything seems to work. I replaced the disk with an SSD, and the stock battery with the smaller and lighter 4-cell battery.


The i915 video driver became unreliable with kernel commit ea0000f0 "Roll out the helper nonblock tracking", which was first released in 4.8. This results in flip_done timeouts and tracebacks when doing mode switching. I run a 4.14 kernel with this commit reverted. In later kernels it's difficult to revert this. It also helps to remove the xf86-video-intel package and to add "video=SVIDEO-1:d" to the kernel boot options.


My x220 came with a Realtek wifi card, but I've never had much luck with Realtek so I replaced it with an Intel card. The x220 bios has a whitelist for wireless cards, in an attempt to make you buy expensive Lenovo branded cards. Previous Thinkpads could have the whitelist disabled by a simple program, but this one requires a new bios, which is hard to install without running MS Windows. I ended up finding a cheap Intel card that worked so I haven't tried the modified bios.

The iwlwifi driver stopped working with 802.11n as of the 2.6.38 kernel. I use it with 802.11b/g, which seems to work. See for example iwconfig shows high Tx excessive retries, Wireless Issues (TX Retries, Speed, Disconnections), Extremely slow network with Intel "Ultimate N WiFi Link 5300" (iwlagn) after upgrade from Fedora 14, iwlwifi driver for Centrino Wireless-N 1000 slow and unusable after upgrade to CentOS 6.3, and iwlwifi 802.11n usability resolved.

Enable VT-x in bios

If you run VirtualBox or similar, you'll want to enable VT-x in the bios. I think this is required for 64-bit guests. I'm told the option is sometimes hidden in the "Security" menu but I had no trouble finding it.

Linux/Arch quirks

The volume controls seems to be handled by software, not hardware as in previous Thinkpads. This may be handled by some desktop packages. I run xbindkeys:

% cat ~/.xbindkeysrc
"amixer -q -c 0 set Master 4- unmute"

"amixer -q -c 0 set Master 4+ unmute"

"amixer -q -c 0 set Master toggle"

Jim Rees