BIOS

Aus ThinkPad-Wiki

Modifizierte BIOS-Versionen

Die originalen ThinkPad-BIOS-Versionen verhindern oftmals die Nutzung von alternativen WLAN- und UMTS-Karten oder gar Festplatten. Der Nutzer erhält nach dem Einbau eine Fehlermeldung, die ihn auffordert, die Hardware wieder zu entfernen. Dieser Check stellt sicher, dass nur zertifizierte Hardware zum Einsatz kommt, die die Vorgaben von Organisationen wie der US FCC erfüllt. Bei modifizierten BIOS-Versionen wurden diese Checks entfernt, was den Einsatz von jeglichen hardwarekompatiblen Geräten erlaubt.

Bezugsquellen:

(Link inzwischen "tot")

T400 - BIOS nach fehlgeschlagenem Update wiederherstellen (Crisis Recovery)

(Funktioniert auch bei Generation T410)

Sollte das Flashen eines neuen BIOS fehlschlagen (Systemabsturz, fehlerhaftes BIOS, etc.) lässt sich das BIOS des ThinkPads mit etwas Glück wiederherstellen. Dazu wird ein funktionierendes BIOS von einem speziell präparierten USB-Stick geflasht.

Alles was dazu benötigt wird ist ein USB-Stick und ein funktionierendes Windows-System.

Vorbereiten des USB-Sticks

