Lenovo ThinkPad T14 (AMD) Gen 4 - ArchWiki

Jump to content
From ArchWiki

Hardware | PCI/USB ID | Working?
--- | --- | ---
Touchpad |  | Yes
Keyboard |  | Yes
GPU |  | Yes
Webcam | `174f:11a8` | Yes
Ethernet | `10EC:8168` | Yes
Bluetooth |  | Yes
Audio |  | Yes
Wireless | `17CB:1103` | Yes
Fingerprint reader | `27c6:6594` | Yes
TPM |  | Yes
NFC |  | Untested

## Firmware

### S3 Sleep

Option to enable S3 sleep is not available in the BIOS. As a result, only `s2idle` is available.

## Wireless

### Unreliable/High latency

There is an active thread in Lenovo forums regarding this issue. Possible workaround is to disable power saving mode by adding following lines and restarting `NetworkManager` service.

    /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf

    [connection]
    wifi.powersave = 2

### Failure to resume from hibernation

The `ath11k_pci` driver is experimental and it fails to recover the device after resuming from hibernation. There is an active bug report and the patch to fix is pending public review.

## WAN

You need to FCC Unlock the Fibocom L860R aka "Intel XMM7560 LTE Advanced Pro Modem" before it can be used. To do this, you need to install "thinkpad-l860-gl-fcc-unlock-bin" from aur. However, this tool refuses to unlock Lenovo p14s gen4 because this model is not yet certified/hasn't yet passed RF testing. As of today (2023-11-24) it shows the following message when trying to FCC unlock the modem:

    DPR_Fcc_unlock_service[40670]: WWAN is not supported in this machine

Fortunately, it is a very stupid executable that only checks what's inside /sys/class/dmi/id/product_family before allowing an fcc unlock. If you want to use your Fibocom L860R you need to create /etc/ModemManager/fcc-unlock.d/8086\:7560 and make it look like this:

    /usr/bin/echo ThinkPad X1 Carbon Gen 10 > product_family
    /usr/bin/chmod 600 product_family
    /usr/bin/mount -o bind product_family /sys/class/dmi/id/product_family
    /opt/fcc_lenovo/DPR_Fcc_unlock_service
    /usr/bin/umount /sys/class/dmi/id/product_family
    exit 0

Don't forget to make the file executable:

    sudo chmod 755 /etc/ModemManager/fcc-unlock.d/8086\:7560

That way /opt/fcc_lenovo/DPR_Fcc_unlock_service will think that your laptop is a Thinkpad X1 Carbon Gen 10 and it will happily unlock the modem for you to use. Since the file is saved in /etc/ModemManager/fcc-unlock.d/ ModemManager will FCC unlock your modem automatically every time you initialize a connection to your provdier.

## Fan

The fan is relatively loud and triggers from simple web browsing.

- A first solution is thinkfan from Fan speed control, but its not yet perfect as the lowest level maps to too high RPM.
- From the fan-controll page: see gentoo link for an example, and add the proposed experimental=1

## Fingerprint reader

Fingerprint reader works out of the box with fprintd. Multiple fingers can be enrolled and any one of those fingers can be used to authorize.

## Infrared camera and emitter

On models with an infrared camera, howdy can be used to enable face unlock. On some models, the IR emitter is not enabled automatically, in that case, follow the workaround from Howdy#IR emitter does not work

## Speakers

Speakers work out of the box. How ever, they won't have the same sound quality as on Windows due to the missing Dolby Atmos Convolver.

To enable Dolby Atmos Convolver install EasyEffects, go to Effects > Add Convolver > Import Impulse

The quality difference is massive, converting the speakers from sounding tinny and cheap to something actually enjoyable.

You can download the "Movie", "Music", and "Dynamic" presets here:

https://stuff.kurz.pw/arch/P14s_G4/Speakers/

They were created on a P14s G4 AMD (identical to T14) with Windows 11.

## Thunderbolt 3 compatibility

Tested with a Lenovo Thunderbolt 3 Dock (40AC) it simply worked out-of-the box (using the USB-C connector right next to the RJ45 port), resulting in new pcie devices appearing on `lspci` etc. So yes, this laptop actually has Thunderbolt 3 compatibility. As with the speaker profiles this test was done on an (identically build) P14s.

Depending on BIOS configuration thunderbolt devices might need activation before being usable, e.g. using `bolt`. For that run `boltctl list` first to retrieve the devices UUID. After that use `boltctl enroll --policy=auto <uuid>` to enable the device.

## Other issues

### Hang on splash

This article or section needs expansion.

Reason: The splash option is GRUB-specific: it should be determined whether the issue is hardware related (and should be kept here) or GRUB-related (and should be merged to the GRUB page). (Discuss in Talk:Lenovo ThinkPad T14 (AMD) Gen 4)

Remove `quiet splash` from the kernel parameters.

### Mic LED always on

Out of the box, mic LED always stays on irrespective of what the actual state is. This can be turned off by installing the alsa-utils and then toggling the LED state once from `alsamixer`.

### Display brightness resets

On models with 2.8K OLED pannel, display brightness resets if the screen is blanked and unblanked. This is fixed in `linux-6.6` and above.

### Display stays off after lid close

If your display stays off after closing and then opening the lid, there are few things to note:

- the laptop is not crashed, it is just the display that does not turn itself on again

- you need to "re-initialize" the display in some way, e.g. connecting the laptop via the HDMI port to an external display and then disconnecting

- or switching resolution or (even better) just the refresh rate. This is how this solution works.

Install acpid and then edit the following file and add the lines starting with XDG_Session:

/etc/acpi/handler.sh

       button/lid)
           case "$3" in
               close)
                   logger 'LID closed'
                   ;;
               open)
                   logger 'LID opened'
                   XDG_SESSION_TYPE=wayland XDG_RUNTIME_DIR=/run/user/1000 kscreen-doctor output.eDP-1.mode.1 output.eDP-1.enable
                   XDG_SESSION_TYPE=wayland XDG_RUNTIME_DIR=/run/user/1000 kscreen-doctor output.eDP-1.mode.0 output.eDP-1.enable
                   ;;
               *)
                   logger "ACPI action undefined: $3"
                   ;;
       esac

If you have the 2.8k OLED display this will switch the display to 2880x1800 @ 60Hz and then to 2880x1800 @ 90 Hz every time you open the lid. That way your display gets re-initialized. Note that this solution is only for Wayland. If you are still using X, you will need other environment variables.

Category:

- Lenovo

Hidden category:

- Pages or sections flagged with Template:Expansion