Lenovo ThinkPad T14/T14s (Intel) Gen 2

From ArchWiki

Tango-edit-clear.pngThis article or section does not follow the Laptop page guidelines.Tango-edit-clear.png

Reason: Missing an accessibility section. (Discuss in Talk:Lenovo ThinkPad T14/T14s (Intel) Gen 2)
Hardware PCI/USB ID Working?
Touchpad 06CB:CE68 Yes
TrackPoint Yes
GPU (Intel) 8086:9A49 Yes
Webcam 13D3:5439 Yes
Bluetooth 8087:0026 Yes
Audio 8086:A0C8 Yes
Wireless 8086:A0F0 Yes
Ethernet 8086:15FC Yes
Mobile broadband Untested
Fingerprint reader 06CB:00F9 Yes

The Lenovo ThinkPad T14/T14s (Intel) Gen 2 was introduced in 2020. It features a 14" screen, 11th-gen Intel Core processors, and integrated Intel Iris Xe graphics. Everything seems to work pretty much out the box with kernel >=5.16.0.

To ensure you have this version, install the package dmidecode and run:

# dmidecode -s system-version
ThinkPad T14s Gen 2i

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



fwupd supports updating the UEFI BIOS, NVMe SSD, and fingerprint reader (via the LVFS testing remote) out of the box.

Function keys

Key Visible?1 Marked?2 Effect
Fn+Esc No Yes Enables Fn lock
Fn Yes Yes XF86WakeUp
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 XF86Tools
Fn+F10 Yes Yes XF86Bluetooth
Fn+F11 No Yes Unknown
Fn+F12 Yes Yes XF86Favorites
Fn+Space No Yes Toggle Keyboard Backlight
  1. The key is visible to xev and similar tools.
  2. The physical key has a symbol on it, which describes its function.

Intel Turbo Boost

Check that Intel® Turbo Boost Technology 2.0 is enabled using

$ cat /sys/devices/system/cpu/intel_pstate/no_turbo

An output of 1 means it is not enabled, so you will have to reset your BIOS to defaults. After doing that, running the command again should print 0. You should be able to see your CPU boosting way higher.


The BIOS has two options for suspend: Windows and Linux (aka S0ix or "modern standby") and Linux S3. Both S0ix and S3 modes work on this system, but there is a bug that causes the trackpad to become laggy after resuming from S3 suspend.


This laptop requires firmware in order for the sound card to work. Installing sof-firmware seems to be enough to get audio working. See Advanced Linux Sound Architecture#ALSA firmware.

Keyboard backlight

Works out of the box. There is no button on the keyboard to toggle it, but it can be controlled by software.

Automatically turn on backlight when typing

Using a c program that continuously checks for keyboard input, it is possible to activate the backlight for a certain time. The program source is as a follows

/* Original Author: Howard Chu <hyc@symas.com> 2013-01-15
 * compile as "gcc -O2 -o kbdbacklight kbdbacklight.c" and run it in the background, or arrange to have it run at bootup.
 * adapted by gabtub@gmail.com 2017-01-22
 * using https://gist.github.com/hadess/6847281
 * based on http://askubuntu.com/questions/383501/enable-the-keyboard-backlights-on-supported-lenovo-e-g-carbon-x1-with-command
 * original code found at  http://forum.notebookreview.com/threads/asus-keyboard-backlight-controller.703985/
 * sigterm catching done as shown in https://airtower.wordpress.com/2010/06/16/catch-sigterm-exit-gracefully/
 * fixed by sva 2022-10-08
 * uses /sys/class/leds/, s.t. ec_sys is not necessary
 * monitor keyboard activity and toggle keyboard backlight
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <poll.h>
#include <unistd.h>
#include <signal.h>
#include <string.h>

static char dummybuf[8192];

/** @brief How many milliseconds before turning off kbd light */
#ifndef IDLE_MSEC
#define IDLE_MSEC	5000

#ifndef BRGHT_OFF
#define BRGHT_OFF	'0'
#ifndef BRGHT_MED
#define BRGHT_MED	'1'
#ifndef BRGHT_MAX
#define BRGHT_MAX	'2'

volatile sig_atomic_t running = 1;

void term(int signum)
    // sigterm == 15
    running = 0;

int main(int argc, char *argv[])
  struct sigaction action;
  struct pollfd pfd;
  int rc, blfd;
  int timeout, prev = -1;
  char bm = BRGHT_MED;

  memset(&action, 0, sizeof(struct sigaction));
  action.sa_handler = term;
  sigaction(SIGTERM, &action, NULL);

  blfd = open("/sys/class/leds/tpacpi::kbd_backlight/brightness", O_WRONLY);

  // needs the event bound to the keyboard
  // for Xorg ie find using
  //  cat /var/log/Xorg.0.log | grep "keyboard.*event"
  //  cat ~/.local/share/xorg/Xorg.0.log | grep "keyboard.*event" 
  pfd.fd = open("/dev/input/event3", O_RDONLY);
  pfd.events = POLLIN;
  timeout = IDLE_MSEC;

  while (running) {
    rc = poll(&pfd, 1, timeout);
    if (rc) {
      /* got keyboard input, flush it all and
       * wait for the next event.
      read(pfd.fd, dummybuf, sizeof(dummybuf));
      timeout = IDLE_MSEC;
      bm = BRGHT_MED;
    } else {
      /* once we've gotten a timeout, turn off
       * kbd backlight and wait forever for
       * the next keypress
      timeout = -1;
      bm = BRGHT_OFF;
    if (bm == prev)
    lseek(blfd, 13, SEEK_SET);
    write(blfd, &bm, 1);
    prev = bm;
  // clean up after sigterm
  bm = BRGHT_OFF;
  lseek(blfd, 13, SEEK_SET);
  write(blfd, &bm, 1);

This file can be compiled with:

 gcc -O2 -o kbdbacklight kbdbacklight.c

and must be executed as root.

It would be possible to autostart this by creating a systemd service as follows:

  • Create a folder /usr/local/customscripts/kbdbacklight/
  • Save the compiled c program to /usr/local/customscripts/kbdbacklight/kbdbacklight
  • Create the following systemd service and place it in /etc/systemd/system/kbdbacklight.service
Description=starts a daemon monitoring keyboard usage. will turn on keyboard backlight until no key is pressed for a TIMEOUT period



Specifiy the amount timeout for turning the backlight off again by adjusting the constant IDLE_MSEC in the c program. (and recompiling it again)

See also

T14 links

T14s links