Lenovo ThinkPad T470

This article or section does not follow the
Laptop page guidelines
.
Reason:
Needs a function key section for the 20hd/20he/20jm/20jn models, they all share the same keyboard, only the anniversary edition differs. (Discuss in
Talk:Lenovo ThinkPad T470
)
Device
PCI/USB ID
Working?
GPU (Intel 620)
8086:5916
Yes
GPU (Intel 520)
8086:1916
Yes
GPU (NVIDIA)
10de:134d
Yes
Ethernet (Intel I219-V)
8086:2068
Yes
Ethernet (Intel I219-LM)
8086:156f
Yes
Wireless (Intel 8265/8275)
8086:24fd
Yes
Wireless (Intel 8260)
8086:24f3
Yes
Bluetooth
8087:0a2b
Yes
Webcam
5986:111c
Yes
IR Camera
5986:111d
Yes
TrackPoint
Yes
Touchpad
Yes
Touchscreen
2386:310e
Yes
Fingerprint Reader
138a:0097
Yes
SD Card Reader
0bda:0316
Untested
For a general overview of laptop-related articles and recommendations, see
Laptop
.
Firmware
The T470 is one of the models supported officially by Lenovo through the
fwupd
firmware update program.
If you are using a UEFI boot scheme, this is probably the easiest and most officially supported way to keep all the firmware programs updated.
Note
Users have observed a BIOS requirement of "UEFI/Legacy Boot" set to "UEFI Only" and enable Windows UEFI Firmware Update under UEFI BIOS Update Options when using
fwupd
.
If it does not work for you or if you prefer these methods, it is still possible to do the BIOS update by booting on a specially crafted disk or  USB stick.
By visiting the downloads section (T470) an ISO can be downloaded and burned to disk which will perform the update
from Lenovo
. Or
extracted and copied on a USB Stick
.
Another option that works if you got a CD-ISO from Lenovo is to follow
this guide
and convert the ISO to an IMG prior to dd-ing it to a USB stick.
Kernel and hardware support
Hardware video acceleration
with Kaby Lake seems to work fine via va-api.
As noted in
Intel graphics
, the
xf86-video-intel
driver seems to cause more issue than the builtin
modesetting
Xorg driver.
Works fine without the intel driver (on a Skylake configuration).
suspend-resume results in the fan holding at 100% without ever spinning down. This is being tracked on the
kernel bugtracker
. The issue
seems to be resolved
by BIOS 1.43.
Fingerprint reader
As of writing this, the fingerprint reader is still under
prototype development
, but seems working fine on the T470.
To get the sensor working,
install
the
python-validity
AUR
package, and its dependencies:
fprintd-clients-git
AUR
and
open-fprintd
AUR
(which conflicts with the
fprintd
package in the
official repositories
, so
uninstall
this package first if it is installed).
Enable/start
the
python3-validity.service
.
If this fingerprint reader had been previously set up, either through Windows (dual-booted or through a Windows virtual machine), or from a previous setup of fprintd, you will likely need to reset the Validity fingerprint reader to factory defaults (must first
stop
python3-validity.service
):
# validity-sensors-firmware
# python /usr/share/python-validity/playground/factory-reset.py
Then,
start
python3-validity.service
again. You can now enroll your fingers with
fprintd-enroll
as a regular (non-root) user. You may verify your enrolled fingerprints with
fprintd-verify
.
After setting up the fingerprint sensor is complete, one can use it to login or authenticate for
sudo
or
su
.
For login, edit
/etc/pam.d/login
by adding
pam_fprintd.so
as
sufficient
to the top of the auth section:
/etc/pam.d/login
auth sufficient pam_fprintd.so
Note, the
pam-auth-update
command from the
python-validity README.md
does not exist in Arch, and the lines it adds to files in the
/etc/pam.d/
directory do not work. See the
pam.conf(5)
manual for details.
Do the same for sudo with
/etc/pam.d/sudo
or su with
/etc/pam.d/su
Sometimes the
python3-validity
service breaks after suspension of the device, a fix for this issue is to make a custom service to restart the service on exiting suspend. the name of this service does not matter but the location does see
Systemd
.
here is a service that does the job:
[Unit]
After=suspend.target
[Service]
Type=simple
StandardOutput=syslog
ExecStart=systemctl restart python3-validity
[Install]
WantedBy=suspend.target
Screen backlight
Without the
intel
driver (
xf86-video-intel
), neither
xbacklight
or
xrandr
brightness control are working.
It is possible that, with the good
acpi_*
kernel parameters, the backlight related keys do their job.
Other workaround exists, such as described
on this post
or in the wiki
acpid#Enabling backlight control
.
Using the
acpilight
AUR
package as a
xbacklight
replacement works well.
You can also check
this repository
as a base to add the ACPI rules to call
xbacklight
when backlight keys are pressed.
Note
The
acpilight
AUR
package is known to allow controlling the ThinkPad keyboard backlight. Similar ACPI rules should allow to toggle it when the keyboard backlight key is pressed.
UEFI boot
After configuring the BIOS setup to allow UEFI boot (either
UEFI only
or
both
), it works flawlessly.
For booting directly with EFISTUB, the kernel executable (e.g.
vmlinuz-linux
) may need to be renamed with a
.efi
extension (e.g.
vmlinuz-linux.efi
) otherwise it will fail to load.
BIOS GPT boot
This article or section needs language, wiki syntax or style improvements. See
Help:Style
for reference.
Reason:
Fix first person tone, see
Help:Style#Language register
. (Discuss in
Talk:Lenovo ThinkPad T470
)
Note
I was unable to boot with a GPT + BIOS configuration, and therefore switch to GPT + EFI. However, until another confirmation, it is quite probable that was caused by some bad configuration from my side.
I can confirm that issue. Even with a recent bios (1.52), it does not work.
I had to trick my ThinkPad into UEFI (because my bios is locked, found that method by pure luck). 
It works by installing the
syslinux
boot loader on your freshly installed arch (be sure to follow the GPT specific instructions at
Syslinux#GUID partition table
) and the boot that syslinux with the arch install iso ('Boot existing OS' -> press
TAB
-> replace
hd0 0
with
hd1 0
). Syslinux should show you an option to boot the Arch Linux installation in UEFI mode. Mount you Arch installation,
arch-chroot
into it and install
GRUB
(or your favorite
boot loader
) for UEFI. That did the trick for me.
You have to create a proper
EFI system partition
. Have a look at
partitioning
.
Special buttons
See
Laptop/Lenovo#Special buttons
.
Function keys for model 20K7 25th Anniversary Edition
Special Key
Visible?
1
Marked?
2
Effect
Fn
Yes
Yes
XF86WakeUp
Fn+F1
No
No
No Effect
Fn+F2
Yes
Yes
XF86ScreenSaver
Fn+F3
Yes
Yes
XF86Battery
Fn+F4
Yes
Yes
XF86Sleep
Fn+F5
Yes
Yes
XF86TouchpadToggle
Fn+F6
Yes
Yes
XF86WebCam
Fn+F7
Yes
Yes
XF86Display
Fn+F8
Yes
Yes
XF86WLAN
Fn+F9
Yes
Yes
XF86Tools
Fn+F10
Yes
Yes
XF86Bluetooth
Fn+F11
No
Yes
No Effect
Fn+F12
Yes
Yes
XF86Favorites
Fn+Home
No
Yes
XF86MonBrightnessUp
Fn+End
No
Yes
XF86MonBrightnessDown
Fn+PgUp
No
Yes
Cycle Keyboard Backlight
Mute Speaker
Yes
Yes
XF86AudioMute
Volume Down
Yes
Yes
XF86AudioLowerVolume
Volume Up
Yes
Yes
XF86AudioRaiseVolume
Mute Microphone
Yes
Yes
XF86AudioMicMute
Fn+Left
Yes
Yes
XF86AudioPrev
Fn+Up
Yes
Yes
XF86AudioStop
Fn+Down
Yes
Yes
XF86AudioPlay
Fn+Right
Yes
Yes
XF86AudioNext
Menu
Yes
Yes
Menu
Back
Yes
Yes
XF86Back
Forward
Yes
Yes
XF86Forward
The key is visible to
xev
and similar tools
The physical key has a symbol on it, which describes its function
See also
ThinkWiki page
Product Specifications Reference (PSREF)
Hardware maintenance manual
User guide