- chalblog - https://blog.is-a-geek.org -

BIOS fast jedes Mainboards in der Linux Konsole flashen

BIOS fast jedes Mainboards in der Linux Konsole flashen [1]Für Windows wird von vielen Herstellern ein geeignetes Flashtool beigepackt. Für Linux bieten diese jedoch meistens keinerlei Unterstützung an, was den BIOS-Flash angeht. Eine Boot-CD ist zwar verhältnismäßig schnell erstellt, für die etwas fauleren Menschen unter uns aber noch immer zu aufwendig. Es gibt auch die Möglichkeit mit einem kleinen Tool, welches die meisten ROM-Chips unterstützt das BIOS direkt aus der Konsole zu flashen.

Das Tool nennt sich “flashrom [2]” und es ist sogar in den Ubuntu-Repos enthalten. Da es jedoch sehr aktiv weiterentwickelt wird, empfiehlt es sich die aktuelle Version von der Herstellerseite zu laden und zu installieren.

Achtung: Ich übernehme KEINE Verantwortung für eventuell auftretende Defekte. Die Durchführung geschieht in eigener Verantwortung. Ein Bios-Update ist nie zu 100% sicher, deshalb beachtet meine Anweisungen in der Anleitung.

Installation

Als Vorbereitung installieren wir das Pciutils-Dev-Paket und Subversion zum Herunterladen des Tools:

sudo apt-get install pciutils-dev subversion

Danach ladet den “flashrom”-Quellcode in einen Ordner im Home-Verzeichnis mit Hilfe eines Subversion-Checkout:

svn co svn://flashrom.org/flashrom/trunk ~/flashrom

Jetzt wechseln wir in dieses Verzeichnis, kompilieren und installieren Flashrom:

cd ~/flashrom
make
sudo make install

BIOS Version, Backup und Flash

Die aktuell am Chip enthaltene Biosversion kann mit folgendem Befehl ausgelesen werden:

 sudo dmidecode -s bios-version

Ein Backup ist bei auftretenden Problemen immer hilfreich und deshalb sichern wir das BIOS an dieser Stelle.

sudo flashrom -r old.rom

Ladet euch das neue BIOS beim jeweiligen Hersteller herunter und führt den Flash wie folgt durch (“bios.file” durch eure Datei ersetzen):

sudo flashrom -w bios.file

Sieht die Ausgabe ähnlich der untenstehenden aus, hat alles geklappt.

.
.
This chipset supports the following protocols: SPI.
Found Winbond flash chip “W25X80″ (1024 kB, SPI) at physical address 0xfff00000.
Flash image seems to be a legacy BIOS. Disabling coreboot-related checks.
Reading old flash chip contents… done.
Erasing and writing flash chip… Erase/write done.
Verifying flash… VERIFIED.

Bei manchen Mainboards kann es jedoch vorkommen (bei mir 2 von 7), dass das “VERIFY” direkt im Zuge des Flashens fehlschlägt und in der Konsole dazu geraten wird den PC nicht neu zu starten.

.
.
Reading old flash chip contents… done.
Erasing and writing flash chip… Erase/write done.
Verifying flash… VERIFY FAILED at 0x000b9800! Expected=0x8e, Read=0xff, failed byte count from 0×00000000-0x000fffff: 0xfc
Your flash chip is in an unknown state.
Get help on IRC at irc.freenode.net (channel #flashrom) or
mail flashrom@flashrom.org with FAILED: your board name in the subject line!
——————————————————————————-
DO NOT REBOOT OR POWEROFF!

Keine Sorge, normalerweise wurde das BIOS richtig geflasht und eine erneute Überprüfung sollte dies auch zeigen. Bei einigen Mainboards kann das BIOS so kurz nach dem Flash einfach nicht verifiziert werden.

sudo flashrom -v bios.file

Fällt die Überprüfung auch jetzt negativ aus, versucht entweder die neue Version erneut in den Chip zu laden oder spielt das zuvor erstellte Backup zurück.

Nach einem Neustart kann man die Version wieder mit diesem Befehl anzeigen lassen:

sudo dmidecode -s bios-version

 

Vielen Dank an die Entwickler und viel Spaß beim Flashen!