In April 2017 I bought a Thinkpad E470 with the intentation to install Linux, more specific my prefered distribution Debian on the testing branch Stretch which will get stable in a few weeks. I’ll give a short overview of things that are working and things I have problems with, followed by a more detailed explanation of what I did.


  • Working
    • LAN
    • WLAN
    • Graphics (Intel & Nvidia)
    • Sound (Onboard, External)
    • External Monitor
  • Partly Working
    • Boot
  • Not Working
  • Untested / Unknown
    • SD-Card Reader
    • Hardware Disk Encryption (TCG Opal)

Hardware Information


00:00.0 Host bridge: Intel Corporation Device 5904 (rev 02)
00:02.0 VGA compatible controller: Intel Corporation Device 5916 (rev 02)
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
00:17.0 SATA controller: Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] (rev 21)
00:1c.0 PCI bridge: Intel Corporation Device 9d10 (rev f1)
00:1c.4 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 (rev f1)
00:1d.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #9 (rev f1)
00:1d.2 PCI bridge: Intel Corporation Device 9d1a (rev f1)
00:1d.3 PCI bridge: Intel Corporation Device 9d1b (rev f1)
00:1f.0 ISA bridge: Intel Corporation Device 9d58 (rev 21)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
00:1f.3 Audio device: Intel Corporation Device 9d71 (rev 21)
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
01:00.0 3D controller: NVIDIA Corporation GM108M [GeForce 940MX] (rev ff)
02:00.0 SD Host controller: O2 Micro, Inc. SD/MMC Card Reader Controller (rev 01)
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 10)
05:00.0 Network controller: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter (rev 32)


Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 5986:2109 Acer, Inc 
Bus 001 Device 002: ID 0cf3:e300 Atheros Communications, Inc. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub



I’ve installed Debian from the netinstall usb image. Graphical installation was working, necessary hardware (LAN) detected fine. The system was set up as a minimal installation on an software encrypted disk with lvm. After finishing the installation and rebooting into the installed system, I’ve modified the /etc/apt/sources.list and added non-free repos

deb stretch main contrib non-free
deb-src stretch main contrib non-free

deb stretch-updates main contrib non-free
deb-src stretch-updates main contrib non-free

deb stretch-backports main contrib non-free
deb-src stretch-backports main contrib non-free

deb stretch/updates main contrib non-free
deb-src stretch/updates main contrib non-free

and updates the package list.

dpkg –add-architecture i386 apt-get update

LAN was working, but the device was giving error messages. WLAN wasn’t working. To fix those problems (and possible others), I’ve installed a basic selection of firmware packages:

apt-get install firmware-linux firmware-linux-nonfree firmware-realtek firmware-atheros

After another reboot the error message were gone and WLAN was working, too.

Graphical installation and configuration

The Thinkpad E470 uses the Nvidia Optimus technologie, using the Intel onboard card for normal work and the Nvidia card for visually more demanding software. Since the release of the Optimus technologie, the open source counterpart bumblebee made great progress. I’m using the propritary nvidia driver (available from the non-free debian repo) with Primus (the sucessor to VirtualGL). This part is based on a wiki page on the Debian wiki. After installing the packages and adding the user to the respective group

apt-get install bumblebee-nvidia primus primus-libs:i386

adduser $USER bumblebee

application can be started with:

primusrun $APPLICATION

I’ve testing this with glxgeras, Factorio and Kerbal Space Program (via Steam), all three working fine. To make Steam games use the Nvidia card, change the launch options to ‘‘primusrun %command%’’. If a game won’t start, maybe the old VirtualGL is working better. To use it, the program has to be started via:


I wasn’t able to run Dota 2 or Euro Truck Simulator 2 with neither of the comamnds, this post will be updates if a solution was found.

Known problems

I’ve bought a HDMI to VGA connector to use my old monitor (as the E470 doesn’t have a VGA port), but the Thinkpad sometimes can’t find the monitor. After plugging it out and in again it’s working most times, reason unknown. Maybe a hardware problem with the connector.

Another most likely hardware related problem occurs in combination with the USB hub my mouse and keyboard are plugged in to. If the hub is connected to the THinkpad during the start, it won’t boot. The screen keeps just black. After unplugging the hub, the BIOS screen comes up and grub is starting. Without plugging it in everything is fine, too. I think I have to contant Lenovo about this.


So far most things are working fine, all my requirements and expectations were met. The device is working great with (Debian) Linux and can be recommended to any looking for a cheap but modern entry level Thinkpad with good Linux support.