Mac Pro 5.1 Rom / Firmware Backup Beschreibung und technischer Hintergrund

Das ist soweit ok auf den ersten Blick, was Du da siehst sind die normalen Uefi Module, Treiber und so Zeug.

Mehr ins Detail gehts mit dem nvram_test script aus Gibthub

kannst mir auch das Dump schicken, dann schau ich mit meinen Binwalk Signaturen drüber.

Hast ne Unterhaltung.
 
  • Gefällt mir
Reaktionen: iWetterstein
Hi Leute,

Bin ganz frisch hier wegen Neuanschaffung ziemlich alter (aber geiler) Hardware ;) Verfolge mit Interesse den Thread, da ich mein Baby noch länger erhalten möchte.

Hab jetzt nach den Hints hinbekommen mein Rom zu dumpen. Ich bekomme nach test_nvram folgende Message:

bin.png


Sieht doch eigentlich recht schlank aus, auch nicht Windows verbastelt, wie kann ich weitere Infos auslesen? Bzw. würde ein 3 fach PRAM Reset nun Sinn machen?

Update, bin nun auch hinter Binwalk gekommen - man muss nur lesen: hier sowas:

Ohne Titel.jpg


Deuten kann ich das allerdings nicht....

Grüße Dave.
 
Zuletzt bearbeitet:
Keine Katastrophe zu sehen, aber bei 25 Memory Configs ist der NVram Bereich des Rom sehr voll. Da schadet eine weitere Überprüfung nicht. Hast ne Unterhaltung.


...

Edit:

nachdem @MPcDave mit das Rom geschickt hat konnte man mit UefiTool im Nvram Volume auslesen dass der erste Stream nur noch recht wenig Platz hatte.

(FreeSpace im ersten nvram Stream VSS1: 9009 von ~65000)

Das hätte ihm auf die Füsse fallen können wenn das Nvram sich weiter so gefüllt hätte.

Im schlechtesten Fall funktioniert die "Garbage Collection" des ersten nvram Streams nicht mehr und wäre übergelaufen.



Das Problem ist: das Nvram füllt sich kontinuierlich bei jedem Boot. Wenn der Platz ausgeht dann überschreibt sich der erste Stream mit dem Zweiten.

Aber wehe wenn da irgendein Mist drin steht, dann kann das Überschreiben schief gehen und im schlimmsten Fall hat man einen Brick. Dann geht nur noch Rom Auslöten und neu Flashen. Gut wenn man dann wenigstens ein Backup hat.

