A few notes on the Lenovo X220
13 Jun 2011

I ordered off an eBay seller in the US. Lenovo Australia doesn’t even list the X220 yet (and they charge almost double what eBay sellers do.) So far, I’ve ordered one laptop from Lenovo directly and two from eBay sellers. So far, eBay is much cheaper and a little faster, despite this one getting stuck in Customs for about a month.

It’s damn fast, and I can’t explain why. My T410 had a first-gen i5 and NVIDIA graphics. This has a second-gen i5 and Intel 3000, but once I stick in my LUKS password, it takes about a second to reach the login screen.

I’m running Ubuntu Natty. All of the hardware just works. Suspend doesn’t, despite what’s listed on the Ubuntu Wiki, but installing PPA kernel 2.6.39rc4 fixes things. VMware doesn’t work with this kernel, but the patch on this page fixes that.

I still get the occasional hard lock or failure to wake from suspend. The graphics driver seems to be the cause of most problems. There are occasional glitches like when opening the screen, occasionally you get random patterns (though the mouse pointer looks sane.) Switching to the console and back sometimes fixes it; closing the lid and opening sometimes fixes it; suspending and resuming sometimes fixes it, but just occasionally, I have to reboot. I’ve never had random patterns on the DisplayPort, only the internal screen.

Update, 04 April 2012: I compiled a 3.0.22 kernel for Ubuntu Oneiric which has the RC6 fix. It’s been rock-solid and power consumption is 7-12W most of the time. Very happy. Ubuntu Precise should have the same fix, but I haven’t tested it yet.

The IPS screen (“HD Premium”) looks amazing, even better than my MacBook Pro thanks to the matte filter. There isn’t great mechanical isolation between the frame and the screen, so you get shimmering effects if you twist the screen or press the edges. The 16:9 ratio isn’t ideal, but it fits side-by-side 80 column terminal/gvim with Terminus 12, and that covers 90% of my usage.

The backlight’s LED PWM controller runs at a sometimes-visible frequency. Seriously, people, 500Hz plus. There’s no good reason for LEDs to visibly flicker, EVER. Protip: if you run them at a constant current, you’ll achieve even better efficiency, and that means free battery life.

The keyboard feels a bit better than the T410; less mushy. They must be changing the keyswitches or something between models, because it looks almost identical physically.

There’s no eSATA port on the machine, but it does work through the dock.

DisplayPort works through the dock, too, unlike the T410. DisplayPort works happily with the 2560x1440 monitor at work.

When you plug in a DisplayPort monitor, it shows up instantly (and potentially switches it on.) This is a massive improvement over mouse clicking through the NVIDIA control panel. xrandr --auto works, as it should.

The VGA output is reported to not work, but I had no issues. I finally have full-screen Flash videos. They didn’t work on NVIDIA. I don’t have 3D acceleration in VMware, apparently, but who cares?

The ThinkLight is brighter than before, but again, one must ask the question: who cares? You have a screen illuminating the keyboard or reading material or whatever. I suppose you could turn off the screen and use the ThinkLight while reading a book, but a $5 book light will achieve the same function and not run down your laptop battery. Remove it and add an ambient light sensor; they’re useful and save battery power.

I’m hitting the touchpad a bit with my palm. Will probably disable it.

The touchpad-with-integrated-buttons thing doesn’t really work. I mean, yeah, there’s clearly not enough room there for buttons. But the moment you touch the button like you’re going to press it, the pointer jitters all over the place. This makes it tough to actually click anything, which is sort of the point of having buttons. I recommend just using the upper buttons and ignoring the integrated buttons. Having the integrated buttons there is no worse than leaving them off, but this shouldn’t have made it into the product. The HP Mini puts the buttons on the sides of the touchpad, and that works pretty well; I think that Lenovo should do the same thing on the X220++.

One baffling bug that I’ve experienced is that my VMware virtual machines won’t start (‘Unable to change virtual machine power state: Cannot find a valid peer process to connect to’) if the machine is in the dock. I have to undock, start the VMs and plug it back in. Virtualbox is fine.

