Lenovo ThinkPad P14s (AMD) Gen 4 - ArchWiki

Jump to content
From ArchWiki

Hardware | PCI/USB ID | Working?
--- | --- | ---
GPU | `1002:15bf` | Yes
Wifi | `17cb:1103` | Wakes up sleep
Bluetooth | `10ab:9309` | Yes
Ethernet | `10ec:8168` | Yes
Audio | `1022:15e3` | Yes
TrackPoint |  | Yes
Touchpad |  | Yes
Touchscreen |  | Yes
Webcam | `5986:118c` | Yes
TPM |  | Yes
Fingerprint reader | `27c6:6594` | Yes
Smartcard reader | `2ce3:9563` | Untested

This article covers the installation and configuration of Arch Linux on a Lenovo ThinkPad P15s (AMD) Gen 4 laptop. With recent enough kernel the device works almost out of the box.

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

## Firmware

Warning: There is an issue that can leave your system in broken state when changing sleep states in BIOS. See Lenovo ThinkPad T14 (AMD) Gen 3#Firmware.

This model is fully compatible with fwupd.

`fwupdmgr get-devices` detects the System Firmware, UEFI BIOS, webcam, fingerprint sensor, CPU/GPU, TPM and the NVMe controller.

## CPU

Since kernel 6.5, the AMD P-State EPP driver with "Active" profile is applied by default, no changes should be needed.

In case you are getting GPU resets (black screen), check Lenovo ThinkPad T14s (AMD) Gen 3#CPU.

Tip: You can verify your CPU frequency scaling driver with cpupower or `cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver`.

## Touchpad

The touchpad works fine on Wayland under Hyprland.

To disable sleep wake-up from touchpad see Lenovo ThinkPad T14s (AMD) Gen 3.

## Touchscreen

Note: Not all variations of this model have touchscreen.

The variation of this model with product code/name `21K50009CK` is equipped with InfoVision display with touchscreen capability and it works out of the box.

The respective touchscreen input can be found as I2C device `ELAN901C:00 04F3:2EDE`.

See Touchscreen for other information.

## Speakers

Speakers work out of the box. However, they will not have the same sound quality as on Windows due to the missing Dolby Atmos Convolver.

## Display

The display works fine out of the box.

## Network / WiFi

Note: There is a number of known bugs and issues with the ath11k driver, see Lenovo ThinkPad T14s (AMD) Gen 3#Network / WiFi

WiFi seems to cause immediate wake-up from sleep. Disabling it through rfkill before sleep resolves this issue.

## Smartcard reader

Seems to work and read cards. Follow instructions from smartcards.

## Fingerprint reader

Works as expected. Follow fprintd

## Power management

### S3 sleep / s2idle

S3 (`deep`) sleep is not supported by this CPU anymore. However, s2idle works out of the box and causes no problems with sleep / hibernation.

The sleep power consumption with s2idle (or S0/`S0ix`/`Modern Standby`) can vary as it depends on the running OS and how well it can put peripherals into sleep mode.

### Hibernate

Works fine. If you face WiFi issues after hibernation see #Network / WiFi.

### Battery thresholds

Battery charge thresholds can be correctly set with TLP or within KDE / GNOME power management.

### AMD P-State EPP