Gerne duplizieren sich auch Variablen die nur einmal pro Stream (wir haben zwei) vorkommen sollen. BluetoothActiveControllerInfo ist eine dieser Variablen die sich gerne (angestoßen durch Big Sur's Low-Speed USB Problem) vermehren.

Wenn dann noch Systeme kommen die nicht für den 5.1 vorgesehen sind kommen Settings ins Nvram von denen die Firmware nichts weiß. Prominentestes Beispiel sind die Zertifikate von uefi Windows.

Dann leert sich das nvram nicht, im krassesten Fall läuft es über und überschreibt den nächsten Stream wo die wichtigsten Rechnerdaten drin stecken mit Prüfsummen (Fsys).

Wenn Prüfsummen nicht stimmen bricht das EFI den Startvorgang ab und wir haben einen scheintoten Mac Pro :-/


PS: ich würde ja gerne den ersten Post dieses Threads anpassen um neue Erkenntnisse und Berichtigungen aber leider gibts in Macuser keine Wiki Threads.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: iWetterstein und MPcDave
Ich hab was neues gebaut:

Angelehnt an DosDude's RomTool ein Script zum Rom sichern mit anschließender Analyse mit dem test_nvram script.

System Integrity Protection muss (zumindest für kext) ab Yosemite ausgeschaltet sein.

https://www.heise.de/mac-and-i/tipps/System-Integrity-Protection-SIP-in-macOS-deaktivieren-3946690.html

Bis jetzt konnte ich es unter Mavericks, El Capitan, High Sierra, Mojave, Catalina und Big Sur testen.

Unter Big Sur möchte es DirectHW.kext in Security freigegeben haben. Diese Kernel Extension ist im Script eingebettet und wird ge- und entladen.

Am System wird nichts verändert.

Malware und Virenscanner werden anschlagen, das ist ein Qualitätsmerkmal weil das Script DirectHW und Flashrom enthält mit dem man allerlei Schaden anrichten könnte, genauso wie DosDude's RomTool. An unserem Mac Pro bedingt, weil das Rom schreibgeschützt ist was durch den langen Tastendruck vom Einschalter aufgehoben wird.

Der Vorteil an meiner Version ist dass es dynamisch die Chip Version austestet, so muss man nicht mehr den Rechner öffnen und mühsam die Chip Version ablesen. Je nach GPU muss die dazu raus und je nach persönlicher Sehstärke braucht man dazu auch Hilfsmittel.

Es ist im frühen Status, nennen wir es mal public alpha. Das ausgelesene Rom ist Fehlerfrei.

ein paar Screenshots, sieht altbacken aus weil unter Mavericks:


1. about.png



2. tried to read.png


3. Reading Flash notification.png


4. files saved in downloads.png


5. analysis.png



wer sich traut: https://www.dropbox.com/s/gohk7sm6syzeatp/Macschrauber%27s%20CMP%20Rom%20Dump.zip?dl=0
 
  • Gefällt mir
Reaktionen: Proinnsias und DL8LAQ
Nach dem Macschrauber mir 2x 1a Roms gemacht hat für meinen 4.1 und 5.1, habe ich den ganzen Thread nun gelesen.
War sehr interessant. Jetzt habe ich mich an meinen cMP 3.1 gemacht, folgendes Ergebnis liefert nvram_test:

2 Memory Configs
0 xml
0 Microsoft Certificates
1 BluetoothActiveControllerInfos
1 BluetoothInternalControllerInfos

Mir geht es gerade hauptsächlich um Bereinigung von meinem 3.1 und dem 1.1 (auf 2.1 geflasht).
Säubert ihr eure Firmware-Roms manuell dann mit binwalk?
Der 3.1 hat bereits das APFS-Firmware patch bekommen, will ich noch erwähnen.
Beim 1.1/2.1 stellt sich mir die Frage, weil er ein 32bit EFI hat, ob man dort überhaupt was bereinigen kann/muss.
Aktuell ist FreeBSD auf dem 1.1, ich werd mal versuchen flashrom auf FreeBSD laufen zu lassen, vielleicht geht es ja.
Sonst müsste ich ein Live-Linux booten und müsste wieder eine der beiden Bootscreen-GPU's die ich habe einbauen, was immer nervt ;).
Hab ne GT120 und eine Radeon 5770 orig Applekarten hier.
 
Auch interessant ist, auf Ebay werden GPU's geflasht und fertige GPU's angeboten für all mögliche Radeon RX-Karten.
Daher das ich 2x eine Radeon RX570 und 2x eine Radeon RX460 habe ist es sehr interessant das Verfahren kennenzulernen bzw. die ROMS zu bekommen und diese zu flashen.
Dann braucht man nicht mehr ausbauen, das wäre ein richtiger Segen.
Ich weiss es gibt die Möglichkeit OpenCore+Refind zu benutzen, aber mit einem anderen System als MacOS sieht es im Moment schlecht aus und geflashte Karten sind so oder so immer praktisch.
 
Das gehört aber jetzt in den Grafikkarten Thread, haltet mir bitte den Thread thematisch sauber :)
 
Nach dem Macschrauber mir 2x 1a Roms gemacht hat für meinen 4.1 und 5.1, habe ich den ganzen Thread nun gelesen.
War sehr interessant. Jetzt habe ich mich an meinen cMP 3.1 gemacht, folgendes Ergebnis liefert nvram_test:

