Mac Pro 5.1 Rom / Firmware Backup Beschreibung und technischer Hintergrund

Gerd's Rom sah auf den ersten Blick nicht ungewöhnlich aus, 14 Memoryconfigs, keine Zertifikate, keine XML Datei.

Aber ein Blick mit dem Hexeditor zeigt im Nvram große Lücken wo keine hingehören !

Screenshot 2020-11-16 at 23.19.37.png

Das sollte unbedingt neu.
 
mit catalina funktioniert das ROMtool nicht mehr,
da hier auch schon das system sich auf einer nicht beschreibbaren
unsichtbaren partition sich befindet.

hier das gleiche mit bug shure:

Anhang anzeigen 308347

also wie @Macschrauber oben schon schrieb: älteres system verwenden!


Es ist problematisch das rom auszulesen oder zu flashen wenn OpenCore spoofing im Spiel ist, das greift ins nvram ein.

Auslesen und flashen nur mit Systemen ohne OpenCore smbios spoofing.

Nur mit

boot-args=„-no_compat_check“

Starten.

Dazu in die Recovery booten
 
Eine Fragmentierung des Nvram kann man auch an der Anzahl der BluetoothActiveControllerInfo Variable festmachen.

Die sollten 2 mal (oder weniger) im Nvram Volume auftauchen. Zwei mal wegen dem Backup im zweiten Stream.

Neben den MemoryConfigs, die sollten die Anzahl der Speichersteckplätze (mal 2 wegen dem Backup) auch nicht überschreiten.


auch hierfür ein Mini Shell Progrämmchen:

Code:
#!/bin/bash

# BluetoothActiveControllerInfos 0.1 by Macschrauber

#usage: BluetoothActiveControllerInfos MyRom.bin



#search pattern: 62006C007500650074006F006F007400680041006300740069007600650043006F006E00740072006F006C006C006500720049006E0066006F

# to make executable from Terminal:
# chmod 755 BluetoothActiveControllerInfos
# cp BluetoothActiveControllerInfos /usr/local/bin

BluetoothActiveControllerInfos=$(xxd -p "$1" | tr -d '\n' | grep -o '62006c007500650074006f006f007400680041006300740069007600650043006f006e00740072006f006c006c006500720049006e0066006f' | wc -l)
echo $BluetoothActiveControllerInfos' BluetoothActiveControllerInfos'
exit 0



Beispiel für ein fragmentiertes Rom eines 4.1->5.1 Dual:

Code:
$test nvram.vol

17 Memory Configs
3 xml
0 Microsoft Certificates
5 BluetoothActiveControllerInfos
 
Zuletzt bearbeitet:
Ich habe in Vorbereitung auf OpenCore dann mal per ROM-Tool einen Dump gemacht - während ich den Rechner besitze, war da nie Windows drauf - vorher war offenbar mehr los ...
sieht wohl nicht so toll aus ...
@Macschrauber könntest Du mir bitte das ROM mal interpretieren? Wäre ich sehr dankbar .. vorerst traue ich mich nicht, noch weiter mit OC fortzufahren.

