Intel Management Engine des T460 unter Linux aktualisieren

Letzten Monat wurde eine gravierende Sicherheitslücke in der Intel Management Engine bekannt. Ob das eigene System von der Lücke betroffen ist, kann man mit dem „SA00086 Detection Tool“ überprüfen.

Sollte das Tool eine Meldung ähnlich der folgenden ausspucken, dann ist man erst einmal auf der sicheren Seite:

Based on the analysis performed by this tool: This system is not vulnerable. It has already been patched.

Lenovo hatte recht schnell eine aktualisierte Firmware für das T460 bereitgestellt, aber uns Linux-Benutzer leider außen vor gelassen. Da ich keine Lust hatte nur wegen eines Firmware-Updates ein Windows 10 zu installieren, habe ich die Suchmaschine meines Vertrauens bemüht und nachgeschaut ob es nicht eine Möglichkeit gibt die „Management Engine“ plattformunabhängig zu aktualisieren. Und siehe da, ich bin relativ schnell über einen Thread im Win-Raid-Forum gestolpert, der genau das ermöglicht. Dort gibt es mehrere Links zu Archiven, welche die aktuellsten Versionen der ME-Firmware und diverse Tools zum Flashen der Firmware enthalten.

Anfangs dachte ich noch, dass ich zwingend die UEFI-basierten Tools „MEInfo.efi“ und „FWUpdLcl.efi“ aus dem Archiv für die ME-Version 11 benutzen, ich also EFI-Binärdateien innerhalb einer EFI-Shell ausführen muss (Siehe auch den Info-Kasten am Ende). Interessanterweise sind die gleichen Tools auch in nativen Linux-Versionen in den Archiven vorhanden (Intel denkt also auch an Linux-Benutzer. Nur lässt uns Lenovo im Regen stehen). Mit diesen ist es sehr einfach möglich direkt unter Linux die ME-Firmware zu aktualisieren. Ich habe die zwei notwendigen Dateien „MEInfo“ und „FWUpdLcl“ in ein eigenes Archiv gepackt:

me_tools_11.tar.bz2

Alles was man noch zusätzlich braucht, sind die passenden Firmware-Dateien. Diese bekommt man über den folgenden Link:

Lenovo – Intel Management Engine 11.8 Firmware EXE

Die EXE-Datei muss mit dem Tool „innoextract“ (Unter Ubuntu in den Universe-Quellen, in Debian in Main) entpackt werden:

innoextract r06uj57w.exe

Danach liegen die folgenden Dateien im Verzeichnis „app“ (Die EXE und DLL-Dateien habe ich schon gelöscht):

-rw-r--r-- 1 glasen glasen 2031616 Okt 26 16:56 ME_11.8_Consumer_C0_LP_Production.bin
-rw-r--r-- 1 glasen glasen 7348224 Okt 26 16:56 ME_11.8_Corporate_C0_LP_Production.bin
-rw-r--r-- 1 glasen glasen 1063 Okt 17 11:46 MEUpdate.CMD
-rw-r--r-- 1 glasen glasen 80469 Okt 26 01:13 SLA_TOOLS.pdf

Für das Update benötigt man nur die passende BIN-Datei. Beim T460 muss die „Consumer“-Firmware eingespielt werden. Versucht man es mit der „Corporate“-Firmware, bekommt eine Fehlermeldung:

Error 8746: Firmware update not initiated due to invalid image length

Zum Durchführen des Updates benötigt man noch die „OEM ID“. Diese kann man entweder über das Tool „MEInfo“ auslesen oder aus der Datei „MEUpdate.CMD“ übernehmen (Beide sind identisch):

sudo ./MEInfo -feat „OEM ID“

Intel(R) MEInfo Version: 11.8.50.3425
Copyright(C) 2005 – 2017, Intel Corporation. All rights reserved.

Driverless mode

OEM ID: 4c656e6f-766f-0000-0000-000000000000

Ab hier wird es gefährlich. Wer sich nicht 100% sicher ist, was er tut, sollte von dem Update die Finger lassen oder dieses über eine Windows-Installation durchführen. Bei mir hat es bei meinem T460 problemlos geklappt, aber ich spreche trotzdem eine Warnung aus!

Das Firmware-Update wird über den folgenden Befehl angestoßen:

