Frei nach netkas, MacRumors, Dosdude & Co.: PC-GraKa für Mac Pro flashen

LuckyOldMan

LuckyOldMan

Aktives Mitglied
Thread Starter
Dabei seit
28.11.2015
Beiträge
4.717
Reaktionspunkte
2.952
Wie an anderer Stelle erwähnt, arbeite ich bei beiden MPs sowohl mit der originalen Mac-GraKa für den Bootscreen als auch mit der Haupt-GraKa auf zwei Monitore. Beim Cinema Display ist für die Haupt-GraKas ein DVI-Switch vorgelagert. Ich müsste im Grunde genommen einen zweiten Switch für den anderen Monitor einsetzen, ist mir aber zu aufwändig.
Deshalb hatte mir heute vorgenommen, meine HD5870 für dem MP2.1 und danach die HD4870 für den MP3.1 zu flashen. Literatur und Videos waren in den letzten Tagen fleißg im Gebrauch - als Stütze nahm ich das YT-Video von Dosdude her.
Ich will die einzelnen Schritte nicht aufführen - wer sich mit dem Thema befasst hat, kennt das Procedere.
Nach einigen Holprigkeiten (Tippfehler bis zum Abwinken) hatte ich dann eine 5870mac.rom beieinander und wollte sie flashen. Wurde verweigert wegen ...

5870pc.rom.jpg

Der/die/das Rom war zu groß.

Schaut man auf die unbearbeitete Rom, werden 128KB angezeigt. Die Größe hätte gepasst.
Beim Transfer von Windows auf die OS X-Seite wurden aus den 128KB schon mal direkt 131KB. Wie das? Wegzehrung, Fritten to-go?

5870pc.rom01.png

Also habe ich alles nochmal neu gemacht und jetzt begann das Drama erst richtig.
Bearbeitet wird ein Kopie des Originals, die umbenannt wird. dann wird einscipt drübergezogen und die beiden MCUCs gesucht. Nur eine vorhanden - neue Arbeitskopie. Die bleibt aber vom Script verschont (??), wird durch den Hexeditor überprüft, ob zwei MCUC vorhanden sind (ja) und dann geht das Verschieben & Austauschen los. Alles läuft ab wie im Video und jetzt kommt erst zum Schluß nochmal das Script (das beim ersten Mal keine zwei MCUCs lieferte). Dann noch der Fix und nochmal Überprüfung auf zwei MCUC: Nix war's!

Ich habe beim dritten Anlauf vor dem Scriptlauf erneut auf zwei MCUC geprüft: vorhanden. Das Script macht die Arbeit zunichte. Aber nur bei mir - im Video läuft alles bestens!

Wer hier aus dem Forum hat dieses Verfahren schon angewandt (Experten gibt es ja genug ;) ) und erkennt an Hand der Beschreibung, wo bei mir was schief gelaufen ist? Der Fehler muss immer der gleiche sein.

Gruß
LOM
 
128 - 131 ist schon mal richtig

131072 Bytes (Mac Zählweise) / 1024 = 128 Kbytes

128000 Bytes (Win Zählweise) / 1000 = 128 Kbytes
 
...

131072 Bytes (Mac Zählweise) / 1024 = 128 Kbytes

128000 Bytes (Win Zählweise) / 1000 = 128 Kbytes
Das erinnert doch stark an die "Rechenkünste" der Festplattenhersteller, die damit ihren Produkten zu mehr "Größe" verhelfen wollten. Für mich sind 1KB immer noch 1024Bytes.

Aber wieso bleibt die Größe der Rom beim "Rücktransfer" über der 128KB-Marke. Beim Prozeß wird doch an der Größe nichts geändert, sondern es wird nur verschoben und neue Adressen werden vergeben. Die Meldung am Ende des Flashversuchs schaut nicht wie ein erfolgreicher Flash aus.

