Lenovo ThinkPad T14 (AMD) Gen 1

From ArchWiki
Hardware PCI/USB ID Working?
GPU Yes
Wireless Yes
Bluetooth 8087:0029 Yes
Webcam 04f2:b6d0 Yes
TrackPoint Yes
Touchpad Yes
Fingerprint reader 06cb:00bd Yes
Smartcard reader 058f:9540 Untested
Mobile broadband Yes

This article covers the installation and configuration of Arch Linux on a Lenovo Thinkpad T14 (AMD) Gen 1 laptop. Everything seems to work pretty much out the box with kernel >=5.9.0.

For a general overview of laptop-related articles and recommendations, see Laptop.

Firmware

Secure boot

As of January 2021 deleting SecureBoot keys and installing your own keys (for example by using KeyTool) will brick the device. This is a problem that is similar to one which has been reported on some other Lenovo laptops and is likely due to a faulty firmware. If the device is stuck in a boot loop after replacing the SecureBoot keys, the only way to repair it is by replacing the mainboard of the device. Hopefully, the issue will get fixed with a firmware update in the future.

Battery issues

In an ongoing Lenovo forums thread, there has been a discussion regarding battery drain issues in suspend/powered-off states. Presumably, laptops with AMD Renoir CPUs and relevant hardware are affected. As of now, BIOS firmware version 1.29 is suggested for use, as version 1.30 introduced significant battery drain; the battery loses up to 50% in 2-3 days while the laptop is in suspend mode.

There is also a suggestion that kernel updates could fix this behavior and that Lenovo and Canonical are working on it.

Keyboard

As of BIOS 1.35, keyboard event processing does not work correctly and can cause input problems with shortcuts involving the function key. Moreover, typing fast can lead to scrambled or missing keys which is caused by polling issues with the firmware.

Trackpad

As of BIOS 1.35, disabling the trackpad has no effect in Linux. In the graphical BIOS and in Windows, this function works as intended.

Time stamp counter

As of BIOS 1.35, the time stamp counter (TSC) can be unusable on a cold boot, as indicated by the following log output:

$ dmesg | grep -i tsc
[    0.000000] tsc: Fast TSC calibration using PIT
[    0.000000] tsc: Detected 1696.748 MHz processor
[    0.160394] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x18752743c99, max_idle_ns: 440795215663 ns
[    0.367627] clocksource: Switched to clocksource tsc-early
[    1.393773] tsc: Refined TSC clocksource calibration: 1699.720 MHz
[    1.393785] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x18801ecedab, max_idle_ns: 440795234673 ns
[    1.394099] clocksource: Switched to clocksource tsc
[    2.167096] clocksource: timekeeping watchdog on CPU3: Marking clocksource 'tsc' as unstable because the skew is too large:
[    2.167106] clocksource:                       'tsc' cs_nsec: 506681426 cs_now: 78dfa3a69 cs_last: 75aa51b22 mask: ffffffffffffffff
[    2.167109] clocksource:                       'tsc' is current clocksource.
[    2.167119] tsc: Marking TSC unstable due to clocksource watchdog
[    2.167132] TSC found unstable after boot, most likely due to broken BIOS. Use 'tsc=unstable'.
[    2.167653] clocksource: Checking clocksource tsc synchronization from CPU 13 to CPUs 0,2,8-9,11-12,14-15.

Renesas USB controller

As of BIOS 1.35, toggling the state of USB devices in the BIOS can cause the Renesas controller to fail. This will prevent he webcam from being initialized.

Docking stations

As of BIOS 1.35, video output is unrealiable on both USB3 and mechanical docking stations.

Webcam

Image quality can be improved by updating the webcam firmware. Unfortunately, webcam firmware updates are not shipped via LVFS. Some cameras firmwares can be possibly updated in Linux following steps.

Fingerprint sensor

