Lenovo ThinkPad P14s (AMD) Gen 4

Hardware
PCI/USB ID
Working?
GPU
1002:15bf
Yes
Wi-Fi
17cb:1103
Yes
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
Yes
This article covers the installation and configuration of
Arch Linux
on a
Lenovo
ThinkPad
P14s (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
To disable sleep wake-up from touchpad see
Lenovo ThinkPad T14s (AMD) Gen 3#Disable wakeup from sleep on touchpad activity
.
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. The quality can be improved by using
EasyEffects
with a convolver effect (and possibly others) - see
here
for an example preset for this laptop.
Wi-Fi
The factual accuracy of this article or section is disputed.
Reason:
Should clarify after which version of
linux-firmware
the fix is shipped or if the fix requires a newer kernel too. (Discuss in
Talk:Lenovo ThinkPad P14s (AMD) Gen 4
)
Starting with kernel v6.10,
remaining bugs with the ath11k firmware were fixed
.
However, these patches were found to cause issues with suspend, and were
reverted in v6.10.10
as well as
v6.11
.
The patches were merged again starting with v6.16.
See
Lenovo ThinkPad T14s (AMD) Gen 3#Network / Wi-Fi
for a fix that unloads the
ath11k_pci
module before sleep and loads it again after resume.
Previously, specific ath11k firmware versions
caused
suspend during lid close to immediately wake from sleep.
There seems to be another issue where after some suspend/wakeup cycles the Wi-Fi card gets into a weird state where it drops almost all outgoing transmissions. This results in authentication timing out and network speeds being unusable. See
Lenovo_ThinkPad_T14_(AMD)_Gen_4#Unreliable/High_latency
for a fix.
Smartcard reader
Tested using FIDO2 applet on J3180. Follow the 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 Wi-Fi issues after hibernation see
#Wi-Fi
.
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/upower/power-profiles-daemon#why-not
Install
power-profiles-daemon
Start/enable
the
power-profiles-daemon
service.
Microphone
Reported as unplugged
If the internal mic is recognized by ALSA, but the recorded input is silent, please see:
https://bbs.archlinux.org/viewtopic.php?pid=2162297#p2162297
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
The key is visible to
xev
or
wev
and similar tools.
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