Lenovo ThinkPad T480

Hardware
PCI/USB ID
Working?
GPU (Intel)
8086:5917
Yes
GPU (NVIDIA)
10de:1d10
Yes
Ethernet
8086:15d7
Yes
Wi-Fi
8086:24fd
Yes
Audio
8086:9d71
Yes
TrackPoint
PS/2
Yes
Touchpad
001d:06cb
Yes
Webcam
0c45:6366
Yes
Bluetooth
8087:0a2b
Yes
Smart card reader
058f:9540
Yes
Mobile internet
(Realtek)
2cb7:0210
Yes
Mobile internet
(Fibocom)
8086:7360
No
Fingerprint reader
06cb:009a
Yes
SD-card reader
0bda:0316
Yes
This article covers the installation and configuration of Arch Linux on a Lenovo ThinkPad T480 laptop.
Accessibility
Note
Blind users should request the help of a sighted person to change firmware settings.
The UEFI firmware interface relies heavily on visual menus and lacks built-in accessibility features such as text-to-speech or audible beep codes for navigation.
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 the
psmouse
kernel module
option
synaptics_intertouch=1
. This can be made permanent with:
/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. This boost greatly contributes to the
Desktop environment
scrolling performance and smoothness.
evhz-git
AUR
may be of use to find out how frequently the Touchpad reports events. For example, after enabling said option:
# evhz
Press CTRL-C to exit.
...
^C
Average for Synaptics TM3276-022:   137Hz
Note that units adorned with the "glass Touchpad mod" will not benefit from the elevated Touchpad performance with the procedure above. Running
evhz
will also indicate a different Touchpad identifier:
# evhz
...
Average for Synaptics TM3625-010:    42Hz
Power management and throttling
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. A 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. An interim fix is
throttled
(
GitHub
).
CPU stuck at minimum frequency
A signal called BD PROCHOT inside the laptop can force the CPU to the lowest power state (400 MHz in case of the
T470s
) regardless of the governor. This is meant to protect the system and can be triggered by many reasons—the CPU temperature rising above 60 °C, using a third party battery, etc. It can be ignored by writing a value to a register
[1]
. This script is an alternative to the app ThrottleStop on Windows. Install
msr-tools
and execute this script after every boot (or make a
systemd Oneshot service
).
/usr/local/bin/throttlestop
#!/bin/bash
# Disable BD PROCHOT signal on ThinkPads to prevent throttling the CPU to min. freq.
modprobe msr
reg="$(rdmsr -d 0x1FC)"         # commands rdmsr and wrmsr provided by msr-tools on Arch
if [ $((reg%2)) -eq 1 ];
then   # basically reg & 0xFFFE
	wrmsr 0x1FC $((reg-1))
fi
Firmware
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
.
Mobile internet
There is no working Linux driver for the Fibocom L850-GL. See
this thread
and
this thread
for more information.
Screen backlight
Without the Intel driver (
xf86-video-intel
), neither
xbacklight
nor
xrandr
brightness controls are working. However, the package
acpilight
AUR
provides a drop-in replacement for
xbacklight
. Apart from installing the package (which conflicts with
xorg-xbacklight
), the user must be added to the
video
group and the following udev rule must be created:
/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 control of the backlight with the
xbacklight
command provided by
acpilight
, as well as control of the various LEDs on the T480.
Encryption and keyboard
Assuming an encrypted installation, a prompt is displayed to enter a password to decrypt the disk during the boot process. In some cases it may not be possible to enter the password because the 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.
Fingerprint reader
The fingerprint reader is supported on Kernel 5.8.1 and newer with
libfprint-tod-git
AUR
. See this
Reddit thread
for more information.
Install
python-validity
AUR
and register fingerprints with:
$ fprintd-enroll
Refer to the
entry on fingerprint sensor
of the
Lenovo ThinkPad X270
for general procedures if
list_devices failed
is returned. See
these steps
for alternative instructions.
Function keys
Some special buttons are not supported by the X server due to a keycode number limit. Certain keys are also handled by other devices other than the keyboard.
Key
Visible?
Marked?
Effect
Fn
Yes
Yes
XF86WakeUp
Fn+Esc
No
Yes
Toggles Fn Lock
Fn+F1
Yes
Yes
XF86AudioMute
Fn+F2
Yes
Yes
XF86AudioLowerVolume
Fn+F3
Yes
Yes
XF86AudioRaiseVolume
Fn+F4
Yes
Yes
XF86AudioMicMute
Fn+F5
Yes
Yes
XF86MonBrightnessDown
Fn+F6
Yes
Yes
XF86MonBrightnessUp
Fn+F7
Yes
Yes
XF86Display
Fn+F8
Yes
Yes
XF86WLAN
Fn+F9
Yes
Yes
XF86Tools
Fn+F10
Yes
Yes
XF86Bluetooth
Fn+F11
Yes
Yes
XF86Keyboard
Fn+F12
Yes
Yes
XF86Favorites
Fn+PrtSc
Yes
No
XF86Launch2
Fn+B
Yes
No
Break
Fn+K
Yes
No
Scroll_Lock
Fn+P
Yes
No
Pause
Fn+S
Yes
No
Sys_Req
Fn+LeftArrow
Yes
No
Home
Fn+RightArrow
Yes
No
End
Fn+4
Yes
No
XF86Sleep
Fn+Spc
No
Yes
Toggles Keyboard Backlight
ThinkPad Dock
The ThinkPad dock shows up through the thinkpad_acpi driver.
Docked Audio Configuration
Starting this device when connected to the dock seems to load the sound driver for the dock before the driver for the internal audio. The dock driver uses snd_usb_audio while the internal audio uses snd_hda_intel. If it is desired to have the internal audio to show up as card zero the following can be setup as a quick workaround which reserves the first card slot for when the other driver loads.
/etc/modprobe.d/alsa-base.conf
options snd slots=!snd_usb_audio
More detail for alternate configuration can be inspired from
Advanced_Linux_Sound_Architecture#Card_index
.
See also
Laptop
Laptop/Lenovo#Special buttons
Lenovo ThinkPad X1 Carbon (Gen 6)#Power management/Throttling
Lenovo ThinkPad T480s#Thermal throttling