Mein "Fehler" ist wohl, dass ich noch keinen Nachweis gefunden habe, dass auch meine XFX-HD5870 (HD-587A-ZND9 V1.2) zu den Versionen gehört, die nicht Flash-tauglich sind. An einen Fehler denke ich eher nicht. Nach dem dritten Anlauf sollte es sitzen.
Aber auch jeanlain bei netkas meinte: wenn beim dritten Versuch, zwei MCUCs zu finden, kein Erfolg eintritt, ist man gear....! :rolleyes:

Womit meine nächste Frage ansteht, denn ich möchte das Ganze besser verstehen können: wieso verläuft im Video der zweite Durchlauf erfolgreich, obwohl die selbe Quelle verwendet wird? Beim zweiten Duplizieren macht Dosdude keinen Script-Durchlauf wie beim ersten Mal, sondern steigt direkt in die Hex-Editor-Phase ein, um dann am Ende des dann stattfindenden Scriptdurchlaufs zwei MCUCs zu behalten. Die erste, am Anfang Script-geprüfte Rom ist nicht tauglich (weg damit), die zweite, erst am Ende geprüfte bleibt tauglich. Verstehe ich von der Logik her nicht.

Gruß
LOM
 
Mit dem Befehl "-s" wird das BIOS aus der Karte gelesen und abgespeichert. Das scheint zu funktionieren und ohne Fehler durchzulaufen.

Zur Sicherheit kannst Du das ROM mit einem Hexeditor Deiner Wahl öffnen und die beiden "MCUC" suchen (Textsuche, als Zahl wäre es es die Bytefolge 4D 43 75 43) und die ROM-Länge prüfen. Eventuell wird das ROM einfach nur zu lang, weil leerer Inhalt aus FFs angehängt wurde.
Ich würde den Mod händisch machen, weil ich nicht beurteilen kann, ob das Script wirklich bei jedem ROM funktioniert.

Sollte das ROM zu groß werden, sodass es nicht in den vorhandenen Speicher passt, wird das Flashtool meckern. Aber eigentlich müsste der Speicher der XFX-Karte groß genug sein, falls nicht, c’est la vie.......
 
  • Gefällt mir
Reaktionen: LuckyOldMan
Hallo Udo,

u. U. kam bei meiner weniger fachlichen Schilderung nicht rüber, dass ich ja die Kopie der PC-Rom so wie im YT-Clip auch ohne Script bearbeitet habe und es werden beide MCUCs gefunden. Ehrlich gesagt habe ich keinen Schimmer, was das Script genau macht außer dass aus der 5870mod2.efi.rom und dem editierten myrom eine Art Mixtur gemacht (Einfügen) und durch den Fix die innere Ordnung hergestellt wird. Das 5870mod2.efi.rom enthält ja Teile der ausgelesenen Apple-Karte (iMac?).
Die Terminalbefehle sind mir ein Rätsel.

Ich habe mich übrigens auch gewundert, dass da großzügig aus dem hinteren Bereich die FFs ausgeschnitten und vor dem zweiten MCUC eingefügt werden, nahm aber an, dass nur soviel FFs eingefügt werden können wie Platz für sie vorhanden ist. Der Rest muss draußen bleiben. Oder geht das wie beim Stapelverkehr: was zwischendrin zuviel reingeschoben wird, schiebt dadurch das hintere Ende raus. Könnte man über die Einträge vor den letzten beiden FFs herausbekommen, ob die noch die selben sind wie vor dem Einfügen.
Wie/womit müsste ich das händisch machen, um die Scriptbefehle zu ersetzen?

Gruß
LOM

Nachtrag:
Ich habe jetzt mal hinten abgeschnitten und vor dem zweiten MCUC eingefügt. Der FF-Bereich ist riesig (nach dem Einfügen aus der 5870mod2.efi.rom gestern war der deutlich kleiner geworden). Aber das Ende schaut noch so aus wie zuvor mit zwei verbliebenen FF FF.
Soweit ich das richtig lese, beginnt die letzte Zeile bei 1FFE0 plus 32Bytes (inkl. der beiden FF) - das sollte die Länge sein.
35 Jahre sind eine lange Zeit - damals konnte ich noch Hexa-Rechnen. Nix mehr von da! :rolleyes:
 