Code:
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             UEFI PI Firmware Volume, volume size: 524288, header size: 1, revision: 0, EFI Firmware File System, GUID: 7A9354D9-0468-444A-CE81-0BF617D890DF
24972         0x618C          CRC32 polynomial table, little endian
35787         0x8BCB          mcrypt 2.2 encrypted data, algorithm: blowfish-448, mode: CBC, keymode: 8bit
524288        0x80000         UEFI PI Firmware Volume, volume size: 524288, header size: 1, revision: 0, EFI Firmware File System, GUID: 7A9354D9-0468-444A-CE81-0BF617D890DF
549260        0x8618C         CRC32 polynomial table, little endian
560075        0x88BCB         mcrypt 2.2 encrypted data, algorithm: blowfish-448, mode: CBC, keymode: 8bit
1048576       0x100000        UEFI PI Firmware Volume, volume size: 16384, header size: 1, revision: 0, EFI Firmware File System, GUID: 7A9354D9-0468-444A-CE81-0BF617D890DF
1064960       0x104000        UEFI PI Firmware Volume, volume size: 49152, header size: 1, revision: 0, GUID: 153D2197-29BD-44DC-59AC-887F70E41A6B
1065216       0x104100        Intel x86 or x64 microcode, sig 0x000106a5, pf_mask 0x03, 2018-05-11, rev 0x001d, size 12288
1077504       0x107100        Intel x86 or x64 microcode, sig 0x000206c0, pf_mask 0x13, 2009-08-20, rev 0x-ffea, size 8192
1085696       0x109100        Intel x86 or x64 microcode, sig 0x000206c2, pf_mask 0x03, 2018-05-08, rev 0x001f, size 11264
1114112       0x110000        UEFI PI Firmware Volume, volume size: 16384, header size: 1, revision: 0, EFI Firmware File System, GUID: 7A9354D9-0468-444A-CE81-0BF617D890DF
1130496       0x114000        UEFI PI Firmware Volume, volume size: 49152, header size: 1, revision: 0, GUID: 153D2197-29BD-44DC-59AC-887F70E41A6B
1130752       0x114100        Intel x86 or x64 microcode, sig 0x000106a5, pf_mask 0x03, 2018-05-11, rev 0x001d, size 12288
1143040       0x117100        Intel x86 or x64 microcode, sig 0x000206c0, pf_mask 0x13, 2009-08-20, rev 0x-ffea, size 8192
1151232       0x119100        Intel x86 or x64 microcode, sig 0x000206c2, pf_mask 0x03, 2018-05-08, rev 0x001f, size 11264
1179648       0x120000        UEFI PI Firmware Volume, volume size: 196608, header size: 1, revision: 0, Variable Storage, GUID: FFF12B8D-7696-4C8B-85A9-2747075B4F50
1209734       0x127586        XML document, version: "1.0"
1343511       0x148017        bzip2 compressed data, block size = 100k
1376256       0x150000        UEFI PI Firmware Volume, volume size: 2686976, header size: 1, revision: 0, EFI Firmware File System, GUID: 7A9354D9-0468-444A-CE81-0BF617D890DF
4063232       0x3E0000        UEFI PI Firmware Volume, volume size: 65536, header size: 1, revision: 0, GUID: E3B980A9-5FE3-48E5-929B-2798385A9027
4128768       0x3F0000        UEFI PI Firmware Volume, volume size: 65536, header size: 0, revision: 0, Apple Boot Volume, GUID: 04ADEEAD-61FF-4D31-BAB6-64F8BF901F5A
 
Du könntest mal meine beiden shell scripte drauf loslassen um bluetooth- und memoryconfigs zu zählen.

Ansonsten keine offensichtlichen Probleme.

Ich schick Dir mal ne pm.
 
Textdatei machen,
den text ab
#!/bin/bash bis exit 0
einfügen

ich mach dann vorsichtshalber noch ein convert to plain text.

Dann diese Textdatei in /usr/local/bin/

speichern,

Ausführbar machen mit

chmod 755 Dateiname

beim bluetooth script
im Terminal benutzen: z. Bsp

cd pfad zu meinem Rom Dump

BluetoothActiveControllerInfos meinromdump.bin
 
dann wären bei deinem Dump

Code:
bluetoothactivecontrollerinfos /Users/macschrauber/Library/Mobile\ Documents/com\~apple\~CloudDocs/Firmware/Dumps\ with\ romtool/DGKxxxxxxxxx\ MP5.1\ Lightspeed\ /5.1_031220.bin
5 BluetoothActiveControllerInfos

rausgekommen,

nähere Untersuchungen zeigten 4 Bluetooth Variablen im ersten Stream, das sind 3 zuviel.
 
Super! Ich brauche noch den Tag morgen nach dem Job und ein Glas Afri-Cola zum Verarbeiten und durchsteigen ... dann hab icih wieder was gelernt. Vielen Dank!
 
Hallo Indio
ich möchte jetzt bitte auf macOS Catalina oder neuer updaten, finde keine Möglichkeit um eine neuere Version zu laden.
Hier meine Daten: macOS Mojave Version 10.14.6 (18G6042)
Radeon RX 580 8 GB
Mac Pro 2010 24 GB 1066 MHz DDR3. SSD500
 
hier findest du alle infos und unten in dem beitrag die OC 0.63

mit dieser lässt sich (crashalina - durch editieren der config),
oder bug shure ohne etwas zu verändern direkt (ich empfehle auf eine neue SSD) installieren.