2 Memory Configs
0 xml
0 Microsoft Certificates
1 BluetoothActiveControllerInfos
1 BluetoothInternalControllerInfos

Mir geht es gerade hauptsächlich um Bereinigung von meinem 3.1 und dem 1.1 (auf 2.1 geflasht).
Säubert ihr eure Firmware-Roms manuell dann mit binwalk?
Der 3.1 hat bereits das APFS-Firmware patch bekommen, will ich noch erwähnen.
Beim 1.1/2.1 stellt sich mir die Frage, weil er ein 32bit EFI hat, ob man dort überhaupt was bereinigen kann/muss.
Aktuell ist FreeBSD auf dem 1.1, ich werd mal versuchen flashrom auf FreeBSD laufen zu lassen, vielleicht geht es ja.
Sonst müsste ich ein Live-Linux booten und müsste wieder eine der beiden Bootscreen-GPU's die ich habe einbauen, was immer nervt ;).
Hab ne GT120 und eine Radeon 5770 orig Applekarten hier.

Mit den 3.1 habe ich noch keine Probleme gesehen. Afaik kann man dort gar kein Uefi Windows installieren.

Ich könnte theoretisch 3.1 auch säubern aber das mache ich nicht weil man die nicht mit einfachen Mitteln reparieren kann. Fehler = Board tot. Das kann selbst ein teildefekter Flash Chip sein. Ich möchte nicht für das Ableben eines 3.1 verantwortlich sein. Einen 4.1 / 5.1 kann man (relativ) einfach reparieren mit totem Flash. Gleiches gilt für 1.1 und 2.1

Ein Träumchen wäre eine Virtuelle Maschine der man das Rom einspielen kann. Wer sich damit auskennt: Freiwillige vor :)

Binwalk ist ein passives Diagnosetool.

Das Bereinigen geschieht manuell, es müssen Checksummen überprüft und ggf angepasst werden. Kleinste Fehler können in einem Brick enden. Das ist nichts für einen Selbstversuch. Höchstens jemand kann den Flash löten und programmieren. Bis ich alles konnte habe ich etliche Chips gelötet ;-)
 
Für die Threadhygiene schreibe ich auch nicht mehr viel :).
 
Mein Script hat sich weiter entwickelt.

Am meisten Kopfzerbrechen hat Big Sur bereitet und die Freigabe der DirectHW.kext die es in etlichen Versionen und Varianten gibt.

Um nicht in Konflikt mit DosDude's RomTool zu kommen lade ich die DirectHW.kext die in ~/Library/Application Support/ROMTool liegt. Falls dort keine liegt meine "eigene"

Leider bekomme ich es nicht geregelt DirectHW.kext mit SIP aktiv zu laden. Also wie bei RomTool muß SIP aus sein zum Dumpen. Dafür erkennt meine Variante den Chip, macht Zeitstempel in die Filenamen und wertet das NVRam ein wenig aus.

Screenshots der ersten Version sind in #124, die markanteste Neuerung wäre das Auswerten des Freien Speichers im Nvram.

Genau da liegt ja unser Problem (neben den Indikatoren für ein zerschossenes NVRam).

Das Script läuft von Mavericks bis Big Sur, für Yosemite bekommt man die kext nicht zum Laufen.

5. analysis Mojave.png



https://www.dropbox.com/s/gohk7sm6syzeatp/Macschrauber's CMP Rom Dump.zip?dl=0
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Proinnsias, Cookie48, Grobi112 und eine weitere Person
Das enthaltene test_nvram shell script wurde auch bei Github upgedated:

https://gist.github.com/startergo/56d3770b7f78dd1591790c69753f846c


Code:
test_nvram '/Users/x/Desktop/H0xxxxx20G_144.0.0.0.0_SST25VF032B.bin'

scanning: /Users/x/Desktop/H0xxxxxx20G_144.0.0.0.0_SST25VF032B.bin
10 Memory Configs (ok)
1 xml (ok)
0 Microsoft Certificates (ok)
4 BluetoothActiveControllerInfos (not ok)
1 BluetoothInternalControllerInfos (ok)
39616 Bytes free space of 65464
 
  • Gefällt mir
