Neuer Artikel: BIOS mittels Flashrom programmieren

Diskussion rund um unser Wiki.
Antworten
Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Neuer Artikel: BIOS mittels Flashrom programmieren

Beitrag von cirrussc » 19.10.2011 23:27:40

Ich bin dabei, eine Anleitung zum flashen des BIOS mittels Flashrom zu schreiben [1].
Das kommt ja doch mal häufig vor. Und viele wissen vllt. gar nichts von der mächtigen Alternative.
Was noch alles rein soll, weiß ich selbst noch nicht so genau.

Kritik, Anregungen, Erweiterungen usw. kann alles hier diskutiert werden.


[1] Wiki-Artikel zum Thema BIOS und andere Flashspeicher mit Flashrom programmieren
Zuletzt geändert von cirrussc am 20.12.2011 15:16:38, insgesamt 1-mal geändert.
Gruß cirrussc
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl

Benutzeravatar
LessWire
Beiträge: 558
Registriert: 21.11.2004 04:36:04
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Bavaria

Re: Neuer Artikel: BIOS mittels Flashrom programmieren

Beitrag von LessWire » 20.10.2011 05:10:08

Sehr ausführliche Beschreibung - besten Dank!

Die Verwendung für Notebooks wird nicht empfohlen.
Das bedeutet für mich, daß ein Chip evtl. korrekt erkannt wird, der Programmiervorgang aber trotzdem zumindest fehlerhaft verläuft - möglicherweise ein irreparabler Inhalt zurückbleibt ?
Schade, denn gerade für ein Notebook könnte ich es derzeit brauchen.

VG, LW.
at ~ now.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Neuer Artikel: BIOS mittels Flashrom programmieren

Beitrag von rendegast » 20.10.2011 05:57:12

Sehr schön!!!




In den meisten Fällen handelt es sich um eine Zip-Datei oder um eine selbst entpackende Exe-Datei, welche sich mit Debianpackage.png unzip oder Debianpackage.png unp entpacken lässt. Wenn dies nicht der Fall ist:
user@debian:~$ file mb_bios_ga-ma790xt-ud4p_f8*
mb_bios_ga-ma790xt-ud4p_f8.exe: PE32 executable for MS Windows (GUI) Intel 80386 32-bit

bleibt nichts anderes übrig als diese mittels Debianpackage.png wine oder unter einem Windows entpacken zu lassen.
Bis auf neuere msi-Dateien (mittlerweile viele) klappt eigentlich immer
'7z x blafoo'
(dessen unzip ist irgendwie besser umgesetzt)
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
TRex
Moderator
Beiträge: 8069
Registriert: 23.11.2006 12:23:54
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: KA

Re: Neuer Artikel: BIOS mittels Flashrom programmieren

Beitrag von TRex » 20.10.2011 11:10:37

Super, danke für diese Anleitung. Werd ich mal demnächst ausprobieren :)
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Re: Neuer Artikel: BIOS mittels Flashrom programmieren

Beitrag von cirrussc » 20.10.2011 13:21:26

LessWire hat geschrieben:Die Verwendung für Notebooks wird nicht empfohlen.
Das bedeutet für mich, daß ein Chip evtl. korrekt erkannt wird, der Programmiervorgang aber trotzdem zumindest fehlerhaft verläuft - möglicherweise ein irreparabler Inhalt zurückbleibt ?
Das ist einem Empfehlung der Entwickler. Es gibt einige wenige (kann man an 5 Fingern abzählen), die unterstützt werden.
Die aktuelle Hardwareunterstützung ist hier [1] komplett aufgelistet. Und im Teil für Notebooks sieht es noch mager aus. Woran liegt das?
Notebooks unterscheiden sich in sofern, dass hier alles etwas spezieller ist. Dann gibt es zusätzlich System-Controller, die sich dazwischen (zwischen Flash und Chipsatz) hängen (Schreibschutz und so was); Sicherheitsangelegenheiten wie TPM und die Tatsache, dass sich dafür kaum Dokumentation findet. Für die Entwickler bereitet auch Schwierigkeiten bei der Erweiterung, dass die Chips auf dem Mainboard im Notebook aufgelötet sind und dieser bei Fehlern und Notfällen geöffnet werden müsste. Auf normalen Mainboards ist das weniger problematisch. Da kommt man gut ran und kann mit passendem Equipment schnell eine Notoperation durchführen :) Genanntes schmälert natürlich den Helferkreis bei Notebooks.
Mein Thinkpad A31p scheint unterstützt zu werden. Aber selbst ich habe mir hier noch keine Schreiboperation getraut, obwohl ich mir zu 60% sicher bin, dass dies klappen könnte :)
flashrom
Calibrating delay loop... OK.
No coreboot table found.
Found chipset "Intel ICH3-M", enabling flash write... OK.
Found chip "ST M50FW080" (1024 KB) at physical address 0xfff00000.
===
This flash part has status UNTESTED for operations: PROBE READ ERASE WRITE
Please email a report to flashrom@coreboot.org if any of the above operations
work correctly for you with this flash part. Please include the full output
from the program, including chipset found. Thank you for your help!
===
No operations were specified.
rendegast hat geschrieben:Bis auf neuere msi-Dateien (mittlerweile viele) klappt eigentlich immer
'7z x blafoo'
(dessen unzip ist irgendwie besser umgesetzt)
Danke!
Solche Hinweise sind immer gut :)
TRex hat geschrieben:Super, danke für diese Anleitung. Werd ich mal demnächst ausprobieren :)
Dabei ist das nur die Gute-Wetter-Grundanwendung :P
Mit Flashrom ist noch mehr möglich. Mainboards, Netztwerkkarten, Raidkarten usw. lassen sich als Programmer umfunktionieren. Wenn man damit ein bisschen zu tun hat, weiß man, dass professionelle entweder sehr teur zu beschaffen sind oder DIY gebastelt werden müssen.