Zuletzt bearbeitet:
Eigentlich setzt das Script hinter das Legacy-BIOS einfach nur den EFI-Teil; dabei wird der leere Raum einfach überschrieben. Sollte da zuwenig Platz sein, überschreibt das eingefügte EFI natürlich einen Teil des sich anschließenden Codes - deswegen (er beschreibt das Vorgehen im netkas-Forum) soll man in dem Fall den Teil händisch nach unten verschieben, muss dann aber den Zeiger auf den Programmteil anpassen.

Das fixrom macht nichts anderes, als den last image indicator von 0x80 auf 0x00 zu setzen (daran wird erkannt, dass sich ans Legacy-BIOS noch ein weiteres anschließt, hier das EFI) und die Checksumme im Legacy-BIOS zu korrigieren.
Beides ist händisch sehr einfach mittels Editor möglich.

Soweit mir bekannt ist, wird damit aber nur der Bootscreen auf dem VGA-Port freigeschaltet; das EFI kommt m.W. von der Mac-Karte und wurde angepasst, um den richtigen Framebuffer zu verwenden. Außerdem ist die Verwendung mit Cinema-Displays Murks, irgendwas funktioniert da nicht richtig.

Du kannst ja mal Dein unverändertes ROM anhängen.....
 
  • Gefällt mir
Reaktionen: Macschrauber
@Udo Martens

Ich hatte noch einige Hex-Notizen gemacht bzgl. Länge des FF-Bereichs und der Rom-Gesamtlänge und war schon zum zweiten Projekt (HD4870 @MP3.1) gewechselt, um Infos zusammenzutragen.

Dem Wunsch nach der 5870pc.rom käme ich gerne nach, aber sie läßt sich nicht hochladen. Der Trick mit geänderter bzw. zusätzlicher Endung jpg od. pdf funzt hier nicht. Packen brachte auch nichts.

Gruß
LOM
 
Zuletzt bearbeitet:
Naja, bevor Du jetzt die Datei als Bild oder PDF tarnst, zu dem Zweck gibts ja die sogenannten Filehoster ;)
 
Gottle - nee - da gibt's nichts zu tarnen. :D
Das war nur der Weg in anderen Foren. Ich hatte Dich so verstanden, als ginge das hier direkt als Anhang.

Du hast Post!

Gruß
LOM
 
geb mal das Rom als DropBox link oder so rüber.

und, btw, dass Du MCUC nicht findest liegt vielleicht daran dass es MCuC in Text ist...
 
Bei dem ROM war das Problem (so wie bei irgendwie fast jedem ROM), dass das Script den EFI-Teil stumpf hinters VBIOS einfügt und dadurch den restlichen Code überschreibt. Genau das wird ja bei netkas auch beschrieben, man muss dann händisch Platz freimachen.

Weil das ROM mit EFI aber etwas Überlänge bekommen hat und nicht mehr in den Speicher gepasst hätte, habe ich sein VBIOS gekürzt.
 
kann man das mal kompakt irgendwo hochladen, pc, falsch gebackenes und korrektes EFI Rom ? Bis jetzt hat das bei mir mit dem Python Script immer funktioniert, aber man will dazulernen.
 
  • Gefällt mir
Reaktionen: Macschrauber
ok, bei 0Xed ist das Suchen nicht case sensitive, bei Hexfiend (was ich immer benutze schon)
 
Ich habs ja händisch editiert.......das Script habe ich noch nie benutzt.

