Lenovo ThinkPad T480 - ArchWiki

Jump to content

# Lenovo ThinkPad T480

From ArchWiki

This article or section does not follow the Laptop page guidelines.

Reason: `lspci`/`lsusb` dumps do not belong into laptop pages (Discuss in Talk:Lenovo ThinkPad T480)

Device | Status
--- | ---
Intel graphics | Yes
Nvidia graphics | Yes
Wireless | Yes
ALSA | Yes
TrackPoint | Yes
Touchpad | Yes
Webcam | Yes
Bluetooth | Yes
Mobile internet | Yes¹
Fingerprint Sensor | Yes²
No working Linux driver for Fibocom L850-GL. See this thread and this thread for more info. Supported on Kernel 5.8.1 with libfprint-tod-git. See this Reddit thread for more info.

This article covers the installation and configuration of Arch Linux on a Lenovo T480 laptop. Everything seems to work pretty much out the box.

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

## Hardware

Using kernel 4.16.8-1-ARCH

    Version: ThinkPad T480
    SKU Number: LENOVO_MT_20L5_BU_Think_FM_ThinkPad T480
    Product Name: 20L5CTO1WW

`lspci` returns something like:

    00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 08)
    00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)
    00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 08)
    00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th Gen Core Processor Gaussian Mixture Model
    00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
    00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
    00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 (rev 21)
    00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
    00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #1 (rev f1)
    00:1c.6 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #7 (rev f1)
    00:1d.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #9 (rev f1)
    00:1d.2 PCI bridge: Intel Corporation Device 9d1a (rev f1)
    00:1f.0 ISA bridge: Intel Corporation Device 9d4e (rev 21)
    00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
    00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
    00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
    00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (4) I219-V (rev 21)
    03:00.0 Network controller: Intel Corporation Wireless 8265 / 8275 (rev 78)
    3d:00.0 Non-Volatile memory controller: Lenovo Device 0003

`lsusb` returns something like:

    Bus 002 Device 005: ID 0bda:0316 Realtek Semiconductor Corp.
    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 001 Device 004: ID 06cb:009a Synaptics, Inc.
    Bus 001 Device 003: ID 04f2:b604 Chicony Electronics Co., Ltd
    Bus 001 Device 002: ID 8087:0a2b Intel Corp.
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

and for Product Name: `20L50007GE` something like:

    Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 002: ID 0bda:0316 Realtek Semiconductor Corp.
    Bus 001 Device 006: ID 06cb:009a Synaptics, Inc.
    Bus 001 Device 005: ID 13d3:56a6 IMC Networks
    Bus 001 Device 004: ID 8087:0a2b Intel Corp.
    Bus 001 Device 003: ID 2cb7:0210
    Bus 001 Device 002: ID 058f:9540 Alcor Micro Corp. AU9540 Smartcard Reader

ID `2cb7:0210` is the 4G modem Fibocom L830-EB. Noted that devices come with 4G modem Fibocom L850-GL may not work.

## Suspend / Hibernation

Suspend and Hibernation work out of the box. The T480 does not have the same issues as the X1 Carbon Gen 6

## TrackPoint and Touchpad

TrackPoint and Touchpad work out of the box and do not seem to have the same issues as the X1 Carbon Gen 6.

However one could benefit from having greatly increased event reporting frequency by enabling `psmouse` kernel module option `synaptics_intertouch=1`.

This can be done for example by editing `/etc/modprobe.d/psmouse.conf`:

     options psmouse synaptics_intertouch=1

For two-finger scrolling activity this gives a boost from 40 Hz to 135 Hz on average which is more than threefold increase. This boost greatly contributes to the Desktop environment scrolling performance and smoothness.

(evhz-gitAUR) may be of use to find out how frequently Touchpad reports events. For example after enabling said option:

     # evhz
     Press CTRL-C to exit.
     ...
     ^C
     Average for Synaptics TM3276-022:   137Hz

## Power management/Throttling issues

Due to missing Intel Dynamic Platform and Thermal Framework (DPTF) support for Linux, a feature which should detect whether the laptop is used on a desk or on the lap so it can throttle the CPU in the latter case to reduce the temperature is not working and the CPU is always throttled. An Lenovo employee explained the situation and the solution Lenovo is building in a PDF posted in their forum (archive.org backup of the PDF). The firmware and EFI fixes have been released for a different model and Lenovo has recognized that the T480 is affected, so there is hope the T480 will get the fix too.