Reaktionen: UnixCoon, MPcDave, Indio und eine weitere Person
habe gerade (eben durch die Entwicklung an dem Script(en) auf meinem 3.1 eine Garbage Collection durch Neustart erlebt. Ich dumpe und analysiere gerade sehr viel.

Wurde schon leicht nervös weil nur noch 6k frei.

Beim 3.1 gibt es nur einen NVram Stream, deshalb sind dort die 15 Memory Configs viel.

Analyse gestern:

Code:
15 Memory Configs (ok)
0 xml (ok)
0 Microsoft Certificates (ok)
1 BluetoothActiveControllerInfos (ok)
1 BluetoothInternalControllerInfos (ok)
6080 Bytes free space of 65464


Analyse heute (nur nach Neustart):

Code:
2 Memory Configs (ok)
0 xml (ok)
0 Microsoft Certificates (ok)
1 BluetoothActiveControllerInfos (ok)
1 BluetoothInternalControllerInfos (ok)
47616 Bytes free space of 65464

Wenn die Garbage Collection nicht funktioniert (weil Zertifikate, Leichen, abgebrochene Logs, Kernel Panics, usw drin stehen dann hätte das Nvram sich weiter gefüllt bis es übergelaufen wäre und im schlimmsten Fall den nächsten Stream überschrieben.

Das wäre dann ein Brick, ein nicht mehr startender Rechner der nur noch durch Firmware Reparatur zu retten wäre.

Bedeutet Chip raus und idealerweise durch einen Neuen programmierten zu Ersetzen. Die Chips selber haben auch begrenzte Lebensdauer und ich habe schon einige verbrauchte getauscht.

Diese Programmierung ist die Firmware inklusive der Rechner IDs, (SN, Logic Board ID, Date of Build, Sales Ordner Number) sowie der Sensorbeschreibungen in dem Base Blob.

Deshalb die Forderung nach den Backups. Die nackte Firmware ist einfach zu beschaffen, die IDs sind einzigartig und auch nur teilweise abzulesen. Für die Board ID muss zum Beispiel auch der CPU Käfig raus. Das Zusammensetzen mit den korrekten Prüfsummen ist eine Heidenarbeit und lässt Raum für Interpretationen.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: UnixCoon und Indio
Hallo Macschrauber,

habe schon viele Deiner Beiträge gelesen, leider verstehe ich nicht alles was Du schreibst.
Ich habe einen cMP 5.1, auf dem Mojave läuft. Bin auch sehr zufrieden, auch mit dem hohen Alter immer noch eine tolle Kiste.

Du beschreibst hier, wie wichtig es ist, ein Backup vom ROM zu machen. Habe ich versucht, aber es scheitert schon daran, dass ich mit Cmd+R nicht in den Recovery-Modus komme. Kann es sein, dass ich diese Funktion versehentlich ausgeschalten habe?

Hast Du noch eine Idee?

Vielen Dank für Deine Unterstützung (möchte ja meinen cMP noch möglichst lange nutzen).
RR
 
Hallo Macschrauber,

habe schon viele Deiner Beiträge gelesen, leider verstehe ich nicht alles was Du schreibst.
Ich habe einen cMP 5.1, auf dem Mojave läuft. Bin auch sehr zufrieden, auch mit dem hohen Alter immer noch eine tolle Kiste.

Du beschreibst hier, wie wichtig es ist, ein Backup vom ROM zu machen. Habe ich versucht, aber es scheitert schon daran, dass ich mit Cmd+R nicht in den Recovery-Modus komme. Kann es sein, dass ich diese Funktion versehentlich ausgeschalten habe?

Hast Du noch eine Idee?

Vielen Dank für Deine Unterstützung (möchte ja meinen cMP noch möglichst lange nutzen).
RR


Mehrere Möglichkeiten.

Keine Recovery vorhanden. Nachschauen per Diskutil list

Tastatur gibt beim Starten nichts aus. USB Tastatur direkt am Mac einstecken, kein Hub, keine USB Karte.


Wenn keine Recovery da ist einen USB Installationsstick booten und dort SIP ausschalten.

Vielleicht gibts auch noch ne Mavericks Installation, die nehm ich immer um die Zeit zu sparen SIP auszuschalten, das gabs bei 10.9 noch nicht.

Oder Linux bemühen: https://www.macuser.de/threads/mac-pro-5-1-rom-firmware-backup-beschreibung-und-technischer-hintergrund.844183/post-10611919
 
hier zur Anschaulichung ein Dump eines Mac Pro bei dem der erste Stream übergelaufen war.

links der defekte, rechts zum Vergleich ein korrekter Dump.

Der linke startet nicht mehr, das Auslesen ging über den ausgelöteten Chip

bei $VSS beginnt ein Stream, der 4.1/5.1 hat zwei Streams, der 3.1 hat einen.

2nd stream overwritten.png
 
Tastatur gibt beim Starten nichts aus. USB Tastatur direkt am Mac einstecken, kein Hub, keine USB Karte.
Das war's, danke :)

Nun habe ich ROMTool runter geladen und - nach längerem Suchen - auch das Passwort für die Zip-Datei gefunden.
ROMTool gestartet und "Dump System ROM" ausgewählt. Die gespeicherte bin-Datei muss ich jetzt für den Fall der Fälle sicher aufbewahren, richtig?

Naja, wenn das alles war dann verstehe ich Dein Bemühen, das allen cMP-Usern nahe zu bringen.

:coffee:
 
  • Gefällt mir
Reaktionen: Indio
Das war's, danke :)

Nun habe ich ROMTool runter geladen und - nach längerem Suchen - auch das Passwort für die Zip-Datei gefunden.
ROMTool gestartet und "Dump System ROM" ausgewählt. Die gespeicherte bin-Datei muss ich jetzt für den Fall der Fälle sicher aufbewahren, richtig?

Naja, wenn das alles war dann verstehe ich Dein Bemühen, das allen cMP-Usern nahe zu bringen.

:coffee:


du hättest jetzt gleich das neue script vom macschrauber benutzen können und
am ende auch gleich die information erhalten in welchen zustand dein bootROM ist.

https://www.macuser.de/threads/mac-pro-5-1-rom-firmware-backup-beschreibung-und-technischer-hintergrund.844183/post-11083937
 
u hättest jetzt gleich das neue script vom macschrauber benutzen können und
am ende auch gleich die information erhalten in welchen zustand dein bootROM ist.
Wollte ich auch, aber ich war/bin mir nicht sicher... Es ist schon die Datei "test_nvram", oder?
:unsure:
 
#130 ist ein rom dumper, mit einigen spezifischen Erweiterungen für CMP 3.1 bis 5.1 Nutzer.

Es benutzt das gleiche Tool (flashrom) wie DosDude sein RomTool. Zur Auswertung enthält es auch test_nvram.


#131 ist ein Kommandozeilentool was ich schon länger veröffentlicht hab (test_nvram) mit Neuerungen.
 
Wollte ich auch, aber ich war/bin mir nicht sicher... Es ist schon die Datei "test_nvram", oder?
:unsure:

Code:
23 Memory Configs (take care)
0 xml (ok)
3 iCloud Tokkens (not ok)
2 Microsoft Certificates (very bad)
2 BluetoothActiveControllerInfos (ok)
2 BluetoothInternalControllerInfos (ok)
12288 Bytes free space of 65464

Die iCloud Tokkens hab ich in test_nvram neu drin nachdem mir es bei einem Dump aufgefallen war der übergelaufen war. Normal sind einer pro Stream.

Also Jungs und Mädels, Sichern ist schon mal toll, aber auch prüfen.

Sollte selbstredend neu.
 
  • Wow
Reaktionen: Indio
Zurück
Oben Unten