dt.iki.fi

Setting up a ThinkPad x250 with Linux

This article never turned out to be the device-specific alround tutorial I envisioned and has been partially superseded by this article. The ThinkPad itself is in daily use. No regrets!

BIOS Update-up-

The latest BIOS update for this machine is from September this year. Impressive for a 5-year-old laptop. I checked the BIOS, it is at a lower verion than the current 1.38. I downloaded the .iso (first item on this list) and followed the instructions here.

Going through the BIOS - there's loads of interesting options!

Installing Debian Stretch (Bunsenlabs)-up-

The Debian installer required firmware iwlwifi, possible to load from external device like USB stick. This is most likely to succeed with a FAT32-formatted device. I simply copied the relevant firmware (from my ArchLinux installation, I do not think this is distro-specific) to the USB stick:

cp /lib/firmware/iwlwifi* /media/Some-USB-Stick/; sync

Then put the stick in the Lenovo's 2nd USB slot, and told the installer to continue.

Full encryption worked. Power management appears to work reasonably well (still testing).

Keep in mind that Bunsenlabs is still based on Debian Stretch (oldstable), but that doesn't matter much on a classical openbox desktop, and on a device that fits right into the time frame (it came out 2015, stretch became testing the same year, and stable in 2017).

Fingerprint Reader-up-

Following these instructions, and some help from arch wiki. It seems very buggy. Have to do more testing/researching.
...
In the end I installed libfprint0 from stretch-backports, rebooted a few times, and executed sudo pam-auth-update - now it works reasonably well. It seems very finicky (success rate less than 50%), but after registering my right index finger for all fingers the success rate seems better. I can now log in (lightdm) and sudo with it.

Some info about Intel RST-up-

In the end, I'm sorry to say that RST did not work sufficiently well (amongst other things, headphone sound did not work after resume) and I am not using it anymore. I disabled it in BIOS and activated hibernation on the installed Linux system.
I also configured the initramfs to resume as soon as possible: HOOKS=(base udev resume ...
and told it to not compress the initramfs at all: COMPRESSION="cat"
The latter makes the image larger but decreases boot time significantly. With all these changes, resuming from hibernation is just a few seconds slower than with Intel RST.

...that's Rapid Start Technology.
https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_T450s#Intel_Rapid_Start_Technology_(IRST)
https://www.intel.com/content/dam/support/us/en/documents/motherboards/desktop/sb/rapid_start_technology_user_guide_v14.pdf
https://mjg59.dreamwidth.org/26022.html

I had to create the partition and set its type with fdisk, gparted doesn't seem to have an option for 0x84:
https://www.tecmint.com/fdisk-commands-to-manage-linux-disk-partitions/
https://www.tldp.org/HOWTO/Partition-Mass-Storage-Definitions-Naming-HOWTO/x190.html

At first it didn't work, now (currently on ArchLabs, an ArchLinux installer) it does, 100%. Very unsatisfying, not knowing why.
In BIOS, I set it to become active immediately when the machine is suspended. I set xfce4-power-manager to suspend (almost everywhere), not hibernate. So whenever the machine suspends, this turns into Intel RST hibernation; takes about a minute altogether.

No more-up-

Nobody seems to be using RST - at least nobody on the ThinkPad Linux mailing list. Opting for an encrypted swap partition instead, I dropped Intel RST completely. It only ever saved a few seconds at best.

xfce4-power-manager does not Suspend on Lid Close-up-

I found out that xfce4-power-manager defaults to letting systemd-logind handle the lid switch, however systemd-logind is set to ignore it.
There's a solution here; the same can be achieved graphically with the Xfconf Settings Editor (remove the checkmark for logind-handle-lid-switch).