T14s - jhovold/linux GitHub Wiki
Lenovo ThinkPad T14s Gen6 (X1E)
This page aims to provide an overview of the current status of Linux support for the T14s laptop and Qualcomm Snapdragon X Elite laptops in general.
Work-in-progress branches
Important fixes and support for new features (once stable enough) can be found in my x1e80100 wip branches, for example:
https://github.com/jhovold/linux/tree/wip/x1e80100-6.15-rc3
These branches also include a minimal (but functional) johan_defconfig that serves as documentation for the configuration options that need to be enabled for the T14s.
Mainline feature support
Feature | Status |
---|---|
Audio | 6.14 |
Backlight | wip branch |
Battery | 6.12 |
Bluetooth | wip branch |
Camera | started |
CPUfreq | wip branch |
Display (OLED) | 6.12 (wip branch) |
EFI variables | 6.12 |
Fingerprint reader | 6.14 |
GPU | 6.12 |
HDMI | - |
Hibernation | - |
Keyboard | 6.12 |
Keyboard special keys | - |
Modem | wip branch |
NVMe SSD | 6.12 |
PCIe x4 | 6.12 |
Remoteproc | 6.12 |
RTC | wip branch |
Suspend | 6.12 |
Thermal sensors | started |
Touchpad (alternate) | 6.12 (6.13) |
Touchscreen (alternate) | 6.12 (-) |
TPM | - |
USB-A | 6.14 |
USB-C | 6.12 |
USB-C DisplayPort Alt Mode | wip branch |
USB-PD | 6.12 |
Video acceleration | started |
Virtualisation | - |
Watchdog | wip branch |
Wi-Fi | 6.12 |
Kernel command line
To boot Linux the following kernel parameters need to be provided:
clk_ignore_unused pd_ignore_unused efi=noruntime
due to a generic resource handover issue and a firmware bug, respectively.
Userspace dependencies
- alsa-ucm-conf-1.2.14
- linux-firmware-20250410
- Mesa 24.2
- ModemManager 1.20 + fcc-unlock symlink
Known issues
Most of these issues are shared with other Qualcomm Snapdragon based machines (e.g. other X Elite laptops and the X13s).
Audio
- Active speaker protection not enabled, make sure to keep volume low
- DisplayPort output not enabled
- Headset not yet supported (fixed in wip branch)
Pipewire playback and capture issues(switch to Pulseaudio as workaround) (fixed in 6.15-rc1, 6.14.3, 6.13.12, 6.12.24)- Pops and clicks
Keyboard special keys
- Support for some functions like mic mute is missing
Remoteproc
- aDSP fails to register its services (e.g. sound, battery, USB-C orientation) (very infrequent)
Audio service fails to register with in-kernel pd-mapper(infrequent) (fixed in 6.14, 6.13.9, 6.12.21)- QRTR/MHI race can break boot with in-kernel pd-mapper (infrequent) (fixed in wip branch)
Suspend
- Active audio streams blocks suspend
- Crash on resume if disconnecting external display while suspended
Displays fail to resume(switch VT as workaround) (fixed in 6.14-rc1, 6.13.4, 6.12.16)- Not yet hitting deepest low-power state during suspend
- USB disconnect triggers wakeup (disconnect before suspending as workaround)
Thermal
- GPU thermal throttling not implemented (fixed in wip branch)
- Skin temperature thermal throttling not implemented
UEFI firmware
- Boot issues with 64 GB version (disable upper 32 GB as workaround)
cutmem 0x8800000000 0x8fffffffff
- GRUB fails to start on 64 GB version (patch GRUB as workaround)
- Firmware bugs can prevent GRUB and systemd-boot from starting kernel (start via F12 Boot Menu as workaround) (mitigated in wip branch)
USB
- Display driver does not yet support 4-lane DisplayPort Alt Mode
- Repeater PHY implementation breaks lockdep with false positive deadlock warning
- USB-C coldplug orientation detection not working (flip cable as workaround) (fixed in wip branch)
Wi-Fi
- Crash when switching AP
- iwd fails to connect (can be worked around in
/etc/iwd/main.conf
)[General] ControlPortOverNL80211=false
- Probe sometimes fails (
of_irq_parse_pci: failed with rc=134
) (infrequent)