ich hoffe du hast mojave laufend installiert und hast daher auch
die notwendige 144.0.0.0.0 bootROM version!
was mich allerdings stutzig macht sind deine 1066er speicher
(kann natürlich auch sein das hier wirklich nur 1066er anstatt der 1333er drinnen stecken)
 
Wird noch die original cpu drin sein oder eine mit langsameren Speichertakt.

Das solls tatsächlich geben...

Aber macht bitte im OpenCore Thread weiter, sonst wirds unübersichtlich
 
Bonkk hat mir seinen halbtoten Mac geschickt und da war die Firmware dermassen voll dass nur ein altes System gebootet werden konnte.


der erste VSS Stream war so voll dass der schon den zweiten Stream blockiert hat.


Code:
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             UEFI PI Firmware Volume, volume size: 196608, header size: 1, revision: 0, Variable Storage, GUID: FFF12B8D-7696-4C8B-85A9-2747075B4F50
72            0x48            "64k Nvram Stream"
163           0xA3            "MemoryConfig g"
2211          0x8A3           "MemoryConfig h"
4259          0x10A3          "MemoryConfig i"
6307          0x18A3          "MemoryConfig j"
7646          0x1DDE          "MemoryConfig g"
9694          0x25DE          "MemoryConfig h"
11742         0x2DDE          "MemoryConfig i"
14768         0x39B0          "MemoryConfig g"
16816         0x41B0          "MemoryConfig h"
18864         0x49B0          "MemoryConfig i"
21157         0x52A5          "MemoryConfig g"
23310         0x5B0E          "MemoryConfig g"
25463         0x6377          "MemoryConfig g"
27511         0x6B77          "MemoryConfig h"
29559         0x7377          "MemoryConfig i"
31774         0x7C1E          "MemoryConfig g"
33822         0x841E          "MemoryConfig h"
35870         0x8C1E          "MemoryConfig i"
38023         0x9487          "MemoryConfig g"
40071         0x9C87          "MemoryConfig h"
42119         0xA487          "MemoryConfig i"
44334         0xAD2E          "MemoryConfig g"
46382         0xB52E          "MemoryConfig h"
48430         0xBD2E          "MemoryConfig i"
65608         0x10048         "64k Nvram Stream"
163840        0x28000         "Fsys"
163863        0x28017         bzip2 compressed data, block size = 100k
165550        0x286AE         "ssn position"


Screenshot 2020-12-12 at 15.41.45.png



der zweite VSS store enthält die Vorgängerversion des ersten VSS store, sozusagen ein Backup.

Wenn der erste VSS store zu voll ist dann funktioniert das nicht.

Wie das passiert ist unklar.

Ein dreifacher nvram reset in Folge leert den ersten Stream ein wenig, aber das ist nur akute Nothilfe damit man wieder starten kann und einen Dump machen kann. Gut möglich dass man gar nicht mehr starten kann oder nur sehr beschränkt.

In Bonkk's Fall hatte ich ein wenig Glück, mein System mit Mavericks das ich zum Auslesen und Flashen nehme startete und so konnte ich das Rom ohne Löten reparieren.
 
Da wir hier manchmal gestritten haben dass ein

mehrfach unmittelbar hintereinander durchgeführter nvram-reset (Triple Bong ist ein schöner Begriff)

nichts bringen würde (und es teilweise auch lächerlich gemacht wurde),

habe ich hier einen schönen Beweis:

vor und nach dem mehrfach-reset gedumped:

Code:
Vor triple Bong:
13 Memory Configs
0 xml
0 Microsoft Certificates
3 BluetoothActiveControllerInfos


nach triple Bong:
7 Memory Configs
0 xml
0 Microsoft Certificates
2 BluetoothActiveControllerInfos

____________________________________


hier aber viel interessanter, die Memory Configs im nvram Volume:

