Lenovo ThinkPad T470s

From ArchWiki

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

Reason: Hardware table needs IDs and a function keys section should be added (Discuss in Talk:Lenovo ThinkPad T470s)
Hardware PCI/USB ID Working?
GPU Yes
Wireless Yes
Mobile broadband 1199:9079 Yes
Audio Yes
TrackPoint Yes
Touchpad Yes
Smartcard reader 058f:9540 Yes
Bluetooth 0bda:0316 Yes
Fingerprint reader 138a:0097 Yes

This article covers the installation and configuration of Arch Linux on a Lenovo T470s laptop.

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

Firmware

As of writing, the current BIOS version is 1.54. By visiting the downloads section (for the type HG/HF T470s) an iso can be downloaded and burned to disk which will perform the update [1]

This laptop is unique in that it retains the thinkpad dock connection as well as provides docking ability over USB-C. We have tested with the Thinkpad Ultra Dock and are able to utilize multiple HiDPI monitors via individual connections (e.g. no display port chaining). There are published firmware updates for the dock that require windows to install. DisplayPort chaining works via USB-C to DisplayPort adapter.

Updating the BIOS

Via a USB key

In order to update the BIOS/UEFI using a USB key, download ISO "BIOS Update (Bootable CD)" from [2] and follow the instructions on Flashing BIOS from Linux#Bootable optical disk emulation

Using fwupd

  1. Install fwupd
  2. Get the official update utility from [3] and follow the instructions from the same page.

Kernel and hardware support

Hardware video acceleration with Kaby Lake seems to work fine via va-api.

Mobile broadband

The mobile broadband card is a Sierra EM7455. It works with Google's Project Fi.

Configuration

Fingerprint reader

As of writing this, the fingerprint reader is still under prototype development, but looks like working fine on the T470s.

To get the sensor working, it first must be initialized with data. This currently only works with Windows. So if you had used the reader before installing Arch, this should work fine. Otherwise install a Windows version in a virtualbox, connect the Validity Sensor over USB(USB 2.0), install the drivers and use it a few times.

As soon as this step is completed, the sensor can be used under Linux. Check out Validity90 prototype, build it and check if the sensor is working. Install fprintd, libfprint-vfs009x-gitAUR and for testing fprint_demoAUR. You can now enroll your fingers. fprintd and fprint_demo might have be started with superuser privileges.

After setting up the fingerprint sensor is complete, one can use it to login or authenticate for sudo or su(To use this, launch fprintd_enroll prior as root).

For login edit /etc/pam.d/login

Add the following and comment out the other entrys

 auth required pam_env.so
 auth sufficient pam_fprintd.so
 auth sufficient pam_unix.so try_first_pass likeauth nullok
 auth required pam_deny.so

Do the same for sudo with /etc/pam.d/sudo or su with /etc/pam.d/su

For more information visit libfprint and adapt for the vfs0097 package.

Troubleshooting

Fan does not spin down after suspend-resume

On gnome-shell via wayland, suspend-resume results in the fan holding at 100% without ever spinning down. Alternatively if you use xorg this does not seem to happen. This issue has been resolved in BIOS/UEFI version 1.20.

HDMI audio does not work with Pulseaudio

The Intel HD audio module manages both the internal analog audio devices (e.g. speakers, mic, headphone jack) and the HDMI / DisplayPort audio outputs. Which inputs / outputs are used is selectable via the card profile. The profile selection can be changed using the pavucontrol application in the Configuration tab. "Analog Stereo Duplex" is the default, using the internal speakers / headphone jack and the internal microphone. To feed audio out the internal HDMI port while still using the internal microphone for input, select "Digital Stereo (HDMI 2) Output + Analog Stereo Input". Pulseaudio will remember this selection and auto switch to/from it based on the status of the HDMI port.

See also