BIOS-Update ohne optisches Laufwerk unter Linux: Unterschied zwischen den Versionen
| (155 dazwischenliegende Versionen von 8 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
= Einleitung = | |||
Dieser Artikel beschreibt das | Dieser Artikel beschreibt BIOS-Updates für Linux-Benutzer. Insbesondere für diejenigen, die nicht über eine parallele Windows-Installation (Dual Boot) zum Einspielen verfügen. | ||
'''fwupd''' ist für moderne ThinkPads der '''präferierte Weg''' für Firmware-Updates. Die Methoden ab GRUB4DOS sind als historisch zu betrachten und werden nicht mehr gepflegt. | |||
= fwupd = | |||
Im Jahr [https://blogs.gnome.org/hughsie/2018/08/06/please-welcome-lenovo-to-the-lvfs/ 2018 hat Lenovo begonnen], BIOS- und weitere Firmware-Updates für ThinkPads über den [https://fwupd.org/lvfs/ Linux Vendor Firmware Service (LVFS)] bereitzustellen. Als erste wurde die *60 Generation der Reihen T und X unterstützt. Zwischenzeitlich sind die | |||
P- und L-Reihen, sowie ausgewählte E-Modelle hinzugekommen. | |||
Über das zugehörige Werkzeug [https://github.com/fwupd/fwupd fwupd] lassen sich die Firmware-Updates bei laufendem Linux einspielen, wobei der eigentliche Flash-Vorgang beim nächsten Reboot stattfindet. Die Update-Dateien werden dazu in der EFI-Partition (ESP) "geparkt", die über genügend freien Speicherplatz verfügen muss. Das Flashen der sogenannten "UEFI Capsules" funktioniert sehr zuverlässig, Lenovos BIOS-Updates für Windows benutzen denselben Mechanismus. | |||
fwupd wird mittlerweile von allen maßgeblichen Linux-Distributionen mit der Standardinstallation ausgeliefert oder kann aus deren Repositories nachinstalliert werden. Je nach Distribution und Desktop-Environment werden verfügbare Updates auch direkt am Desktop angeboten. | |||
'''fwupd''' ist aufgrund der einfachen Nutzung und nahtlosen Integration - nicht nur für BIOS/EC, sondern auch für Akku, Docks, Fingerprint, Intel ME, SSD, Touchpad und TPM - für unterstützte Modelle und aktuelle Distributionen '''der präferierte Weg für Firmware-Updates.''' | |||
Hinweis: Firmware Updates werden im LVFS stets erst einige Tage nach der Bereitstellung auf der Lenovo Downloadseite (siehe [[#Quellen_und_Links|Links]]) veröffentlicht (absichtlich). | |||
== Voraussetzungen == | == Voraussetzungen == | ||
* | * ThinkPad der Generation *60 (T460, X260, etc.) oder neuer | ||
* | * Linux-Installation, die im UEFI-Modus bootet | ||
* EFI System Partition (ESP) >= 260 MB | |||
* Netzteil angeschlossen und Akku geladen | |||
* Displaydeckel geöffnet - ansonsten werden bestimmte Updates nicht angeboten | |||
Hinweis: es ist ''nicht'' erforderlich, die Kommandos mit Root-Rechten aufzurufen, denn die eigentliche Arbeit erledigt der Daemon fwupd im Hintergrund. Sollten für einen Reboot Root-Rechte erforderlich sein, wird das entsprechende Passwort abgefragt. | |||
== Ausführen == | |||
Folgendes Kommando holt die neuesten LVFS Metadaten zu verfügbaren Updates ab: | |||
fwupdmgr refresh | |||
Ob Updates verfügbar sind, zeigt optional das Kommando | |||
fwupdmgr get-updates | |||
Das Einspielen der verfügbaren Updates startet das Kommando | |||
fwupdmgr update | |||
Bei Bedarf wird ein Reboot abgefragt. | |||
== Informationen == | |||
Mehr Details zu unterstützten Devices und Firmware-Versionen sowie -Updates zeigt das Kommando | |||
fwupdmgr get-devices | less | |||
an. Es werden auch hilfreiche Hinweise wie ''"Device requires AC power to be connected"'' ''"Device cannot be updated while the lid is closed"'' gegeben. | |||
== Websuche == | |||
Die [https://fwupd.org/ LVFS-Seite] bietet im Kopf ein Eingabefeld mit Suchfunktion an. Eine Liste der neuesten, hochgeladenen Firmware findet sich [https://fwupd.org/lvfs/firmware/new hier]. | |||
= ISO Image auf USB-Stick = | |||
== Voraussetzungen == | |||
* ThinkPad der Generation *90 (T490, X390, etc.) oder neuer – für ältere Modelle verwendet man stattdessen die nachfolgende El-Torito-Methode | |||
* Ein USB Stick > 260 MB, Formatierung egal | |||
* ISO-Image des BIOS-Updates als Download von der Lenovo Website (siehe [[#Quellen_und_Links|Links]]) | |||
* Netzteil angeschlossen und Akku geladen | |||
Hinweis: das Update-Medium muss im UEFI-Modus gebootet werden | |||
== Allgemein: Device sdX des Sticks ermitteln == | |||
'''Vorsicht:''' eine falsche Angabe des Device kann katastrophale Auswirkungen auf das installierte System haben, so ist z.B. '''sda''' häufig die Systemplatte. | |||
Das Device kann man mit dem Kommando | |||
lsblk -p -o NAME,VENDOR,MODEL,SIZE,TYPE,SERIAL | |||
herausfinden. Dabei auf den Hersteller (Spalte VENDOR) und/oder die Grösse (Spalte SIZE) achten. Beispiel: | |||
NAME VENDOR MODEL SIZE TYPE SERIAL | |||
/dev/sdb BUFFALO USB Flash Disk 3,8G disk A000000000012345 | |||
Alternativ kann man dmesg verwenden. Dazu führt man unmittelbar nach dem Anstecken folgendes Kommando aus: | |||
dmesg | grep "Attached SCSI removable disk" | tail -1 | |||
In der Ausgabe ist das gesuchte Device zu sehen: | |||
[ 1234.567890] sd 0:0:0:0: [sdb] Attached SCSI removable disk | |||
Hinweis: sdX darf ''nicht'' mit einer Partitionsnummer, wie z.b. sdb1, weiter spezifiziert werden. Es wird stets das gesamte Device beschrieben. | |||
== ISO Image auf USB-Stick schreiben == | |||
Für den Schreibvorgang wird das Device sdX des Sticks benötigt, das man wie [[#Allgemein:_Device_sdX_des_Sticks_ermitteln|oben]] beschrieben ermittelt. Es wird angenommen, dass das Image ins Verzeichnis '''~/Downloads''' heruntergeladen wurde und '''thinkpadbios.iso''' heißt. Device, Name und ggf. Pfad müssen im gezeigten Kommando angepasst werden. | |||
Folgendes Kommando schreibt das Image auf den Stick: | |||
sudo cp -v ~/Downloads/thinkpadbios.iso /dev/sdX && sync | |||
== Ausführen == | |||
System neu starten. Beim Lenovo/ThinkPad Logo mit [F12] das Boot Menü aufrufen, mit den Pfeiltasten den USB Stick selektieren und mit [Enter] bestätigen. Den Anweisungen des Update-Programms folgen. | |||
= El Torito Image auf USB-Stick = | |||
== Voraussetzungen == | |||
* ThinkPad der Generation *20 (T420, X220, etc.) oder neuer mit UEFI – für noch ältere Modelle verwendet man stattdessen die [[#GRUB4DOS_mit_USB-Stick|GRUB4DOS-Methode]] | |||
* Ein USB Stick > 260 MB, Formatierung egal | |||
* ISO-Image des BIOS-Updates als Download von der Lenovo Website (siehe [[#Quellen_und_Links|Links]]) | |||
* geteltorito Version 0.6 | |||
* Netzteil angeschlossen und Akku geladen | |||
Hinweis: die Update-Medien für die *20 Generation booten im Legacy Modus (CSM), neuere Modelle ab der *30 Generation müssen im UEFI-Modus gebootet werden. Um beiden Fällen gerecht zu werden, stellt man im UEFI-Setup unter ''"Startup"'' eine der folgenden Kombinationen ein: | |||
{| class="wikitable" | |||
|- | |||
| '''UEFI/Legacy Boot''' || Both || Both | |||
|- | |||
| '''UEFI/Legacy Boot Priority''' || UEFI first || Legacy first | |||
|} | |||
== geteltorito installieren == | |||
Seit dem 01.06.2024 ist das geteltorito PERL Skript umgezogen. geteltorito lädt man sich nun von der Github-Seite des Autors mit | |||
git clone https://github.com/rainer042/geteltorito.git | |||
ins selbe Verzeichnis wie das ISO-Image herunter und macht es ausführbar mit: | |||
chmod +x geteltorito.pl | |||
=== Alternative Downloadmöglichkeit === | |||
wget https://download.linrunner.de/scripts/geteltorito.pl | |||
chmod +x geteltorito.pl | |||
== El Torito Image aus ISO extrahieren == | |||
Das El Torito Boot Image (.img) extrahiert man aus dem Update-ISO (.iso) mit | |||
./geteltorito.pl -o thinkpadbios.img thinkpadbios.iso | |||
Hinweis: '''thinkpadbios.iso''' ersetzt man durch den tatsächlichen Namen des ISOs. | |||
== El Torito Image auf USB-Stick schreiben == | |||
Für den Schreibvorgang wird das Device sdX des Sticks benötigt, das man wie [[#Allgemein:_Device_sdX_des_Sticks_ermitteln|oben]] beschrieben ermittelt, in das folgende Kommando einsetzt und es ausführt: | |||
sudo cp -v thinkpadbios.img /dev/sdX && sync | |||
Alternativ mit dd: | |||
sudo dd if=thinkpadbios.img of=/dev/sdX bs=1M status=progress && sync | |||
== Ausführen == | |||
System neu starten. Beim Lenovo/ThinkPad Logo mit [F12] das Boot Menü aufrufen, mit den Pfeiltasten den USB Stick selektieren und mit [Enter] bestätigen. Den Anweisungen des Update-Programms folgen. | |||
= GRUB4DOS mit USB-Stick = | |||
== Voraussetzungen == | |||
* Ein frisch mit FAT'''32''' formatierter, leerer USB Stick > 100 MB | |||
* ISO-Image des BIOS-Updates als Download von der Lenovo Website (siehe [[#Quellen_und_Links|Links]]) | |||
== Optional: Erzeugen des ISO aus einem "Non-Diskette"-BIOS == | |||
Falls für das betreffende ThinkPad-Modell kein ISO zum Download angeboten wird, lädt man das "Non-Diskette"-BIOS herunter. Um aus diesem ein ISO zu erzeugen, werden für Debian/Ubuntu die Pakete | |||
* '''cabextract''' sowie | |||
* '''genisoimage''' bzw. '''mkisofs''' | |||
benötigt, andere Distributionen können abweichen. | |||
Mit folgenden Befehl wird die EXE-Datei entpackt: | |||
cabextract 70uj29ud.exe -d ./BIOS | |||
Wobei '''70uj29ud.exe''' auf den entsprechenden Dateinamen angepasst werden muss. '''./BIOS''' ist ein Unterordner im aktuellen Ordner der von cabextract erstellt wird, um die entpackten Dateien abzulegen. Der Name kann frei editiert bzw. die Option -d komplett weggelassen werden, um die Dateien an anderer Stelle zu entpacken. | |||
Im Anschluß wechselt man in das oben eingetragene Verzeichnis | |||
cd BIOS | |||
und erstellt mit folgendem Befehl aus dem entpacktem IMG ein ISO: | |||
genisoimage -b 70uj29ud.img -c boot.catalog -o thinkpadbios.iso . | |||
Hiermit wird im aktuellen Verzeichnis (.) die Datei thinkpadbios.iso erzeugt, die nachfolgend weiter verwendet werden kann. | |||
== Erstellen des bootfähigen USB-Sticks == | |||
=== ISO-Image auf den Stick kopieren === | |||
cp /pfad/zur/iso-datei /media/name-des-sticks/thinkpadbios.iso | |||
sync | |||
=== GRUB4DOS herunterladen, auspacken === | |||
wget https://sourceforge.net/projects/grub4dos/files/GRUB4DOS/grub4dos%200.4.4/grub4dos-0.4.4.zip | |||
unzip grub4dos-0.4.4.zip | |||
cd grub4dos-0.4.4 | |||
cp grldr /media/name-des-sticks/ | |||
Zum Installieren von GRUB4DOS wird das korrekte Device sdX des Sticks benötigt. | |||
=== GRUB4DOS installieren === | |||
Das vorstehend ermittelte Device sdX setzt man nun in folgendes Kommando ein und führt es aus: | |||
sudo ./bootlace.com /dev/sdX | |||
Ausgabe: | |||
Disk geometry calculated according to the partition table: | |||
Sectors per track = xx, Number of heads = yyy | |||
Success. | |||
=== GRUB4DOS konfigurieren === | |||
Zuletzt erstellt man die Datei '''menu.lst''' auf dem Stick: | |||
gedit /media/name-des-sticks/menu.lst | |||
Inhalt: | |||
color blue/green yellow/red white/magenta white/magenta | |||
timeout 30 | |||
default /default | |||
title ThinkPad BIOS Update | |||
map (hd0,0)/thinkpadbios.iso (hd32) | |||
map --hook | |||
chainloader (hd32) | |||
boot | |||
== Ausführen == | |||
Die Ausführung des Updates per GRUB ist am [[#BIOS_Update_per_GRUB_ausf%C3%BChren|Ende dieses Artikels]] zusammengefaßt. | |||
= Boot-Option memdisk auf lokaler Festplatte (nur BIOS) = | |||
Mit GRUB lässt sich ein DOS-Boot-Image normalerweise nicht direkt starten, deshalb wird hier der Umweg über '''memdisk''' aus dem [http://www.syslinux.org Syslinux-Projekt] erklärt. Seit Ubuntu 14.04 gibt es allerdings das Paket [https://packages.ubuntu.com/xenial/grub-imageboot grub-imageboot], mit dem man es auch versuchen könnte. | |||
<u>Hinweis:</u> Dieser Abschnitt funktioniert sinngemäß auch unter anderen Distributionen mit GRUB 2, nur das Paket '''syslinux-common''' heißt eventuell anders oder fehlt. | |||
== Voraussetzungen == | |||
* Ubuntu 12.04 oder höher auf Festplatte installiert (kein Livesystem) | |||
* GRUB 2 (ist bei einem neu installierten Ubuntu automatisch der Fall) | |||
* ISO-Image (notfalls [[#Optional:_Erzeugen_des_ISO_aus_einem_.22Non-Diskette.22-BIOS|selbst konvertieren]]) des BIOS-Updates als Download von der Lenovo Website (siehe [[#Quellen_und_Links|Links]]) | |||
* Netzteil angeschlossen und Akku geladen | |||
== Installation == | == Installation == | ||
=== | === ISO-Image kopieren === | ||
=== | Den Download kopiert man nach '''/boot''': | ||
sudo cp /pfad/zur/iso-datei /boot/thinkpadbios.iso | |||
=== Syslinux einrichten === | |||
==== Ubuntu 12.04 und höher ==== | |||
Zu installieren ist das Paket | |||
* '''syslinux-common''' | |||
sudo apt-get install syslinux-common | |||
Anschließend ist das enthaltene Werkzeug '''memdisk''' nach '''/boot''' zu kopieren | |||
sudo cp /usr/lib/syslinux/memdisk /boot/ | |||
=== GRUB 2 konfigurieren === | |||
Mit einem [http://wiki.ubuntuusers.de/Editor#Root-Rechte-Bearbeiten-von-Systemdateien Editor mit Root-Rechten] bearbeitet man die Datei '''/etc/grub.d/40_custom''' und fügt folgende Zeilen am Ende hinzu: | |||
menuentry "ThinkPad BIOS Update" { | |||
set root='(hd0,1)' # diese Zeile analog den vorhandenen Einträgen in /boot/grub/grub.cfg anpassen! | |||
linux16 /boot/memdisk iso | |||
initrd16 /boot/thinkpadbios.iso | |||
} | |||
Hat man für '''/boot''' eine separate Partition eingerichtet, lauten die Einträge so: | |||
menuentry "ThinkPad BIOS Update" { | |||
set root='(hd0,1)' # diese Zeile analog den vorhandenen Einträgen in /boot/grub/grub.cfg anpassen! | |||
linux16 /memdisk iso | |||
initrd16 /thinkpadbios.iso | |||
} | |||
Um beim Systemstart das GRUB-Bootmenü anzuzeigen, sind in der Datei '''/etc/default/grub''' die beiden folgenden Zeilen wie gezeigt mit '#' auszukommentieren: | |||
#GRUB_HIDDEN_TIMEOUT=0 | |||
#GRUB_HIDDEN_TIMEOUT_QUIET=true | |||
Zuletzt werden alle Änderungen an GRUB aktiviert mit | |||
sudo update-grub | |||
= BIOS Update per GRUB ausführen = | |||
'''Wichtig: das BIOS-Update unbedingt mit geladenem Akku und angeschlossenen Netzteil durchführen!''' | |||
System neu starten, ggf. per [F12] den USB-Stick auswählen und im GRUB-Bootmenü den Eintrag | |||
* "ThinkPad BIOS Update" | |||
auswählen. | |||
<u>Hinweis:</u> bei einem UEFI-fähigen ThinkPad ist zu bedenken, dass der GRUB4DOS-USB-Stick nur im BIOS- d.h. Legacy-Modus gestartet werden kann. Dies ist im BIOS unter ''"Startup"'' entsprechend einzustellen: ''"Both"'', ''"Legacy first"''. | |||
Nun den Anweisungen des Programms folgen. | |||
Nach dem Update empfiehlt es sich, die BIOS-Einstellungen auf Defaults (Werkseinstellungen) zurückzusetzen: | |||
* Beim Systemstart mit [F1] ins BIOS | |||
* [F9] (Setup Defaults) [Enter] (Yes) | |||
* eigene Anpassungen (z.B. SATA-Modus) wieder einpflegen | |||
* [F10] (Save and Exit) [Enter] (Yes) | |||
* sobald das ThinkPad-Logo erscheint, Gerät kurz ausschalten | |||
= Quellen und Links = | |||
* [http://support.lenovo.com/de/de Lenovo Support Website] – BIOS Downloads | |||
* [https://thinkpad-forum.de/threads/linux-lenovo-stellt-automatische-firmware-updates-f%C3%BCr-thinkpads-per-lvfs-bereit.215260/ Forumsthread zu fwupd/LVFS] | |||
* [http://www.thinkwiki.org/wiki/BIOS_Upgrade/X_Series#Approach_10:_Booting_the_Lenovo_ISO_image_using_Grub_and_SysLinux 1], [http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk 2], [http://www.thinkwiki.org/wiki/BIOS_Upgrade#Using_grub4dos_.28also_for_Linux.29 3] – Anleitungen auf thinkwiki.org | |||
* [http://wiki.ubuntuusers.de/GRUB_2/Konfiguration GRUB 2] – Konfiguration des Bootloaders | |||
== Alternative Windows-basierte Methoden == | |||
* [http://thinkwiki.de/BIOS-Update_ohne_optisches_Laufwerk_unter_Windows] – mit GRUB4DOS, UltraISO oder Phlash16-Kommandos | |||
[[Category:Linux]] | |||
[[Category:BIOS]] | |||
[[Category:Ubuntu]] | |||
Aktuelle Version vom 19. August 2025, 06:52 Uhr
Einleitung
Dieser Artikel beschreibt BIOS-Updates für Linux-Benutzer. Insbesondere für diejenigen, die nicht über eine parallele Windows-Installation (Dual Boot) zum Einspielen verfügen.
fwupd ist für moderne ThinkPads der präferierte Weg für Firmware-Updates. Die Methoden ab GRUB4DOS sind als historisch zu betrachten und werden nicht mehr gepflegt.
fwupd
Im Jahr 2018 hat Lenovo begonnen, BIOS- und weitere Firmware-Updates für ThinkPads über den Linux Vendor Firmware Service (LVFS) bereitzustellen. Als erste wurde die *60 Generation der Reihen T und X unterstützt. Zwischenzeitlich sind die P- und L-Reihen, sowie ausgewählte E-Modelle hinzugekommen.
Über das zugehörige Werkzeug fwupd lassen sich die Firmware-Updates bei laufendem Linux einspielen, wobei der eigentliche Flash-Vorgang beim nächsten Reboot stattfindet. Die Update-Dateien werden dazu in der EFI-Partition (ESP) "geparkt", die über genügend freien Speicherplatz verfügen muss. Das Flashen der sogenannten "UEFI Capsules" funktioniert sehr zuverlässig, Lenovos BIOS-Updates für Windows benutzen denselben Mechanismus.
fwupd wird mittlerweile von allen maßgeblichen Linux-Distributionen mit der Standardinstallation ausgeliefert oder kann aus deren Repositories nachinstalliert werden. Je nach Distribution und Desktop-Environment werden verfügbare Updates auch direkt am Desktop angeboten.
fwupd ist aufgrund der einfachen Nutzung und nahtlosen Integration - nicht nur für BIOS/EC, sondern auch für Akku, Docks, Fingerprint, Intel ME, SSD, Touchpad und TPM - für unterstützte Modelle und aktuelle Distributionen der präferierte Weg für Firmware-Updates.
Hinweis: Firmware Updates werden im LVFS stets erst einige Tage nach der Bereitstellung auf der Lenovo Downloadseite (siehe Links) veröffentlicht (absichtlich).
Voraussetzungen
- ThinkPad der Generation *60 (T460, X260, etc.) oder neuer
- Linux-Installation, die im UEFI-Modus bootet
- EFI System Partition (ESP) >= 260 MB
- Netzteil angeschlossen und Akku geladen
- Displaydeckel geöffnet - ansonsten werden bestimmte Updates nicht angeboten
Hinweis: es ist nicht erforderlich, die Kommandos mit Root-Rechten aufzurufen, denn die eigentliche Arbeit erledigt der Daemon fwupd im Hintergrund. Sollten für einen Reboot Root-Rechte erforderlich sein, wird das entsprechende Passwort abgefragt.
Ausführen
Folgendes Kommando holt die neuesten LVFS Metadaten zu verfügbaren Updates ab:
fwupdmgr refresh
Ob Updates verfügbar sind, zeigt optional das Kommando
fwupdmgr get-updates
Das Einspielen der verfügbaren Updates startet das Kommando
fwupdmgr update
Bei Bedarf wird ein Reboot abgefragt.
Informationen
Mehr Details zu unterstützten Devices und Firmware-Versionen sowie -Updates zeigt das Kommando
fwupdmgr get-devices | less
an. Es werden auch hilfreiche Hinweise wie "Device requires AC power to be connected" "Device cannot be updated while the lid is closed" gegeben.
Websuche
Die LVFS-Seite bietet im Kopf ein Eingabefeld mit Suchfunktion an. Eine Liste der neuesten, hochgeladenen Firmware findet sich hier.
ISO Image auf USB-Stick
Voraussetzungen
- ThinkPad der Generation *90 (T490, X390, etc.) oder neuer – für ältere Modelle verwendet man stattdessen die nachfolgende El-Torito-Methode
- Ein USB Stick > 260 MB, Formatierung egal
- ISO-Image des BIOS-Updates als Download von der Lenovo Website (siehe Links)
- Netzteil angeschlossen und Akku geladen
Hinweis: das Update-Medium muss im UEFI-Modus gebootet werden
Allgemein: Device sdX des Sticks ermitteln
Vorsicht: eine falsche Angabe des Device kann katastrophale Auswirkungen auf das installierte System haben, so ist z.B. sda häufig die Systemplatte.
Das Device kann man mit dem Kommando
lsblk -p -o NAME,VENDOR,MODEL,SIZE,TYPE,SERIAL
herausfinden. Dabei auf den Hersteller (Spalte VENDOR) und/oder die Grösse (Spalte SIZE) achten. Beispiel:
NAME VENDOR MODEL SIZE TYPE SERIAL /dev/sdb BUFFALO USB Flash Disk 3,8G disk A000000000012345
Alternativ kann man dmesg verwenden. Dazu führt man unmittelbar nach dem Anstecken folgendes Kommando aus:
dmesg | grep "Attached SCSI removable disk" | tail -1
In der Ausgabe ist das gesuchte Device zu sehen:
[ 1234.567890] sd 0:0:0:0: [sdb] Attached SCSI removable disk
Hinweis: sdX darf nicht mit einer Partitionsnummer, wie z.b. sdb1, weiter spezifiziert werden. Es wird stets das gesamte Device beschrieben.
ISO Image auf USB-Stick schreiben
Für den Schreibvorgang wird das Device sdX des Sticks benötigt, das man wie oben beschrieben ermittelt. Es wird angenommen, dass das Image ins Verzeichnis ~/Downloads heruntergeladen wurde und thinkpadbios.iso heißt. Device, Name und ggf. Pfad müssen im gezeigten Kommando angepasst werden.
Folgendes Kommando schreibt das Image auf den Stick:
sudo cp -v ~/Downloads/thinkpadbios.iso /dev/sdX && sync
Ausführen
System neu starten. Beim Lenovo/ThinkPad Logo mit [F12] das Boot Menü aufrufen, mit den Pfeiltasten den USB Stick selektieren und mit [Enter] bestätigen. Den Anweisungen des Update-Programms folgen.
El Torito Image auf USB-Stick
Voraussetzungen
- ThinkPad der Generation *20 (T420, X220, etc.) oder neuer mit UEFI – für noch ältere Modelle verwendet man stattdessen die GRUB4DOS-Methode
- Ein USB Stick > 260 MB, Formatierung egal
- ISO-Image des BIOS-Updates als Download von der Lenovo Website (siehe Links)
- geteltorito Version 0.6
- Netzteil angeschlossen und Akku geladen
Hinweis: die Update-Medien für die *20 Generation booten im Legacy Modus (CSM), neuere Modelle ab der *30 Generation müssen im UEFI-Modus gebootet werden. Um beiden Fällen gerecht zu werden, stellt man im UEFI-Setup unter "Startup" eine der folgenden Kombinationen ein:
| UEFI/Legacy Boot | Both | Both |
| UEFI/Legacy Boot Priority | UEFI first | Legacy first |
geteltorito installieren
Seit dem 01.06.2024 ist das geteltorito PERL Skript umgezogen. geteltorito lädt man sich nun von der Github-Seite des Autors mit
git clone https://github.com/rainer042/geteltorito.git
ins selbe Verzeichnis wie das ISO-Image herunter und macht es ausführbar mit:
chmod +x geteltorito.pl
Alternative Downloadmöglichkeit
wget https://download.linrunner.de/scripts/geteltorito.pl chmod +x geteltorito.pl
El Torito Image aus ISO extrahieren
Das El Torito Boot Image (.img) extrahiert man aus dem Update-ISO (.iso) mit
./geteltorito.pl -o thinkpadbios.img thinkpadbios.iso
Hinweis: thinkpadbios.iso ersetzt man durch den tatsächlichen Namen des ISOs.
El Torito Image auf USB-Stick schreiben
Für den Schreibvorgang wird das Device sdX des Sticks benötigt, das man wie oben beschrieben ermittelt, in das folgende Kommando einsetzt und es ausführt:
sudo cp -v thinkpadbios.img /dev/sdX && sync
Alternativ mit dd:
sudo dd if=thinkpadbios.img of=/dev/sdX bs=1M status=progress && sync
Ausführen
System neu starten. Beim Lenovo/ThinkPad Logo mit [F12] das Boot Menü aufrufen, mit den Pfeiltasten den USB Stick selektieren und mit [Enter] bestätigen. Den Anweisungen des Update-Programms folgen.
GRUB4DOS mit USB-Stick
Voraussetzungen
- Ein frisch mit FAT32 formatierter, leerer USB Stick > 100 MB
- ISO-Image des BIOS-Updates als Download von der Lenovo Website (siehe Links)
Optional: Erzeugen des ISO aus einem "Non-Diskette"-BIOS
Falls für das betreffende ThinkPad-Modell kein ISO zum Download angeboten wird, lädt man das "Non-Diskette"-BIOS herunter. Um aus diesem ein ISO zu erzeugen, werden für Debian/Ubuntu die Pakete
- cabextract sowie
- genisoimage bzw. mkisofs
benötigt, andere Distributionen können abweichen.
Mit folgenden Befehl wird die EXE-Datei entpackt:
cabextract 70uj29ud.exe -d ./BIOS
Wobei 70uj29ud.exe auf den entsprechenden Dateinamen angepasst werden muss. ./BIOS ist ein Unterordner im aktuellen Ordner der von cabextract erstellt wird, um die entpackten Dateien abzulegen. Der Name kann frei editiert bzw. die Option -d komplett weggelassen werden, um die Dateien an anderer Stelle zu entpacken.
Im Anschluß wechselt man in das oben eingetragene Verzeichnis
cd BIOS
und erstellt mit folgendem Befehl aus dem entpacktem IMG ein ISO:
genisoimage -b 70uj29ud.img -c boot.catalog -o thinkpadbios.iso .
Hiermit wird im aktuellen Verzeichnis (.) die Datei thinkpadbios.iso erzeugt, die nachfolgend weiter verwendet werden kann.
Erstellen des bootfähigen USB-Sticks
ISO-Image auf den Stick kopieren
cp /pfad/zur/iso-datei /media/name-des-sticks/thinkpadbios.iso sync
GRUB4DOS herunterladen, auspacken
wget https://sourceforge.net/projects/grub4dos/files/GRUB4DOS/grub4dos%200.4.4/grub4dos-0.4.4.zip unzip grub4dos-0.4.4.zip cd grub4dos-0.4.4 cp grldr /media/name-des-sticks/
Zum Installieren von GRUB4DOS wird das korrekte Device sdX des Sticks benötigt.
GRUB4DOS installieren
Das vorstehend ermittelte Device sdX setzt man nun in folgendes Kommando ein und führt es aus:
sudo ./bootlace.com /dev/sdX
Ausgabe:
Disk geometry calculated according to the partition table:
Sectors per track = xx, Number of heads = yyy
Success.
GRUB4DOS konfigurieren
Zuletzt erstellt man die Datei menu.lst auf dem Stick:
gedit /media/name-des-sticks/menu.lst
Inhalt:
color blue/green yellow/red white/magenta white/magenta timeout 30 default /default title ThinkPad BIOS Update map (hd0,0)/thinkpadbios.iso (hd32) map --hook chainloader (hd32) boot
Ausführen
Die Ausführung des Updates per GRUB ist am Ende dieses Artikels zusammengefaßt.
Boot-Option memdisk auf lokaler Festplatte (nur BIOS)
Mit GRUB lässt sich ein DOS-Boot-Image normalerweise nicht direkt starten, deshalb wird hier der Umweg über memdisk aus dem Syslinux-Projekt erklärt. Seit Ubuntu 14.04 gibt es allerdings das Paket grub-imageboot, mit dem man es auch versuchen könnte.
Hinweis: Dieser Abschnitt funktioniert sinngemäß auch unter anderen Distributionen mit GRUB 2, nur das Paket syslinux-common heißt eventuell anders oder fehlt.
Voraussetzungen
- Ubuntu 12.04 oder höher auf Festplatte installiert (kein Livesystem)
- GRUB 2 (ist bei einem neu installierten Ubuntu automatisch der Fall)
- ISO-Image (notfalls selbst konvertieren) des BIOS-Updates als Download von der Lenovo Website (siehe Links)
- Netzteil angeschlossen und Akku geladen
Installation
ISO-Image kopieren
Den Download kopiert man nach /boot:
sudo cp /pfad/zur/iso-datei /boot/thinkpadbios.iso
Syslinux einrichten
Ubuntu 12.04 und höher
Zu installieren ist das Paket
- syslinux-common
sudo apt-get install syslinux-common
Anschließend ist das enthaltene Werkzeug memdisk nach /boot zu kopieren
sudo cp /usr/lib/syslinux/memdisk /boot/
GRUB 2 konfigurieren
Mit einem Editor mit Root-Rechten bearbeitet man die Datei /etc/grub.d/40_custom und fügt folgende Zeilen am Ende hinzu:
menuentry "ThinkPad BIOS Update" {
set root='(hd0,1)' # diese Zeile analog den vorhandenen Einträgen in /boot/grub/grub.cfg anpassen!
linux16 /boot/memdisk iso
initrd16 /boot/thinkpadbios.iso
}
Hat man für /boot eine separate Partition eingerichtet, lauten die Einträge so:
menuentry "ThinkPad BIOS Update" {
set root='(hd0,1)' # diese Zeile analog den vorhandenen Einträgen in /boot/grub/grub.cfg anpassen!
linux16 /memdisk iso
initrd16 /thinkpadbios.iso
}
Um beim Systemstart das GRUB-Bootmenü anzuzeigen, sind in der Datei /etc/default/grub die beiden folgenden Zeilen wie gezeigt mit '#' auszukommentieren:
#GRUB_HIDDEN_TIMEOUT=0 #GRUB_HIDDEN_TIMEOUT_QUIET=true
Zuletzt werden alle Änderungen an GRUB aktiviert mit
sudo update-grub
BIOS Update per GRUB ausführen
Wichtig: das BIOS-Update unbedingt mit geladenem Akku und angeschlossenen Netzteil durchführen!
System neu starten, ggf. per [F12] den USB-Stick auswählen und im GRUB-Bootmenü den Eintrag
- "ThinkPad BIOS Update"
auswählen.
Hinweis: bei einem UEFI-fähigen ThinkPad ist zu bedenken, dass der GRUB4DOS-USB-Stick nur im BIOS- d.h. Legacy-Modus gestartet werden kann. Dies ist im BIOS unter "Startup" entsprechend einzustellen: "Both", "Legacy first".
Nun den Anweisungen des Programms folgen.
Nach dem Update empfiehlt es sich, die BIOS-Einstellungen auf Defaults (Werkseinstellungen) zurückzusetzen:
- Beim Systemstart mit [F1] ins BIOS
- [F9] (Setup Defaults) [Enter] (Yes)
- eigene Anpassungen (z.B. SATA-Modus) wieder einpflegen
- [F10] (Save and Exit) [Enter] (Yes)
- sobald das ThinkPad-Logo erscheint, Gerät kurz ausschalten
Quellen und Links
- Lenovo Support Website – BIOS Downloads
- Forumsthread zu fwupd/LVFS
- 1, 2, 3 – Anleitungen auf thinkwiki.org
- GRUB 2 – Konfiguration des Bootloaders
Alternative Windows-basierte Methoden
- [1] – mit GRUB4DOS, UltraISO oder Phlash16-Kommandos
