Lenovo ThinkPad T480s - ArchWiki

Jump to content
From ArchWiki

Hardware | PCI/USB ID | Working?
--- | --- | ---
GPU (Intel) | `8086:5917` | Yes
GPU (NVIDIA) |  | Untested
Wireless | `8086:24fd` | Yes
Audio | `8086:9d71` | Yes
TrackPoint |  | Yes
Touchpad |  | Yes
Webcam | `5986:2113` | Yes
Fingerprint reader | `06cb:009a` | Yes
Mobile broadband |  | Yes
Bluetooth | `8087:0a2b` | Yes
Smartcard reader | `058f:9540` | Yes
SD card reader | `0bda:0316` | Yes
PrivacyGuard |  | Yes

This article covers the installation and configuration of Arch Linux on a Lenovo T480s laptop. For the most part things work out-of-the-box, but some features may need to be configured manually.

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

## Powersaving

Without special configuration and with default firmware settings, power usage is a bit high (around 7,5W in idle). There are a few knobs to improve battery life:

Warning: Changing Thunderbolt BIOS options has been reported to irreversibly brick ThinkPads due to a firmware bug [1] [2] [3]. A fix is available through a firmware update [4] [5], which can be installed via fwupd.

- Set "Thunderbolt BIOS Assist Mode" to "Enabled" in the EFI firmware interface. This seems to reduce number of idle wakeups.
  - However, kernel versions since 4.19+ should support it natively ([6]), and some power consumption improvements is reported if this is switched to "Disabled" [7].
- Disable unused peripherals under "Security" -> "I/O port access" in the firmware. This especially applies to the SD/MMC-cardreader, which seems to drain some power even when idle

As of Kernel 4.15, DisplayPort PSR (Panel self refresh) is disabled by default and broken when forcibly enabled (system hangs after a few seconds, display lag). 4.17-rc1 seems to improve a lot in this regard, but PSR still sometimes causes the screen to freeze for a few seconds.

### SD card reader

According to various reports the SD card reader drains several watts of power. If you do not want to disable it in bios because you use it semi-regularly, you can turn it off by unbinding its driver using this command:

    # echo 2-3 > /sys/bus/usb/drivers/usb/unbind

You can then turn the reader back on by running:

    # echo 2-3 > /sys/bus/usb/drivers/usb/bind

## Fingerprint reader

The fingerprint sensor is not supported by libfprint.

There is a project python-validity based on open-fprintd, see [8].

Install python-validityAUR or python-validity-gitAUR and enroll your fingerprint:

    $ fprintd-enroll

Refer to Fprint#Configuration for configuration.

You may experience an issue where the fingerprint reader does not work after the laptop wakes up from suspension. To fix this, try enabling the `open-fprintd-resume` and `open-fprintd-suspend` systemd services [9]. If the issue is still present, create a unit file as follows, then enable it [10].

    /etc/systemd/system/fingerprint-restart.service

    [Unit]
    Description=Restart services to fix fingerprint integration
    After=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target

    [Service]
    Type=oneshot
    ExecStart=systemctl restart open-fprintd.service python3-validity.service

    [Install]
    WantedBy=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target

If this solves the issue, you may disable `open-fprintd-resume` and `open-fprintd-suspend` again.

## PrivacyGuard

The PrivacyGuard feature is referred to as LCD Shadow and was introduced in Linux 5.4.[11]

To enable or turn on the LCD shadow:

    # echo 1 > /proc/acpi/ibm/lcdshadow

Conversely, use `0` to disable it:

    # echo 0 > /proc/acpi/ibm/lcdshadow

Note: Not every model supports this feature. If PrivacyGuard is not available, you will get the following output:

    $ cat /proc/acpi/ibm/lcdshadow

    status:         not supported

## Function keys

Key | Visible?1 | Marked?2 | Effect
--- | --- | --- | ---
`Fn+Esc` | No | Yes | Toggles Fn lock
`F1` | Yes | Yes | `XF86AudioMute`
`F2` | Yes | Yes | `XF86AudioLowerVolume`
`F3` | Yes | Yes | `XF86AudioRaiseVolume`
`F4` | Yes | Yes | `XF86AudioMicMute`
`F5` | Yes | Yes | `XF86MonBrightnessDown`
`F6` | Yes | Yes | `XF86MonBrightnessUp`
`F7` | Yes | Yes | `XF86Display`
`F8` | Yes | Yes | `XF86WLAN`
`F9` | Yes | Yes | `XF86Tools`
`F10` | Yes | Yes | `XF86Bluetooth`
`F11` | Wayland only3 | Yes | `XF86Keyboard`
`F12` | Yes | Yes | `XF86Favorites`
`Fn+Space` | No | Yes | Controls the keyboard backlight
`Fn+Left` | Yes | No | `Home`
`Fn+Right` | Yes | No | `End`
`Fn+b` | Yes | No | `Control_L+Break`
`Fn+k` | Yes | No | `Scroll_Lock`
`Fn+p` | Yes | No | `Pause`
`Fn+s` | Yes | No | `Alt_L` `Alt_L+Sys_Req`
`Fn+4` | Yes | No | `XF86Sleep`
`Fn` | Yes | No | `XF86WakeUp`

1. The key is visible to `xev` and similar tools.
2. The physical key has a symbol on it, which describes its function.
3. This key has a keyboard symbol on it. According to Lenovo, it should open the keyboard settings page [12], which it does on Windows 10. It does generate an event on Wayland, but not on X.

Tip: By default, the function keys behave as multimedia keys instead of actual function keys. This behaviour can be changed in the UEFI BIOS settings so that `F1` to `F12` are used as standard function keys and special multimedia features are only triggered with the use of the `Fn` key.
Note: Although Fn lock state persists across reboots, the function keys will always behave as standard function keys during device startup.

## Troubleshooting

### Thermal throttling

There are reported throttling issues for Lenovo T480/T480s/X1C6 notebooks.[13]

This script forces the CPU package power limit (PL1/2) to 44 W (29 W on battery) and the temperature trip point to 95 'C (85 'C on battery) by overriding default values in MSR and MCHBAR every 5 seconds (30 on battery) to block the Embedded Controller from resetting these values to default.

Install the throttled package and enable the `throttled.service`.[14]

It is recommended to also undervolt the CPU (Undervolting CPU#intel-undervolt). Most Kaby Lake R chips are able to easily undervolt to -100mV or more, which significantly helps to keep the device from thermal throttling. Throttled also provides undervolting capabilities and will overwrite the undervolt settings applied by intel-undervolt when it updates settings if both services are enabled.

### Fix freezes/hangs on QT applications (with Intel driver)

See Intel graphics#AccelMethod.

### Fix frequent WiFi disconnects

The iwlwifi driver provided by Linux Kernel 5.1 and later has a bug that can cause disconnects of the WiFi. If this occurs, check the system log using journalctl(1) and search for this message: "No beacon heard and the time event is over already." If you see this message, try some of the suggested fixes discussed on Bug 203709. Workarounds discussed in the thread include:

1. Modifying kernel module parameter by adding a new configuration file for modprobe.d(5):

    /etc/modprobe.d/mac80211.conf

    options mac80211 beacon_loss_count=1000 probe_wait_ms=75
    options ath9k debug=0xffffffff btcoex_enable=0 ps_enable=0 use_msi=0

2. Disabling IPv6

3. Applying the kernel patch linux-beaconAUR and creating the following kernel module parameter for modprobe.d(5):

    /etc/modprobe.d/wifi-fix.conf

    options iwlwifi beacon_timeout=256

## See also

- T480s install video playlist

Category:

- Lenovo