sudo ./FWUpdLcl -F app/ME_11.8_Consumer_C0_LP_Production.bin -OEMID 4C656E6F-766F-0000-0000-000000000000 -allowsv

Die Ausgabe sollte dann nach einem erfolgreichen Update so ausschauen:

Intel (R) Firmware Update Utility Version: 11.8.50.3425
Copyright (C) 2007 – 2017, Intel Corporation. All rights reserved.

Communication Mode: MEI
Checking firmware parameters…

Warning: Do not exit the process or power off the machine before the firmware update process ends.
Sending the update image to FW for verification: [ COMPLETE ]

FW Update: [ 100% (|)]Do not Interrupt
FW Update is completed successfully.

Danach muss das System nur noch neu gestartet werden und die Firmware der „Management Engine“ ist auf dem aktuellsten Stand.

Im Thread im Win-Raid-Forum gibt es noch Updates für ältere ME-Versionen und auch die passenden Tools. Ich habe z.B. mein Haswell-basiertes Desktop-System mit diesen auf den aktuellsten Stand gebracht. Leider gibt es nur für die ME-Version 11 Linux-Versionen der Tools. Unter den älteren Versionen muss man auf die UEFI-Binaries ausweichen, was den Einsatz einer EFI-Shell erforderlich macht. Ich hatte diese Vorgehensweise als erstes getestet, da ich den Verlust eine 40€ Motherboards eher verkraften kann, als den eines teuren Notebooks.

Die Vorgehensweise lässt sich grundsätzlich auf andere Hersteller übertragen. Man benötigt nur die passende Version der „ME“-Firmware und die passenden Versionen der Tools

Tipps für das Thinkpad T460 und Ubuntu 16.04

Nach einigen Wochen mit dem Thinkpad T460 und Ubuntu 16.04, habe ich meine Probleme mit dem Notebook komplett lösen können.

Dazu benötigt es vier Dinge:

  1. Mindestens die Kernelversion 4.7.0rc7 aus dem Mainline-PPA
  2. Eine aktuellere Version des „linux-firmware“-Pakets, da der i915-Treiber eine aktuellere Version der Skylake-Firmware benötigt.
  3. Das Paket „TLP“

Zusätzlich habe ich die Proposed-Quellen aktiviert, um schneller Bugfixes zu erhalten.

Ich habe ich noch eine Datei names „iwl.conf“ im Verzeichnis „/etc/modprobe.d“ erstellt und mit folgendem Inhalt gefüllt:

options iwlwifi power_save=1 power_level=5

Durch diese kleine Maßnahme sinkt das Stromverbrauch der WLAN-Karte um einiges gesunken und ich erreiche dadurch im Alltagsbetrieb Laufzeiten von mehr als 8h.

Ich habe außerdem noch das oibaf-PPA aktiviert, welches Git-Versionen des Intel-Grafikktreibers und des Mesa-Stacks enthält. Dieses sollte man nur aktivieren, wenn bereit ist auch mal kleinere Fehler im Mesa-Stack zu akzeptieren. Ich benutze es seit einigen Wochen und bisher hatte ich noch keine Probleme (Alles läuft stabil, auch solche Brocken wie MOE).

Update: Thinkpad T460 und Ubuntu 16.04

Ich habe in den letzten Tagen ein wenig mit aktuelleren Kernel-Versionen herumexperimentiert. Dabei hat sich für mich herauskristallisiert, dass der DRM-Intel-Nightly-Kernel aus dem Ubuntu-Mainline-PPA die Grafik-Glitches beseitigt und zudem die Laufzeit noch ein wenig erhöht, da die Stromspareigenschaften des Systems noch besser genutzt werden.

Ich benutze aktuell die Version vom 07. Mai und bin bisher auf keine Probleme gestoßen.

Es gibt nur eine Einschränkung bei der Verwendung des obigen Kernels:

Man benötigt zwingend eine aktuellere Version des „linux-firmware“-Pakets, da der i915-Treiber eine aktuellere Version der Skylake-Firmware benötigt.

 

Thinkpad T460 und Ubuntu 16.04

Thinkpad T460Nach einem mehrjährigen Abstecher in die Mac-Welt (MacBook Air 13 seit Mitte 2013) bin ich am Montag mit meinem neuen Thinkpad T460 wieder in die „normale PC-Welt“ zurückgekehrt.

