Lenovo ThinkPad T480s
Hardware | PCI/USB ID | Working? |
---|---|---|
GPU | Yes | |
Wireless | Yes | |
Audio | Yes | |
TrackPoint | Yes | |
Touchpad | Yes | |
Webcam | Yes | |
Fingerprint reader | Yes | |
Mobile broadband | Yes | |
Bluetooth | Yes | |
Smartcard reader | 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 there are some features that are unavailable.
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:
- Set "Thunderbolt BIOS Assist Mode" to "Enabled" in the EFI firmware interface. This seems to reduce number of idle wakeups.
- 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:
# tee /sys/bus/usb/drivers/usb/unbind <<< 2-3
You can then turn the reader back on by running:
# tee /sys/bus/usb/drivers/usb/bind <<< 2-3
Fingerprint reader
The fingerprint sensor 06cb:009a
is not supported by libfprint.
There is a project python-validity based on open-fprintd that support 06cb:009a
see [6].
suspend/resume
. See Fingerprint not working after waking up from suspend in the README to resolve this issue.Install the python-validityAUR or python-validity-gitAUR and enroll your device:
$ fprintd-enroll
Refer to Fprint#Configuration for configuration.
Troubleshooting
Thermal throttling
There are reported throttling issues for Lenovo T480/T480s/X1C6 notebooks.[7]
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 lenovo_fix.service
.[8]
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.
PrivacyGuard
The PrivacyGuard feature is referred to as LCD Shadow [9] and was introduced in Linux 5.4.[10]
To enable or turn on the LCD shadow:
# tee /proc/acpi/ibm/lcdshadow <<< 1
Conversely, use 0
to disable it:
# tee /proc/acpi/ibm/lcdshadow <<< 0
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
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