Im ersten Schritt wird ein bootfähiger USB-Stick erstellt, der ein funktionierendes BIOS enthält.

  1. Das Archiv von Troubadix herunterladen und entpacken. (Link verweist auf Mornsgrans' Homepage)
  2. Das original ThinkPad-BIOS von lenovo herunterladen.
    • Wenn das BIOS update utility heruntergeladen wurde die .exe starten (nur entpacken, nicht installieren).
    • Wenn die BIOS update bootable CD heruntergeladen wurde das .iso mit geeigneten Tools entpacken.
    • Es musst jetzt im gerade erstellten Ordner die eigentliche BIOS-Flash-Datei gesucht werden. Dieses erkennt man an der Endung .FL1, es sollte im gleichen Ordner auch eine zweite Datei mit gleichem Namen aber der Endung .FL2 enthalten sein (das ist das Update für den Embedded Controller, welches hier aber nicht weiter wichtig ist).
  3. Das BIOS (Datei mit der Endung .FL1) in den Ordner aus 1. kopieren.
    Per Eingabeaufforderung den Befehl "e_bcpvpw.exe *.FL1 BIOS.WPH" ausführen (* durch den tatsächlichen Namen ersetzen). Dabei wird die BIOS-Flash-Datei entpackt (*.FL1 ist ein komprimiertes Format).
  4. WINCRIS.EXE (mit Adminrechten, ab Vista und neuer im Kompatibilitätsmodus für Windows XP) ausführen, und damit die nötigen Dateien auf einen USB-Stick kopieren (USB-Stick wird formatiert!).
  5. Der USB-Stick ist nun augenscheinlich leer, allerdings ist ein Teil seiner Kapazität besetzt. Es müssen jetzt noch die folgenden Dateien aus dem Ordner aus 1. auf den Stick kopiert werden:
    • MINIDOS.SYS
    • PHLASH16.EXE
    • Das entpackte BIOS ("BIOS.WPH").

Wiederherstellen des BIOS

Im zweiten Schritt wird das ThinkPad in einem speziellen Modus gestartet, in dem das BIOS von dem zuvor erstellten USB-Stick geflasht wird.

  1. Das zu rettende ThinkPad stromlos machen, auch den Akku ausbauen.
  2. USB-Stick anstecken.
  3. Die Tastenkombination FN+B drücken (und halten).
  4. Stromkabel anstecken und ThinkPad anschalten.
  5. Wenn alles funktioniert hat, fängt das ThinkPad jetzt an zu piepen (manchmal einzelne Pieptöne, manchmal doppelte Pieptöne). Man kann die Tasten jetzt loslassen! Falls der USB-Stick eine Statusanzeige hat, sollte diese nun Aktivität signalisieren.
    (Die Pieptöne haben eine andere Abfolge und sind auch höher, wie bei den normalen Error-Beeps die die das Thinkpad bei defektem BIOS von sich gibt. Man hört den Unterschied und weiß damit, ob es funktioniert hat oder nicht.)
  6. Das Thinkpad führt jetzt den BIOS-Flash durch. Während dieser Zeit piept es dauerhaft und der USB-Stick bleibt aktiv. Anschließend schaltet sich das ThinkPad von selbst aus.
  7. Den USB-Stick abziehen, das ThinkPad starten und hoffen, dass es einen mit dem gewohnten Boot-Bildschirm begrüßt.

T440p wiederbeleben ("five beeps")

Das T440p verwendet am Mainboard zwei Chips:

  • Oberer Chip: Winbond 25Q32FVSIQ (4 MiB; erreichbar über das "Big Door")
  • Unterer Chip: Winbond 25Q64FVSIQ (8 MiB; vollständiges Zerlegen notwendig)

Das UEFI-BIOS liegt im oberen Chip mit 4 MiB. Im anderen Chip liegt u.a. die Intel ME (Management Engine) und weitere Dinge, die für die Initialisierung der Hardware notwendig sind. Zusätzlich hat der EC (Embedded Controller) eine eigene Firmware, die nicht in diesen beiden Chips gespeichert ist. Wenn das Mainboard nicht mehr startet und nur noch fünf mal piept (siehe Forendiskussion), kann es notwendig sein, dass man das UEFI-BIOS extern mittels SPI-Programmiergerät neu schreibt. Wie man das genau macht, würde den Rahmen dieses Wikiartikels sprengen. Bitte niemals vergessen, dass alle Stromquellen (AC/DC, interne und externe Akkus sowie CMOS-Batterie) getrennt sein müssen, bevor man den Chip extern flasht! Ein Backup des bisherigen Chip-Speichers sollte man vorher natürlich auch anfertigen und dauerhaft aufheben.

UEFI-BIOS-Images aus Updatedateien extrahieren

Diese Methode wurde bei einem T440p getestet. Ob das auch bei anderen Geräten funktioniert, ist nicht bekannt!

Um eine sauberes UEFI-BIOS-Image zu bekommen, sind folgende Schritte (unter einem Linux System) auszuführen:

  • Download des BIOS Update Utility in der gewünschten Version direkt von Lenovo. Nicht die bootbare CD herunterladen! Beim T440p wäre das z.B. gluj44us.exe für v2.56: wget https://download.lenovo.com/pccbbs/mobiles/gluj44us.exe
  • Extrahieren der Dateien mit innoextract, das bei den meisten Distributionen über die Paketverwaltung nachinstalliert werden kann: innoextract gluj44us.exe
  • Unter den extrahierten Dateien befindet sich nun auch eine FL1 Datei. Der genaue Speicherort variiert je nach BIOS-Version. Bei dieser müssen jedoch noch 488 Byte am Anfang weggeschnitten und alles was über 4 MiB hinaus geht ignoriert werden: for fl1 in ./*/*/*.FL1; do dd if="$fl1" of="$fl1.rom" skip=1 bs=488 count=4194304B status=progress; done
  • Das UEFI-BIOS-Image liegt nun in der exakt 4 MiB großen Datei mit der Dateiendung rom. Den genauen Pfad kann man so ermitteln: ls -adhils ./*/*/*.FL1.rom

Diese Methode funktioniert beim T440p mit allen BIOS-Versionen, egal ob alt oder neu.

UEFI-BIOS flashen

Bitte im Internet nach geeigneter Hardware und Software suchen. Prinzipiell funktioniert es sogar mit einem Raspberry Pi, wenn man sich Jumperkabel und eine SOIC8-Klemme (z.B. Pomona 5250) besorgt. Eine detaillierte Anleitung für diesen Schritt wäre zu viel für diese Wikiseite.

Links