vor triple Bong:
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             UEFI PI Firmware Volume, volume size: 196608, header size: 1, revision: 0, Variable Storage, GUID: FFF12B8D-7696-4C8B-85A9-2747075B4F50
71            0x47            "Begin of 1st VSS Stream"
163           0xA3            "MemoryConfig g"
2013          0x7DD           "MemoryConfig spd type"
2072          0x818           ".......9965516-001.B00LF Registered 2Rx4 8GB-1333 PC3 (Kingston)"
2211          0x8A3           "MemoryConfig h"
2431          0x97F           "MemoryConfig spd type"
2791          0xAE7           "MemoryConfig spd type"
4259          0x10A3          "MemoryConfig i"
4965          0x1365          "MemoryConfig spd type"
5024          0x13A0          ".......9965516-001.B00LF Registered 2Rx4 8GB-1333 PC3 (Kingston)"
5325          0x14CD          "MemoryConfig spd type"
5384          0x1508          ".......9965516-001.B00LF Registered 2Rx4 8GB-1333 PC3 (Kingston)"
5685          0x1635          "MemoryConfig spd type"
5744          0x1670          ".......9965516-001.B00LF Registered 2Rx4 8GB-1333 PC3 (Kingston)"
5892          0x1704          ".......9965516-001.B00LF Registered 2Rx4 8GB-1333 PC3 (Kingston)"
6307          0x18A3          "MemoryConfig j"
7646          0x1DDE          "MemoryConfig g"
9496          0x2518          "MemoryConfig spd type"
9555          0x2553          ".......9965516-001.B00LF Registered 2Rx4 8GB-1333 PC3 (Kingston)"
9694          0x25DE          "MemoryConfig h"
9914          0x26BA          "MemoryConfig spd type"
10274         0x2822          "MemoryConfig spd type"
11742         0x2DDE          "MemoryConfig i"
12448         0x30A0          "MemoryConfig spd type"
12507         0x30DB          ".......9965516-001.B00LF Registered 2Rx4 8GB-1333 PC3 (Kingston)"
12808         0x3208          "MemoryConfig spd type"
12867         0x3243          ".......9965516-001.B00LF Registered 2Rx4 8GB-1333 PC3 (Kingston)"
13168         0x3370          "MemoryConfig spd type"
13227         0x33AB          ".......9965516-001.B00LF Registered 2Rx4 8GB-1333 PC3 (Kingston)"
13375         0x343F          ".......9965516-001.B00LF Registered 2Rx4 8GB-1333 PC3 (Kingston)"
15314         0x3BD2          "BluetoothActiveControllerInfo"
17326         0x43AE          "MemoryConfig g"
19176         0x4AE8          "MemoryConfig spd type"
19235         0x4B23          ".......9965516-001.B00LF Registered 2Rx4 8GB-1333 PC3 (Kingston)"
19374         0x4BAE          "MemoryConfig h"
19594         0x4C8A          "MemoryConfig spd type"
19954         0x4DF2          "MemoryConfig spd type"
21422         0x53AE          "MemoryConfig i"
22128         0x5670          "MemoryConfig spd type"
22187         0x56AB          ".......9965516-001.B00LF Registered 2Rx4 8GB-1333 PC3 (Kingston)"
22488         0x57D8          "MemoryConfig spd type"
22547         0x5813          ".......9965516-001.B00LF Registered 2Rx4 8GB-1333 PC3 (Kingston)"
22848         0x5940          "MemoryConfig spd type"
22907         0x597B          ".......9965516-001.B00LF Registered 2Rx4 8GB-1333 PC3 (Kingston)"
23055         0x5A0F          ".......9965516-001.B00LF Registered 2Rx4 8GB-1333 PC3 (Kingston)"
24262         0x5EC6          "BluetoothActiveControllerInfo"
24996         0x61A4          "BluetoothActiveControllerInfo"
25147         0x623B          "MemoryConfig g"
26997         0x6975          "MemoryConfig spd type"
27056         0x69B0          ".......9965516-001.B00LF Registered 2Rx4 8GB-1333 PC3 (Kingston)"
27195         0x6A3B          "MemoryConfig h"
27415         0x6B17          "MemoryConfig spd type"
27775         0x6C7F          "MemoryConfig spd type"
29243         0x723B          "MemoryConfig i"
29949         0x74FD          "MemoryConfig spd type"
30008         0x7538          ".......9965516-001.B00LF Registered 2Rx4 8GB-1333 PC3 (Kingston)"
30309         0x7665          "MemoryConfig spd type"
30368         0x76A0          ".......9965516-001.B00LF Registered 2Rx4 8GB-1333 PC3 (Kingston)"
30669         0x77CD          "MemoryConfig spd type"
30728         0x7808          ".......9965516-001.B00LF Registered 2Rx4 8GB-1333 PC3 (Kingston)"
30876         0x789C          ".......9965516-001.B00LF Registered 2Rx4 8GB-1333 PC3 (Kingston)"
65607         0x10047         "Begin of 2nd VSS Stream"
163840        0x28000         0x28000! "Fsys 01040000 00000810"
163870        0x2801E         "Base 18"
163879        0x28027         "override Base 18"
163890        0x28032         "Begin of Base blob"
165519        0x2868F         "ssn present"
165536        0x286A0         "8PZ - Mac Pro (Early 2009)"
165888        0x28800         0x28800! "Gaid 01040000 00001804"
165900        0x2880C         "Gaid tsth 08"