Du kannst das PC-ROM hier finden: https://www.techpowerup.com/vgabios/62601/xfx-hd5870-1024-091126
Nach der ersten Bearbeitung mit dem Script siehst Du, was da schiefgelaufen ist. Das Thema bei netkas beschreibt das Vorgehen unter 3a, wenn zu wenig freier Raum vorhanden war: http://forum.netkas.org/index.php/topic,692.0.html


ich hab das mal durchgearbeitet.

erster Anlauf: genau nach Beschreibung:

Die FFs am Ende gelöscht

den EFI Part oberhalb vom zweiten MCuC eingesetzt

den Offset 8 Bytes for dem zweiten MCuC auf den neuen MCuC 2 Offset geändert

-> File war natürlich zu groß (170 000 Bytes ungrad)

zweiter Anlauf:

die FFs am Ende gelöscht

den EFI Part oberhalb vom zweiten MCuC eingesetzt, jetzt die FFs drum herum gelöscht

den Offset 8 Bytes for dem zweiten MCuC auf den neuen MCuC 2 Offset geändert

-> File ist etwas zu klein (130.024 Bytes)

jetzt ist die Frage: Rest mit FFs auffüllen oder wäre das so flashbar ?

Bin ja nur am Trockenschwimmen :)


Edit: das war total falsch, ich habe irgendwo verstanden dass der EFI Part einkopiert werden soll.
Es sollen nur die "übrigen" FFs am Ende vor den zweiten MCuC geschoben werden und der Offset angepasst werden. Da habe ich zu viel reininterpretiert :-/
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Proinnsias
Ehrlich gesagt, weiß ich das nicht. Mir ist nicht bekannt, woran/ob das Flashtool die Dateigröße erkennt. Im Zweifelsfall würde ich am Ende auf 0x20000 Bytes (also 131072) auffüllen, weil das genau die Größe des Flashspeichers wäre. Mehr geht nicht und bei größeren Dateien würde das Tool meckern.
Bei nVidia-ROMs ist es egal, da enden die ROMs häufig (oder immer?) mit sinnvollem Code statt der FF-Folge.
 
Die Untertreibung des Jahres! :D

Nach welcher Methode gehst Du denn vor, wenn Du GraKas flashst?

Ich meinte das Rom von Dir, hab die Karte nicht vor mir zum Testen. Ich hab die Rom Files mal in Atiflash gezogen, mit -biosfileinfo wird zumindest etwas gültiges angezeit. Das hat aber nix zu heissen, das hats auch mit dem Rom was nur ein MCuC hatte. Volle Infos über den Efi Teil gibt das Tool nur bei einer GPU aus. (-ai)

Zu meinen eigenen Methoden: bis jetzt bin ich mit den Scripts klargekommen oder habe mir die exakten Roms gezogen, mit peinlich genauer Recherche dass es wirklich die gleichen Karten waren. Oder mit externer Hilfe, Florian ist da sehr hilfsbereit, danke hier auch nochmal an Ihn :)

Mut ist auch dabei, aber wenns nicht mehr läuft hab ich einen PC mit onBoard Grafik (eigens dafür angeschafft) zum Retten - oder als letzte Instanz eben das Rom auslöten und extern schreiben.
 
Ehrlich gesagt, weiß ich das nicht. Mir ist nicht bekannt, woran/ob das Flashtool die Dateigröße erkennt. Im Zweifelsfall würde ich am Ende auf 0x20000 Bytes (also 131072) auffüllen, weil das genau die Größe des Flashspeichers wäre. Mehr geht nicht und bei größeren Dateien würde das Tool meckern.
Bei nVidia-ROMs ist es egal, da enden die ROMs häufig (oder immer?) mit sinnvollem Code statt der FF-Folge.

Ist Deine Methode an einer Stelle anders als ich aufgezählt habe ? Scheinbar blieb die Länge bei Dir gleich.

Oder hast Du einfach so viele FFs markiert wie die Länge des EFI Parts war vor dem Einsetzen ?
 
Zurück
Oben Unten