Linux on ThinkPads: A Practical Overview

Generational compatibility, hardware quirks, and configuration that actually helps.

ThinkPads have a long and largely deserved reputation for Linux compatibility. IBM’s original BIOS engineering prioritised standards compliance, and Lenovo has broadly continued that approach. The ThinkPad Linux community (centred around the thinkwiki.org archive) has documented nearly every model going back to the T20. This article covers which current and recent models work best, what the remaining friction points are, and the configuration changes that make a real difference.

Which generation to buy

X1 Carbon (Gen 10 and Gen 11)

The X1 Carbon 10th generation (2022, Intel 12th gen Alder Lake) is the safest current recommendation. Kernel support is mature from 5.17 onwards; on a current Ubuntu 22.04 LTS or Debian 12 install, essentially everything works out of the box: Wi-Fi (Intel AX211), Bluetooth, fingerprint reader, IR camera, Thunderbolt 4, and the excellent IPS or OLED display. Suspend/resume is reliable when using s2idle rather than deep sleep.

The Gen 11 (2023, Intel 13th gen Raptor Lake) is similarly well-supported from kernel 6.1. The main consideration is that Lenovo switched to a 2.8K OLED display option on some SKUs, which consumes more power at high brightness than the IPS panel — relevant if you care about battery life.

T-series (T14s Gen 4 / T16 Gen 2)

The T-series AMD variants (Ryzen 7000 series) are excellent on Linux. AMD’s upstream kernel contributions are strong, and the integrated graphics (RDNA 3 on the 7840U) work well under the standard amdgpu driver. Battery life on the T14s AMD Gen 4 is genuinely impressive: 10–12 hours of light use is achievable with TLP or power-profiles-daemon configured correctly.

Avoid the Intel variants of this generation if you have a choice; the 13th gen Intel CPUs run warmer and have slightly less mature thermal management under Linux.

X13 Gen 4 (AMD)

The X13 is the compact option: 13-inch form factor, same Ryzen 7000 silicon as the T14s. Excellent portability, good battery, fully supported. The only caveat is the keyboard, which some find too shallow compared to older ThinkPads.

Hardware that needs attention

Fingerprint readers

Lenovo uses Goodix and Synaptics fingerprint readers depending on the model. Goodix readers are supported in libfprint from version 1.90.7 and work with fprintd and PAM on recent distros. Enrolment on some models requires a BIOS update to the latest version. Check your model at fprint.freedesktop.org/supported-devices.html before relying on it.

Suspend and hibernate

The default suspend mode on modern kernels is s2idle (S0ix, or “modern standby”). This keeps the processor in a low-power state rather than fully suspending to RAM, which means faster resume but higher idle power draw than traditional suspend-to-RAM. On most ThinkPads you can toggle this:

# Check what suspend modes are available
cat /sys/power/mem_sleep
# shallow = s2idle, deep = suspend-to-RAM (ACPI S3)

# Force deep sleep (lower power, slower resume)
echo deep | sudo tee /sys/power/mem_sleep

# Make it permanent via kernel parameter
# In /etc/default/grub, add to GRUB_CMDLINE_LINUX:
#   mem_sleep_default=deep
sudo update-grub

Whether deep sleep is available depends on both the BIOS and the hardware generation. Most Lenovo Yoga models have removed deep-sleep support entirely; the T and X series still offer it on most models.

Thunderbolt and docking stations

Thunderbolt support under Linux requires the thunderbolt kernel module (automatic on modern kernels) and user-space authorisation via bolt:

apt install -y bolt
boltctl list
boltctl enroll --policy=auto <uuid>

Most Lenovo ThinkPad docks (Thunderbolt 3 and 4 versions) work correctly for USB, power delivery, and video output. Audio over the dock USB hub is occasionally temperamental; if you see it not working, check journalctl -b | grep -i audio for USB enumeration errors.

Battery and power configuration

TLP is the most widely used Linux laptop power manager. The defaults are reasonable but a few settings make a significant difference for ThinkPads:

apt install -y tlp tlp-rdw
# ThinkPads get access to charge thresholds:
# /etc/tlp.conf
START_CHARGE_THRESH_BAT0=40
STOP_CHARGE_THRESH_BAT0=80

Setting charge thresholds to 40–80% is the standard recommendation for battery longevity if the machine is usually plugged in. The BIOS also exposes these thresholds natively on most ThinkPad models.

For CPU frequency scaling:

# Check available governors
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors

# Power-profiles-daemon (simpler alternative to TLP for Fedora/Ubuntu 22.04+)
apt install -y power-profiles-daemon
powerprofilesctl list
powerprofilesctl set power-saver

Display scaling

2K and 4K panels require fractional scaling. Under Wayland (GNOME or KDE Plasma 6) this works well. Under X11 it is more involved:

# GNOME Wayland: works via display settings GUI
# Or from terminal:
gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"
gsettings set org.gnome.desktop.interface text-scaling-factor 1.25

# KDE Plasma 6 Wayland: System Settings > Display & Monitor > Scale

Kernel parameters worth setting

# /etc/default/grub GRUB_CMDLINE_LINUX additions:
# Enable NVMe APST power saving:
nvme.noacpi=1
# Avoid Intel platform controller hub sleep regression:
pcie_aspm=force
# On AMD: enable AMD P-state driver
amd_pstate=active
sudo update-grub && sudo reboot