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.
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-validityAUR package, and its dependencies: fprintd-clients-gitAUR and open-fprintdAUR (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 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.
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
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 bootloader 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 bootloader) 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