also see FreeBSD

{{{

# FreeBSD on a Lenovo X220

(Originally written 2016-11-25)

TLDR: everything important works

Last summer (2015) my last laptop started to give the ocasional smoke signal. This led me to buying a used X220 from Luxnote Hannover (I originally ordered a X201 which I send back because of a not perfect display and than discovered that the X220 had a digital video out (Display Port) which the X201 hasn’t), put an SSD in it and installed a FreeBSD 10.2 on it. Currently I’m running a snapshot of FreeBSD 11 from 2016-11-19, because I read somewhere that power consumption has been tuned, but I don’t see any difference.

I’ve now been using the X220 since more than 6 months as my primary laptop and am very happy with it.

## What I expected to work (and does work)

• X.org in native resolution with proper GPU support (the reason I didn’t buy a new Laptop)
• WLAN (with wifimgr even WPA encrypted networks are easy to get connected to)

## What works which I was surprised about

• Suspend to RAM and resume (sudo zzz), resume never worked properly on my previous Lenovo with Debian (the WLAN card got switched off on resume, but I didn’t spend too much time trying to fix this)

• USB tethering with an Android telephone

• Youtube (in Firefox and Chrome)

• Neo 2 layout, the Neo Wiki claims only layers 1 and 2 work (I haven’t tried it in the tty yet)

• Battery usage of 7+ hours (with large battery though)

• Mute button, display backlight buttons, keyboard light button

• Digital and analog video out both work (using xrandr, same as under linux/Debian)

## What doesn’t work out of the box (and I haven’t tried to fix yet)

• Two finger scrolling on the touch bad (fixed by pkg install x11-input-drivers/xf86-input-synaptics x11/libsynaptics, adding hw.psm.synaptics_support="1" and enabling moused to loader.conf)
• Suspend to disk/hibernate, I believe FreeBSD does not currently support it at all
• Google Maps enhanced mode (WebGL?)

## What was harder than expected (mostly Lenovo’s fault)

• It was rather hard to get FreeBSD booting after installation, but this seems to be due to a bug in Lenovo’s BIOS/UEFI implementation, recent FreeBSD versions (at least snapshots) contain a work around
• The Realtek WLAN NIC wasn’t supported by FreeBSD, with supported WLAN NICs the X220 would not boot, because the BIOS contains a whitlist and only boots with those. After patching the BIOS everything works OK.

## What I haven’t tried

• Bluetooth (neither sure if the X220 has Bluetooth nor if there is any support for it in FreeBSD)
• Webcam