The fingerprint sensor works with some recent firmware and software updates.

  1. Use fwupd to install the latest firmware for "Synaptics Prometheus Fingerprint Reader". The relevant firmwares are Prometheus Fingerprint Reader and Prometheus Fingerprint Reader Configuration.
  2. fprintd ≥ 1.90.1 and libfprint ≥ 1.90.1 are required. Alternatively, use the latest Git master through fprintd-libfprint2AUR and libfprint-gitAUR.

fprint has more details on how to setup the fingerprint, for PAM-based authentication for example.

If the fingerprint reader is not detected by fwupd but is detected by lsusb, you will need to reset the fingerprint reader in the BIOS.

Backlight

Backlight works correctly by manipulating the values, between 0-255, inside /sys/class/backlight/amdgpu_bl0/brightness or using a backlight managing utility.

Before kernel 5.8.6, systemd-backlight@backlight:acpi_video0.service required masking as it failed on boot.

Suspend

S3 suspend works when setting Config > Power > Sleep to Linux in the BIOS.

Hibernation

As of kernel 5.15.2, the system occasionally has issues with resuming from hibernate, resulting in missing or distorted video output.

Mobile broadband

Tested, works with xmm7360-pci (see Xmm7360-pci):

$ lspci | grep XMM
05:00.0 Wireless controller [0d40]: Intel Corporation XMM7360 LTE Advanced Modem (rev 01)

Wireless

The onboard wireless card is Intel AX200 and it may have microcode issues when used as-is. A possible fix for WiFi disconnects is turning on iwlwifi antenna agreggation on by creating a modprobe configuration:

/etc/modprobe.d/iwlwifi.conf
options iwlwifi 11n_disable=8

Reboot afterwards. Look in Network configuration/Wireless#iwlwifi for details.

Platform Profiles

As of BIOS version 1.35, the required DYTC interface is present but does not work correctly. Although an ACPI Platform Profile can be set via sysfs(5), it will not have any effect. Nevertheless, profiles can be set by passing somewhat arbitrary arguments to the interface via acpi_call. See the following table for the power and thermal limits. The Balanced profile is active by default.

Mode Argument STAPM (W) PPT-FAST (W) PPT-SLOW (W) THM-CORE (°C) STT_APU (°C) FAN (rpm)
Low Power 0x12d001 11 11 11 70 45 3300
Balanced 0x15d001 20 20 15 86 45 4400
Performance 0x17d001 25 25 23 96 53 5000

Profiles can be changed as follows:

# echo '\_SB.PCI0.LPC0.EC0.HKEY.DYTC argument' | tee /proc/acpi/call

Function keys

Key Visible?1 Marked?2 Effect
Fn Yes No XF86WakeUp
Fn+Esc No Yes Toggles the Fn lock
Fn+F1 Yes Yes XF86AudioMute
Fn+F2 Yes Yes XF86AudioLowerVolume
Fn+F3 Yes Yes XF86AudioRaiseVolume
Fn+F4 Yes Yes XF86AudioMicMute
Fn+F5 Yes Yes XF86MonBrightnessDown
Fn+F6 Yes Yes XF86MonBrightnessUp
Fn+F7 Yes Yes XF86Display
Fn+F8 Yes Yes XF86WLAN
Fn+F9 Yes Yes XF86NotificationCenter
Fn+F10 Yes Yes XF86PickupPhone
Fn+F11 Yes Yes XF86HangupPhone
Fn+F12 Yes Yes XF86Favorites
Fn+End Yes No Insert
Fn+4 Yes No XF86Sleep
Fn+Tab Yes No XF86FullScreen
Fn+s Yes No Alt_L Alt_L+Sys_Req
Fn+d No No Toggles the PrivacyGuard feature
Fn+k Yes No Scroll_Lock
Fn+p Yes No Pause
Fn+b Yes No Pause
Fn+Right Shift Yes No XF86FnRightShift
Fn+Space No Yes Controls the keyboard backlight
Fn+Print Yes No XF86SelectiveScreenshot
Fn+Left Arrow Yes No Home
Fn+Right Arrow Yes No End
  1. The key is visible to xev and similar tools
  2. The physical key has a symbol on it, which describes its function

See also