An interim fix is throttled (Github).

Also see

- X1 Carbon Gen 6 Power management/Throttling issues
- ThinkPad T480s Thermal Throttling Fix

## UEFI/Firmware Updates

Lenovo provides firmware updates for this device through the Linux Vendor Firmware Service (LVFS).

Available updates and changelogs can be found on the LVFS website. These include security patches for the Intel Management Engine and the system firmware.

The updates can be installed using fwupd.

## UEFI and GRUB

The factual accuracy of this article or section is disputed.

Reason: This does not seem to be needed (verified on firmware 1.42) (Discuss in Talk:Lenovo ThinkPad T480)

Lenovo T480 is tied in with Microsoft and will only boot to Windows EFI file or default EFI fallback file. Verified on firmware version 1.14.

When GRUB is used, it is needed to rename the GRUB .efi to one of these specific file names. Please remember to repeat these steps (or use a pacman hook) when the GRUB package was updated.

1. Mount the device containing the `/EFI` directory.

     mount /dev/sdXY /mnt # replace XY with the letter & number of the Arch EFI system partition

2. Windows .efi file

     mkdir -p /mnt/EFI/Microsoft/Boot
     cp /mnt/EFI/grub/grubx64.efi /mnt/EFI/Microsoft/Boot/bootmgfw.efi

3. EFI fallback .efi file (as defined in the EFI standard.)

     mkdir -p /mnt/EFI/BOOT
     cp /mnt/EFI/grub/grub64.efi /mnt/EFI/BOOT/bootx64.efi

Source: https://www.rodsbooks.com/efi-bootloaders/installation.html#alternative-naming

Alternatively, systemd-boot can be used as a bootloader. systemd-boot already configures the EFI fallback file name as a default, so no further measures are required after installation.

## Screen backlight

Without the intel driver (xf86-video-intel), neither xbacklight or xrandr brightness control are working.

However, the package acpilight provides a drop-in replacement for xbacklight. Apart from installing the package (which conflicts with xorg-xbacklight), you have to add your user to the `video` group and add the following udev rule:

    /etc/udev/rules.d/90-backlight.rules

    SUBSYSTEM=="backlight", ACTION=="add", \
      RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness", \
      RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness"

    SUBSYSTEM=="leds", ACTION=="add", KERNEL=="*::kbd_backlight", \
      RUN+="/bin/chgrp video /sys/class/leds/%k/brightness", \
      RUN+="/bin/chmod g+w /sys/class/leds/%k/brightness"

This allows you to control the backlight with xbacklight command provided by acpilight, as well as control the various LEDs on your T480.

## Encryption and keyboard

Assuming encrypted installation, during boot process you are prompted to enter password to decrypt disk. In some cases you may not be able to enter password, because at this time keyboard driver is not loaded yet.

To fix this, add the `atkbd` module to the mkinitcpio `MODULES` array:

    /etc/mkinitcpio.conf

    MODULES = (... atkbd)

Regenerate the initramfs afterwards.

## Special buttons

The factual accuracy of this article or section is disputed.

Reason: KEY_KEYBOARD is still not supported, but KEY_FAVORITES work out of the box, shows up as XF86Favorites in xev (as of 2022-02) (Discuss in Talk:Lenovo ThinkPad T480)

Some special buttons are not supported by X server due to keycode number limit.

Key combination | Scancode | Keycode
--- | --- | ---
`Fn+F11` | `0x49` | `374` `KEY_KEYBOARD`
`Fn+F12` | `0x45` | `364` `KEY_FAVORITES`

You can remap unsupported keys using udev hwdb:

    /etc/udev/hwdb.d/90-thinkpad-keyboard.hwdb

    evdev:name:ThinkPad Extra Buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*
     KEYBOARD_KEY_45=prog1
     KEYBOARD_KEY_49=prog2

Update hwdb after editing the rule.

    # udevadm hwdb --update
    # udevadm trigger --sysname-match="event*"

Their names will be "XF86Launch2" (KEY_KEYBOARD) and "XF86Launch1" (KEY_FAVORITES)

Category:

- Lenovo

Hidden categories:

- Pages or sections flagged with Template:Laptop style
- Pages or sections flagged with Template:Accuracy