Installing Ubuntu 10.04 (Lucid Lynx) on a ThinkPad X220

From ThinkWiki
Jump to: navigation, search

Kernel & Graphics

In order to get an intel video driver to recognise the new Sandybridge, you have to add the Ubuntu kernel PPA and the intel-driver PPA from glasen, update all package (this pulls in a new xorg version) and then install linux-image-generic-pae-lts-backport-natty (linux-image-generic-lts-backport-natty is an alternative if you don't have > 4GB memory). That pulls in a 2.6.38 kernel backported from Natty, which is required for the updated intel video driver (version 2.15) to work. It also contains an updated e1000e driver for your network card, which does not work with the Lucid kernels. Make sure you install the kernel AFTER upgrading libdrm (which is provided by intel-driver PPA from glasen, or run update-initramfs -u -k all). Otherwise the new libdrm will not be loaded and the xorg driver will not work.

You have to reboot to load the new kernel.

Just for reference here are the version of the critical packages I have tested:

linux-image-generic-pae-lts-backport-natty 2.6.38.8.18
xserver-xorg-video-intel 2:2.15.0~lucid~ppa4
libdrm-intel1 2.4.25~glasen~lucid~ppa1
libdrm2 2.4.25~glasen~lucid~ppa1

If you have compiz enabled, you might experience a hanging machine after logging in. If you are running Gnome, you can disable compiz on the terminal (before logging in using the GUI) by editing ~/.gconf/desktop/gnome/session/required_components/%gconf.xml and replacing compiz with metacity.

Wireless Lucid Kernel

In order to get wireless to work with the Lucid kernel (it did not connect to any AP on my X220 machine and could not upgrade because the Ethernet did not work either), you have to pass the parameter 11n_disable=0 to the iwlagn module. Simply do:

sudo modprobe -r iwlagn
sudo modprobe iwlagn 11n_disable=0

As an alternative you can create the file /etc/modprobe.d/intel-5300-iwlagn-disable11n.conf with the following content:

options iwlagn 11n_disable=0

Then reload the wireless driver:

sudo modprobe -r iwlagn
sudo modprobe iwlagn

I had to do that a few times, before it worked.