nach triple Bong:
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             UEFI PI Firmware Volume, volume size: 196608, header size: 1, revision: 0, Variable Storage, GUID: FFF12B8D-7696-4C8B-85A9-2747075B4F50
71            0x47            "Begin of 1st VSS Stream"
119           0x77            "MemoryConfig i"
2167          0x877           "MemoryConfig j"
7621          0x1DC5          "BluetoothActiveControllerInfo"
8491          0x212B          "MemoryConfig g"
10341         0x2865          "MemoryConfig spd type"
10539         0x292B          "MemoryConfig h"
10759         0x2A07          "MemoryConfig spd type"
11119         0x2B6F          "MemoryConfig spd type"
65607         0x10047         "Begin of 2nd VSS Stream"
65655         0x10077         "MemoryConfig i"
67703         0x10877         "MemoryConfig j"
73157         0x11DC5         "BluetoothActiveControllerInfo"
74027         0x1212B         "MemoryConfig g"
75877         0x12865         "MemoryConfig spd type"
163840        0x28000         0x28000! "Fsys 01040000 00000810"
163870        0x2801E         "Base 18"
163879        0x28027         "override Base 18"
163890        0x28032         "Begin of Base blob"
165519        0x2868F         "ssn present"
165536        0x286A0         "8PZ - Mac Pro (Early 2009)"
165888        0x28800         0x28800! "Gaid 01040000 00001804"
165900        0x2880C         "Gaid tsth 08"


da sieht man schön (wie auch schon beschrieben bzw. behauptet) dass durch den mehrfach nvram-reset die SPD Daten der Speicher gelöscht werden.

Das ist dann auch das Praxiswissen, dass nach einem Prozessor Upgrade von einem Xeon mit 1066er Speichertakt auf einen Xeon mit 1333er der Speichertakt erst richtig eingestellt wird wenn ein Triple Bong ausgeführt wird.


da nebenbei auch noch andere Variablen, wie die BluetoothActiveControllerInfo gelöscht bzw neu sortiert werden hilft so ein Triple Bong auch bedingt bei vollem NVram. Das ist nicht die Lösung, kann aber einen Mac Pro wieder zum Booten bringen um die Firmware zu reparieren oder zumindest zu sichern.
 
  • Gefällt mir
Reaktionen: Indio, Lightspeed und Elebato
Allmählich ist das hohe Wissenschaft. Wow. Frage meinerseits: Wie kommen denn Bluetooth-Zertifikate überhaupt da rein? Reicht es schon, wie in meinem Fall, einen BT-Stick übers Terminal einzubinden oder braucht es dazu mehr?
 
Das sind keine Zertifikate, das sind die ganz normalen Settings.

Eine im ersten VSS Stream und einer im zweiten VSS Stream

Code:
71               0x47            "Begin of 1st VSS Stream"
7621             0x1DC5          "BluetoothActiveControllerInfo"
65607            0x10047         "Begin of 2nd VSS Stream"
73157            0x11DC5         "BluetoothActiveControllerInfo"

wie man vielleicht sieht liegen die genau 64kbyte auseinander, das ist vollkommen in Ordnung.

Dieser zweite Stream ist sowas wie die Vorgängerversion vom ersten Stream. Ich vermute dass die Firmware vor einer Änderung einige Daten vom ersten in den zweiten Stream kopiert bevor es etwas ändert.
 
Im ersten Post fehlt der Link für Dosdude's RomTool.

Google suche: dosdude1 romtool
 
Zurück
Oben Unten