Lenovo ThinkPad P14s (AMD) Gen 4
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 |
Mic might not work |
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 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
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.
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
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.
WiFi
A specific ath11k firmware version for the hardware in this laptop causes suspend during lid close to immediately wake from sleep.
This can be tested physically by closing the lid, and noting if the LED on the lid flickers and remains solid (meaning the device is not sleeping), or flashes periodically (meaning the device is sleeping). If the LED remains solid with the lid closed, suspend is not working properly, and your laptop will drain battery while closed.
To check if you have the bad firmware version, you can check the kernel logs for this firmware version:
$ journalctl -k --grep "ath11k_pci" | grep fw_version
ath11k_pci 0000:02:00.0: fw_version 0x110b196e fw_build_timestamp 2022-12-22 12:54 fw_build_id WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.23
Both 3.6510.23 and 3.6510.36 have the issue.
Various workarounds are possible, including using rfkill or modprobe to disable or remove the WiFi kernel module during suspend to prevent the issue. See Lenovo ThinkPad T14s (AMD) Gen 3#Network / WiFi for one such solution.
It is also possible to downgrade to 3.6510.16 by replacing the firmware files in-place. See this comment for details. To avoid having to repeat these steps manually after each update of linux-firmware, use the NoExtract
array in pacman.conf
with a wildcard to block their installation, but keep regularly checking the issue thread to see if the fix has been merged upstream. See pacman#Skip files from being installed to system.
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 #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/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.