Auch wenn die automatisch Chiperkennung nicht funktioniert, kann es trotzdem möglich sein, dass dieser bereits unterstützt wird. Werd ich noch irgendwie einbauen + halt noch ein wenig Hintergrundgebrabbel, was wahrscheinlich niemanden interessiert :mrgreen:

[1] http://flashrom.org/Supported_hardware
Gruß cirrussc
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl

Benutzeravatar
LessWire
Beiträge: 558
Registriert: 21.11.2004 04:36:04
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Bavaria

Re: Neuer Artikel: BIOS mittels Flashrom programmieren

Beitrag von LessWire » 21.10.2011 03:35:37

cirrussc hat geschrieben: ...
Mein Thinkpad A31p scheint unterstützt zu werden. Aber selbst ich habe mir hier noch keine Schreiboperation getraut, obwohl ich mir zu 60% sicher bin, dass dies klappen könnte :)
...
Danke für die Infos!
60 % + Ersatzchip + SMD Lötspezialist = 100 % ;)
at ~ now.

cosmac
Beiträge: 4573
Registriert: 28.03.2005 22:24:30

Re: Neuer Artikel: BIOS mittels Flashrom programmieren

Beitrag von cosmac » 21.10.2011 10:23:17

hi,
LessWire hat geschrieben:60 % + Ersatzchip + SMD Lötspezialist = 100 % ;)
+ Programmiergerät

oder wo willst du den Ersatzchip programmieren, wenn das Notebook nicht mehr bootet? Sockel einlöten und im laufenden Betrieb den Chip tauschen könnte bei einem Notebook auch knifflig werden (Platzmangel).
Beware of programmers who carry screwdrivers.

Benutzeravatar
LessWire
Beiträge: 558
Registriert: 21.11.2004 04:36:04
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Bavaria

Re: Neuer Artikel: BIOS mittels Flashrom programmieren

Beitrag von LessWire » 22.10.2011 01:10:14

@cosmac: So todernst hatte ich es nicht gemeint, aber Du hast natürlich völlig recht - perfekt für 100 % war das meinerseits nicht.
Danke für die Vervollständigung! ;)
at ~ now.

Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Re: Neuer Artikel: BIOS mittels Flashrom programmieren

Beitrag von cirrussc » 22.10.2011 01:11:18

cosmac hat geschrieben:+ Programmiergerät

oder wo willst du den Ersatzchip programmieren, wenn das Notebook nicht mehr bootet? Sockel einlöten und im laufenden Betrieb den Chip tauschen könnte bei einem Notebook auch knifflig werden (Platzmangel).
Ich habe eines, aber selbst das reicht noch nicht. Bei SMD Gehäusen bräuchte man dann erst einmal einen Adapter, um den mit dem Programmer zu verbinden. Bei 8-beinigen SPI kompatiblen mag das noch funktionieren...
Gruß cirrussc
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl

cosmac
Beiträge: 4573
Registriert: 28.03.2005 22:24:30

Re: Neuer Artikel: BIOS mittels Flashrom programmieren

Beitrag von cosmac » 22.10.2011 11:24:09

