Saturday, October 29, 2011

Arch Linux on a Thinkpad X220

Crucial M4 SSD Thinkpad X220 7mm ModSome thoughts on Arch Linux on the X220:
  • Adding i915.i915_enable_rc6=1 to you kernel boot options can result in considerable cooling and power savings (and possible unwanted shutdowns?)
  • The screen brightness jumps to full after certain ACPI events, such as at startup and lid open. I haven't fully solved this but have added xbacklight -set 80 to my .xinitrc.
  • Occasionally when I connect to power, yacpi reports a maximum CPU frequency of 800MHz. I haven't been able to reliably recreate or investigate.
  • Volume/Mute buttons work with xbindkeys, though I haven't got the mic mute to work yet even with Corubba's udev keymap suggestion below. Also if the machine is muted at boot the mute toggle doesn't work. (Windows seems to exhibit similar behaviour.)
  • For right and middle click on the Touchpad install xf86-input-synaptics-clickpad. You can also configure XOrg for tapping the corners.
  • I haven't properly measured battery life, but it's estimated at around five hours with my standard 6 cell pack, which isn't bad, and is similar to the Windows estimate.
  • If your machine reboots after shutdown add rmmod ehci_hcd to rc.local.shutdown.
  • If your machine pauses at shutdown with e1000e 0000:00:19.0: eth0: Could not acquire PHY then add rmmod e1000e to rc.local.shutdown.
  • Power button to power off instructions here. Note that you have to hold the power button down for three seconds until the machine beeps. Note also that I couldn't get the "first solution" on that page to work, but the second does.
  • If udevd times out (after 30 seconds) at boot then try adding your wireless driver (eg rtl8192ce) to MODULES in rc.conf.
I've had a bit of an adventure with wireless, so I thought I'd give it its own section:
  • I made the mistake of not paying £3 to upgrade the wireless to Intel and got the RealTek 8188ce card by default. The kernel driver doesn't seems fine. that great, use the RealTek driver or better, the AUR package (currently neither is available for 3.1).
  • As I found out to my cost, the Thinkpad BIOS has a whitelist of wireless cards, and if yours doesn't match then your machine won't even boot, even if it is a genuine Intel Centrino Advanced-N 6200. However there are plenty of modded BIOSes out there, although not necessarily quite up to date. Try googling your model number + "whitelist". I got my X220 BIOS here.
  • Oddly, after installing the 6200 my machine started suspending twice when I closed the lid, fixed by adding the following line to /etc/acpi/actions/
    if [[ `cat /proc/acpi/button/lid/LID/state | awk '{print $2}'` = "closed" ]]
  • Disappointingly the Intel card doesn't seem any better than the RealTek, not connecting as fast as the RealTek did with the Aur driver and it didn't cure my disconnection issues. They seem to have been cured by flashing our Virgin provided D-Link DIR-615 with dd-wrt.
See also my post on the X220 and booting GPT drives.

A note for Windows 7 - don't install the Intel HD graphics driver before Windows SP1 or you'll get a blue screen.


Anonymous said...


You say that battery life should be around 5 hrs, is that with the 6 cells battery?


Jamie said...

Yes, that's with the standard 6 cell pack, and video brightness lowered by a couple of notches.

Anonymous said...

Hi, just a couple of questions I forgot to ask: do you experience problems with heat/temperature/constantly running fan?

And which kernel version are you running? Am asking, as you probably know, kernel 2.6.38+ have power regression problems, affecting the temperature and battery life.

Thanks again.


Jamie said...

No, the fan is very quiet if it is on and it seems to run cool. I am running kernel 3, and no, I didn't know about any power issues.

Anonymous said...

Cool.. Thanks.

Aeon said...

Great blog. I'm considering starting a WP site on Arch on the X220, since it seems like setting it up is going to be an adventure in itself, and with my current knowledge of Linux, I'm not expecting to get a working machine before a while lol.

Hasan Karahan said...

Hi, Thanx for the blog; I also just got an x220, i7 64 bit, and fixed more or less all the stuff you can fix except the microphone mute button.. that just does not want to work; I read that you'd a similar issue here. Any progress?

Jamie said...

No. Xev doesn't show any response, so I assume that it's an issue perhaps with thinkpad-acpi. Maybe report a bug?

Corubba said...

Thanks for the summary. In order to get the mic button to work, you need to copy /lib/udev/keymaps/module-lenovo to /etc/udev/keymaps/ and change the 0x1A line from 'micmute' to 'prog2' (0x13 to 'search' for Fn+Space). Reboot and here we go (tested with kernel v3.2.14-1 and udev v181-9).

Was anyone able to get the wlan led working?

Jamie said...

Thanks for the suggestion Corubba, although it didn't work for me. What does your mic show up as in alsamixer? I only get "Capture", which I don't seem to be able to mute with amixer.

My wireless LED has always worked in that it comes on when connected.

Corubba said...

Did you at least see the Keys with `xev`? I also only have the "Capture" control, but it is mutable with amixer `amixer -c 0 set Capture (cap|nocap|toggle)`

Jamie said...

Yes I did see the keys with xev. To be honest I'm not really using the X220 any more, so I'm not going to struggle to get it to work. Thanks anyway.