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