Das Thinkpad enthält sehr viele aktuelle Technik (Skylake-CPU, NVMe SSD, usw.) und wie fast jeder Linux-Benutzer weiß, sind aktuelle PC bzw. Notebook-Technik und Linux eigentlich keine gute Kombination (In diesem Fall ist das Notebook erst seit Mitte März auf dem Markt).

Trotzdem habe ich mir das Gerät zugelegt, da es sich im Gegensatz zu anderen „Ultrabooks“ gut aufrüsten lässt (Zwei DDR3L-Steckplätze) und als Business-Notebook einige nette Features enthält (Zwei Akkus (Einer intern fest verbaut, einer ist zum Wechseln), Docking-Anschluss, langer Ersatzteil-Support, mattes Display) und zudem spottbillig war (Gemessen an der Ausstattung). Als Student, Schüler oder Lehrer bekommt man die 1400€-Variante mit 256GB NVMe SSD, 8GB RAM und mattem FullHD-IPS-Display in diversen Online-Shops für knapp 900€. Das kein Betriebssystem mitgeliefert wird, spielte für mich keine Rolle.

Jedenfalls hatte ich erst ein paar Bauchschmerzen ob es mir überhaupt gelingen würde Linux bzw. Ubuntu 16.04 sauber zum Laufen zu bekommen. Meine Befürchtungen waren grundsätzlich unbegründet:

Alles was an Hardware verbaut ist funktioniert OotB. Ubuntu 16.04 lies sich völlig problemlos installieren und starten, nur für den Fingerabdruck-Scanner muss man ein zusätzliches PPA einrichten. Auf diesen habe ich aber verzichtet, da es in meinen Augen schneller geht sein Passwort einzugeben als den Finger jedes Mal über den Scanner zu ziehen.

Einige Benutzer haben sich im Zusammenhang mit Ubuntu 16.04 und dem HDMI-Anschluss über abstürzende Systeme beschwert. Ich konnte diesen Fehler nicht nachvollziehen. Vielleicht wurde er mit einem Kernel-Update in der Zwischenzeit gefixt (Ich habe aus den Proposed-Quellen die Version 4.4.0-22 installiert). Den Display-Port-Anschluss habe ich noch nicht getestet.

Das wichtigste überhaupt:

Die Akkulaufzeit ist sehr gut. Laut PowerTop benötigt das Notebook ca. 3,5W im Idle-Modus und installiertem TLP. Durch die beiden 23Wh-Akkus ist eine Laufzeit von über 12h möglich, realistisch sind aber eher 6-7h (Vor allem beim Einsatz von IntelliJ IDEA) Einen Tag an der Hochschule hält das Notebook auf jeden Fall locker durch.

Der Standby-Modus funktioniert ebenfalls problemlos. Nur hin und wieder muss der WLAN-Treiber händisch nach dem Aufwachen Ent -und Wiedergeladen werden, da der NetworkManager keine Netzwerke mehr findet bzw. eine Verbindung aufbaut, aber keine Netzwerke mehr anzeigt. Diesen Mechanismus versuche ich gerade zu automatisieren, damit dieser Schritt bei jedem Schlafenlegen und Aufwachen durchgeführt wird.

Das einzige Manko stellt der GNOME-Power-Manager dar, der immer nur die Restlaufzeit eines Akkus anzeigt. Dadurch bekommt man immer wieder den Eindruck, dass der Rechner mehr Strom verbraucht bzw. die Laufzeit kürzer als es tatsächlich der Fall ist. Es wird nämlich immer zuerst ein Akku komplett geleert bevor der andere an der Reihe ist. Leider kapiert das G-P-M nicht, weshalb man tunlichst vermeiden sollte, das automatische Herunterfahren bei niedrigerem Akkustand ausschalten.

Das einzig echte Problem sind die hin und wieder auftauchenden Grafik-Glitches (Bildschirm zuckt kurz), welche aber nur im Akkumodus auftauchen. Damit kann ich aber leben, da sie wirklich nur selten und kurz auftreten und dadurch nicht wirklich stören.

Alles in allem war das Notebook ein perfekter Kauf für mich und ich muss nicht auf Windows ausweichen um das Notebook vernünftig benutzen zu können.