Und für so ein TSSOP-Gehäuse kostet so ein Adapter mal eben über 200€ :(

Aber jetzt hab' ich endlich was gefunden, was man an dem Wikiartikel evt. noch verbessern könnte: eine Liste mit Programmierservice-Anbietern, drei hätte ich schon:
  • segor
  • cirrussc? ;)
  • cosmac (für Alix-Boards; evt. für PLCC-32-Chips)
Beware of programmers who carry screwdrivers.

Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Re: Neuer Artikel: BIOS mittels Flashrom programmieren

Beitrag von cirrussc » 22.10.2011 15:52:11

cosmac hat geschrieben:Und für so ein TSSOP-Gehäuse kostet so ein Adapter mal eben über 200€ :(
Jap. Und dann hol dir mal welche für 40, 48, 56 und 64 polige :) Mein Programmer (Galep 4) kann ohne speziellen Adapter bloß bis 40-pol, also gibt's da auch noch spezielle Preise 8)
cosmac hat geschrieben:Aber jetzt hab' ich endlich was gefunden, was man an dem Wikiartikel evt. noch verbessern könnte: eine Liste mit Programmierservice-Anbietern, drei hätte ich schon:
... da gibt's sicher noch viel zu verbessern/ergänzen. Aber die Idee ist gar nicht schlecht, das sollte man aufgreifen; von Segor kannte ich das noch gar nicht.
cosmac hat geschrieben:cosmac (für Alix-Boards; evt. für PLCC-32-Chips)
Sockel drauf gelötet :wink:
Ich brauch eigentlich nur noch so einen tollen Gas-Lötkolben mit dem man ohne Spitze solche plattgedrückten Vielfüßer (SMD) gut auslöten kann. Und nen zum Reflow-Ofen umgebauten Pizzaofen :mrgreen:

Ob, was und wie ich da noch rein setzten will/sollte, da bin ich mir immer noch unschlüssig ...
Gruß cirrussc
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl

cosmac
Beiträge: 4573
Registriert: 28.03.2005 22:24:30

Re: Neuer Artikel: BIOS mittels Flashrom programmieren

Beitrag von cosmac » 23.10.2011 00:40:54

cirrussc hat geschrieben:
cosmac hat geschrieben:cosmac (für Alix-Boards; evt. für PLCC-32-Chips)
Sockel drauf gelötet :wink:
noch einfacher: http://pcengines.ch/lpc1a.htm
sowas sollte es für jedes Board geben...
Beware of programmers who carry screwdrivers.

Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Re: Neuer Artikel: BIOS mittels Flashrom programmieren

Beitrag von cirrussc » 23.10.2011 17:54:48

Ah ok. Das funktioniert natürlich nur mit kompatiblen LPC-Flash.
Gruß cirrussc
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl

Benutzeravatar
Profbunny
Beiträge: 592
Registriert: 04.04.2004 11:12:29
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Bautzen

Re: Neuer Artikel: BIOS mittels Flashrom programmieren

Beitrag von Profbunny » 24.10.2011 07:05:22

bei mir hat es tadellos funktioniert, hab auch zufällig den gleiche rom chip wie im Beispiel, nur ein anderes Board.

Interessant wären noch andere Nutzungsmöglichkeiten, kann ich z.B ein neues Rom auf mein Android Handy flashen?
Rechner / Server Debian sid

Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Re: Neuer Artikel: BIOS mittels Flashrom programmieren

Beitrag von cirrussc » 25.10.2011 01:45:40

Profbunny hat geschrieben:Interessant wären noch andere Nutzungsmöglichkeiten, kann ich z.B ein neues Rom auf mein Android Handy flashen?
Das ist momentan wohl nicht möglich. Flashrom ist noch auf den klassischen PC angewiesen, denk ich. Das wäre für die Zukunft sicher mal interessant (obwohl auch problematisch wegen der vielen versch. Anbieter und Systeme).

edit: habe noch etwas im Artikel herum geschraubt ...
Gruß cirrussc
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl

Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Re: Neuer Artikel: BIOS mittels Flashrom programmieren

Beitrag von cirrussc » 08.11.2011 20:23:22

Mir fällt nun nichts weiter ein/auf. Deshalb als fertig/frei zum Review.
Wer mehr weiß, Verbesserungen erwünscht oder nur drüber schauen will, kann sich daran austoben :)
Gruß cirrussc
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl

schauinsland
Beiträge: 455
Registriert: 19.11.2007 11:17:40

Re: Neuer Artikel: BIOS mittels Flashrom programmieren

Beitrag von schauinsland » 18.12.2011 15:21:14

Hallo.