If you are using power-profiles-daemon, please note that the current stable release of it do not fully support AMD P-State EPP. You can switch to TLP version 1.6 or newer that supports AMP P-State features, or fix this using an udev rule + script to apply different AMD P-State EPP states depending on whether the laptop is running on battery or charger.

    /etc/udev/rules.d/99-battery.rules

    SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="/usr/local/bin/on_battery.sh"
    SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="/usr/local/bin/on_ac.sh"

    /usr/local/bin/on_battery.sh

    #!/usr/bin/bash

    # Change Dirty Writeback Centisecs according to TLP / Powertop
    echo '5000' > '/proc/sys/vm/dirty_writeback_centisecs';

    # Change AMD Paste EPP energy preference
    # Available profiles: performance, balance_performance, balance_power, power
    echo 'balance_power' | tee /sys/devices/system/cpu/cpu*/cpufreq/energy_performance_preference;

    # If required, change cpu scaling governor
    # Possible options are: conservative ondemand userspace powersave performance schedutil
    #cpupower frequency-set -g powersave;

    # Platform Profiles Daemon will do this automatically, based on your settings in KDE / GNOME
    # You can how ever, set this manually as well
    # Possible profile options are: performance, powersave, low-power
    #echo 'powersave' > '/sys/firmware/acpi/platform_profile';

    # Radeon AMDGPU DPM switching does not seem to be supported.
    # Possible options should be: battery, balanced, performance, auto
    #echo 'battery' > '/sys/class/drm/card0/device/power_dpm_state';

    # Should always be auto (TLP default = auto)
    # Possible options are: auto, high, low
    #echo 'auto' > '/sys/class/drm/card0/device/power_dpm_force_performance_level';

    # Runtime PM for PCI Device to auto
    find /sys/bus/pci/devices/*/power -name control -exec sh -c 'echo "auto" > "$1"' _ {} \;
    for i in $(find /sys/devices/pci0000\:00/0* -maxdepth 3 -name control); do
        echo auto > $i;
    done

    /usr/local/bin/on_ac.sh

    #!/usr/bin/bash

    # Change Dirty Writeback Centisecs according to TLP / Powertop
    echo '500' > '/proc/sys/vm/dirty_writeback_centisecs';

    # Change AMD Paste EPP energy preference
    # Available profiles: performance, balance_performance, balance_power, power
    echo 'balance_performance' | tee /sys/devices/system/cpu/cpu*/cpufreq/energy_performance_preference;

    # If required, change cpu scaling governor
    # Possible options are: conservative ondemand userspace powersave performance schedutil
    #cpupower frequency-set -g performance;

    # Platform Profiles Daemon will do this automatically, based on your settings in KDE / GNOME
    # You can how ever, set this manually as well
    # Possible profile options are: performance, powersave, low-power
    #echo 'performance' > '/sys/firmware/acpi/platform_profile';

    # Radeon AMDGPU DPM switching does not seem to be supported.
    # Possible options should be: battery, balanced, performance, auto
    #echo 'performance' > '/sys/class/drm/card0/device/power_dpm_state';

    # Should always be auto (TLP default = auto)
    # Possible options are: auto, high, low
    #echo 'auto' > '/sys/class/drm/card0/device/power_dpm_force_performance_level';

    # Runtime PM for PCI Device to on
    find /sys/bus/pci/devices/*/power -name control -exec sh -c 'echo "on" > "$1"' _ {} \;
    for i in $(find /sys/devices/pci0000\:00/0* -maxdepth 3 -name control); do
        echo on > $i;
    done

Additionally make `/usr/local/bin/on_battery.sh` and `/usr/local/bin/on_ac.sh` executable.

### Power Profiles Daemon

The package power-profiles-daemon is the standard power management service for KDE#Power management and GNOME#Power modes. It conflicts with TLP and the reasons for that are described here: https://gitlab.freedesktop.org/hadess/power-profiles-daemon#why-not

1. Install power-profiles-daemon
2. Start/enable the `power-profiles-daemon` service.

## Microphone LED

If the Mic LED seems to stay always on see: Lenovo ThinkPad T14 (AMD) Gen 3#Mute Mic LED always on.

## Function keys

Key | Visible?1 | Marked?2 | Effect | Note
--- | --- | --- | --- | ---
`Fn` | Yes | - | `XF86WakeUp` | Can be swapped with left Ctrl in BIOS
`Fn+4` | Yes | No | `XF86Sleep` |
`Fn+Esc` | No | Yes | Toggles Fn lock | Has status led
`Fn+F1` | Yes | Yes | `XF86AudioMute` | Has status led
`Fn+F2` | Yes | Yes | `XF86AudioLowerVolume` |
`Fn+F3` | Yes | Yes | `XF86AudioRaiseVolume` |
`Fn+F4` | Yes | Yes | `XF86AudioMicMute` | Has status led
`Fn+F5` | Yes | Yes | `XF86MonBrightnessDown` |
`Fn+F6` | Yes | Yes | `XF86MonBrightnessUp` |
`Fn+F7` | Yes | Yes | `XF86Display` |
`Fn+F8` | Yes | Yes | `XF86WLAN` | Marked with airplane mode
`Fn+F9` | Yes | Yes | `XF86Messenger` | Marked with message box
`Fn+F10` | Yes | Yes | `XF86Go` | Marked with phone answer call
`Fn+F11` | Yes | Yes | `Cancel` | Marked with phone end call
`Fn+F12` | Yes | Yes | `XF86Favorites` |
`Fn+Tab` | Yes | No | `XF86FullScreen` |
`Fn+Left` | Yes | No | `Home` |
`Fn+Right` | Yes | No | `End` |
`Fn+P` | Yes | No | `Pause` |
`Fn+S` | Yes | No | `Sys_Req` |
`Fn+K` | Yes | No | `Scroll_Lock` |
`Fn+B` | Yes | No | `Break` |
`Fn+PrtSc` | Yes | Yes | `XF86Launch2` |
`Fn+Space` | No | Yes | Change keyboard backlight level |

1. The key is visible to xev or wev and similar tools.
2. The physical key has a symbol on it, which describes its function.

## See also

- Lenovo ThinkPad T14s (AMD) Gen 3
- Lenovo ThinkPad T14 (AMD) Gen 3

Category:

- Lenovo