I had a lot of trouble getting the thing to boot. For a few weeks, I carried around a USB stick with the System Rescue CD on it, just in case I needed to reboot. (Combined with not working out the suspend problem for a while, I was just leaving the machine running in my backpack for extended periods.) The X220 uses the newer EFI firmware standard, and it appears that Lenovo’s implementation won’t legacy boot from a GPT-partitioned disk. No idea why – the T410 is perfectly happy with this arrangement. Once I worked that out, I converted back to MBR (gdisk makes this fairly safe), reinstalled GRUB, and things started working.

I did spend a lot of time trying to make it boot in EFI mode. I could get both GRUB2 and ELILO to start up, but the moment they tried to execute the kernel, nothing. ELILO would reboot and GRUB2 would just hang. Natty is not really set up for EFI booting. There’s no consistent mount point for the EFI System Partition, so kernel updates are likely to fail, and building a startup disk yields an EFI-style startup disk that doesn’t work, either.

Battery life is fantastic – with the 90W battery, 11 hours is quite achievable, more if you dim down the screen and turn off WiFi. Of course, with the 90W battery, it feels like you’re carrying just the battery and there happens to be a screen hanging off it. Following the suggestions in Powertop helps a lot. There’s a nasty bug in Chrome which ruins battery life – it increases power consumption from about 8W to 16W (i.e. you will achieve half of your battery life, or just running Chrome is doubling the machine’s power consumption.) Firefox doesn’t have this problem, but Firefox renders a lot of stuff strangely on Linux, so I guess I’ll live with it for now.

I had a bit of trouble finding out what the wireless card was from the eBay seller – he just said ‘wireless N’ when I asked (repeatedly.) It is a:

03:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8188CE 802.11b/g/n WiFi Adapter (rev 01)

It continues Realtek’s proud tradition of making really fucking awful network cards. When copying a large file, it reads less than 1MB/sec and jumps around a lot. Sending a file gets peaks of 3MB/sec then drops to near-zero for a while. This is noticeable during web browsing, where if you load a bunch of pages at once the whole lot will stop.

I swapped in the wireless card (Intel Ultimate-6300) from my T410 and things are much better – 5MB/sec down, no pauses. I realised that I don’t have the white MIMO antenna cable – I didn’t think to order a 3x3 WiFi antenna. I’m not sure why it’s an optional extra, especially as the WWAN antennae are always installed. I connected one of the WWAN antennae to the MIMO socket and it bumped throughput to about 7MB/sec, which I’m happy with. Lesson learned: don’t cheap out on the wireless card or antennae. I’m pretty sure that the eBay seller removed the original card and sold it separately – the same happened with my X61s, and I’m doing the same with the T410 when I sell it.

When I reassembled the machine after messing with the WiFi cards, I had trouble getting the right-hand edge of the palmrest to sit flat. It turns out that the antenna cables taped just underneath had shifted. There’s no hook or plastic to hold them in position; you just have to tape them in the right spot to line up with the channel in the palmrest.

Interestingly, the WLAN LED works with the Intel card, where it didn’t on the Realtek. It is a bit distracting when watching movies in the dark. It can be disabled with the led_mode parameter to the iwlagn module.

The 7mm high drive bay (instead of the usual 9mm) could be a problem for some. It doesn’t bother me so much as I use Intel SSDs. With the 80GB MicroSSD option, though, I can see the sense in installing a huge spinning disk and using the 80GB to boot from. Except that there aren’t really any huge 7mm drives. So an SSD is your best bet, both on capacity and performance grounds (the 300 and 600GB G3 models both cost less than my 160GB G2!) The main place where I expect it to bite me is if I have a drive failure and need to buy/install something fast; I can’t just buy a drive from any old computer store, whack it in and restore from backups. I need to have the drive that shipped with the machine.

To handle this, I installed the shipping drive in an eSATA drive box. I have my root partition (LUKS-encrypted, including /home) set up as a RAID1. When I get to work, I hot-add the external drive to the RAID. It background syncs; when it’s complete, I can (theoretically) remove the drive from the box and plug it directly into my laptop to replace the failed SSD. The external drive is a lot slower than the SSD (due to the drive itself, not the interface) so I use the --write-mostly parameter to mdadm. It still slows things down a little, but it’s rarely an issue.

comments powered by Disqus