Auch von mir zunächst noch besten Dank für diesen wirklich hilfreichen Artikel. Vielleicht kurz noch der Hinweis, dass in der Warnung direkt über dem Inhaltsverzeichnis mit 9.4 statt 0.9.4 eine falsche Versionsnummer steht (kenne mich selber mit wikis noch nicht aus).

In der Hauptsache hätte ich aber eine Frage zu DMI:
Was das grundsätzlich ist, habe ich, denke ich, verstanden. Völlig unklar ist mir dagegen die Umsetzung des Konzeptes seitens dem BIOS.
Da gibt es ja diese MIF database genannten kleinen Datenbanken. Werden die selber irgendwo vom / im BIOS abgelegt und wenn ja, wo, auf Flash oder im CMOS?
Dann gibt es z. B. bei Gigabytes Q-Flash utility eine Anfrage, ob man DMI data erhalten will bzw. beim booten diese Meldungen "Verifying DMI pool data". Auch hier ist mir völlig unklar, was da passiert. Wird irgendwie eine bereits existierende Datenbank neu eingelesen und woanders abgespeichert, wenn ja, von wo nach wo? Oder wird irgendwie die Hardware selber noch einmal ausgelesen, wobei auch hier die Frage nach dem Speicherort bestünde?

Wäre schön, wenn Du mir hierzu ein paar Hinweise geben könntest.
Die Frage steht dabei für mich nicht im luftleeren Raum, sondern hat mit einer imho seltsamen Beobachtung zu den Prüfsummen bei flashrom zu tun. Ich glaube allerdings, dass mir dazu erst mal das mit DMI klarer sein sollte.

Gruß,

schauinsland

Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Re: Neuer Artikel: BIOS mittels Flashrom programmieren

Beitrag von cirrussc » 20.12.2011 16:53:44

schauinsland hat geschrieben:Auch von mir zunächst noch besten Dank für diesen wirklich hilfreichen Artikel. Vielleicht kurz noch der Hinweis, dass in der Warnung direkt über dem Inhaltsverzeichnis mit 9.4 statt 0.9.4 eine falsche Versionsnummer steht (kenne mich selber mit wikis noch nicht aus).
Oft gelesen, aber nie aufgefallen, Danke!


Zu DMI und den MIF Tabellen weiß ich selbst nicht mehr.

In einem Kommentar zu dieser DMI Frage [1] gibt jemand als Antwort:
The DMI pool is the information kept by the Bios of your current hardware configuration. It's kept in the CMOS. It can sometimes be corrupted by a failing motherboard battery. But hardware changes can also occasionally get it messed up.
Da der CMOS aber flüchtig ist, und nach dessen Löschen der PC immer normal startet, muss der "DMI-pool" doch irgendwie aus dem persistenten BIOS Flash kommen/generiert/geladen-werden. In der englischen WP Seite zum BIOS [2] ist rechts ein DMI Block im Boot Block abgebildet, was auch immer man damit anfangen soll.
Ich habe die DMI 2.0 Spezifikation [3] nur sehr grob überflogen und dabei keine Informationen über die physikalischen Orte der DMI Daten finden können. Zur MIF steht unter 11.1.4:
Since the policy is stored in the MIF database, it is necessary to protect the database. The contents of the MIF
database are persistent across reboots and, therefore, the MIF database must be kept in some type of persistenstorage, typically a file.
Ob der verwirrenden DMI Details denke ich, dass die "DMI Daten" (ich nenne es einfach mal so) irgendwo im BIOS Image, entweder integriert oder als separater Block, hinterlegt sind und vielleicht beim Start in den Speicher (und/oder den CMOS?) geblendet, oder erst "generiert" werden.
In der dmidecode Manpage steht: "As you run it, dmidecode will try to locate the DMI table." In der Verbindung mit dem angegebenen /dev/mem würde es die Vermutung mit dem Speichereinblendung bestätigen.

Mit flashrom kann man sich eine Layout-Datei erstellen, in/aus der man Bereiche separiert behandeln kann (flashen, vergleichen...). Das wären die Optionen --layout und --image. Damit ließe sich wohl ein z.B. ein hypothetischer DMI Block getrennt behandeln, wie es wohl auch Gigabyt's Q-Flash handhaben kann?

Möglicherweise findet sich in den Kernel Quellen/Docs etwas dazu.

Wenn Du mal erleuchtendes heraus finden solltest, dann wäre es nicht uninteressant :)

[1] http://www.computing.net/answers/hardwa ... 43193.html
[2] http://en.wikipedia.org/wiki/BIOS#IBM_P ... BIOS_chips
[3] http://www.dmtf.org/sites/default/files ... SP0005.pdf
Gruß cirrussc
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl

Antworten