X220

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
  • Fingerprint reader
  • SD Card Reader

Need to install

xf86-video-intel (for the video card) }}}