Wir bauen uns ne Quadro

Der chaotische Hauptfaden

Moderatoren: Sven, Heaterman, TDI, Finger

Wir bauen uns ne Quadro

Beitragvon tschäikäi » Mi 12. Okt 2016, 11:54

Vorab: Ich suche mit diesem Faden keine Hilfestellung, ist mehr ein Bericht.

Das "umlabeln" einer Geforce zu einer Quadrokarte bringt nicht mehr Leistung zum Spielen.
Es werden lediglich spezielle Treiberfunktionen (Mosaic) und Unterstützung für Software (Rendering, usw) sowie die bidirektionale DMA- Engine freigeschaltet.
Die Hardware bleibt die gleiche. Also, kein Mod zum Zocken.


Problemstellung: Ich brauche für mein Heimkinoprojekt eine Grafikkarte mit zwei analogen Ausgängen,
die zum Filmeschauen in min. 1920x1080p60, 1920x1080p120 (oder 144 Hz) sowie zum Zocken reicht, als auch genug GPU- Leistung für das ein oder andere Spiel hat.
Das sind ja erst mal keine besonderen Anforderungen an die Hardware, dafür soll das System aber möglichst einfach Edge- Blending können.
Nvidia stellt ein Progrämmchen her, das sich Mosaic nennt. Das wird aber nur von Quadro- Karten unterstützt.
Es gibt zwar auch Drittanbietersoftware, die sowas kann, zum Beispiel LPMT,
das gibts sogar für lau.
Da ich aber für 3D schon die NVidia- Brillen hier habe und vermute, dass es am problemärmsten sein müsste, wenn man die ganze Blending- Geschichte direkt über
Treiber macht (halt ohne Drittanbietersoftware) hab ich mich dazu entschieden, Mosaic nutzen zu wollen.

Der ein oder andere mag dieses hier im EEV Forum gelesen haben: Hacking NVidia Cards into their Professional Counterparts
Da gehts mehr um neuere Karten ab der GTX6xxer Reihe.
(Leider) war für meine Bedürfnisse aber eine ältere Karte erforderlich, die über zwei analoge Ausgänge verfügt.
Schnellste Karte ist hier soweit mir bekannt die GTX480, die sich zu einer Quadro 6000 ummodeln lässt.
Das wurde dann auch gemacht.

Bei der GXT480 ist kein Widerstandsgetausche notwendig, man muss "nur" das BIOS der Karte ein wenig umschreiben.
Genauer gesagt steht in einer der ersten Zeilen des Bios die verschlüsselte Device-ID.
Das ist im Falle der GTX480 "06C0", DaBla, bei der Quadro6000 "06D8".
Das Bios wird nun von der Karte ausgelesen, die verschlüsselte Device-ID extrahiert, entschlüsselt.
Die Device ID der Quadro wird in gleicher Weise verschlüsselt, ins originale BIOS hineinkopiert und das gefakte BIOS wird auf die Karte geflasht.

Ok, hört sich einfach an. Is es aber nicht.
Man kann unter Windows so weit arbeiten, bis man das geänderte Bios komplett hat. Danach muss man in Linux oder DOS weitermachen,
weil man in Windows nicht flashen kann. Jedenfalls gabs bei mir Fehlermeldungen, das lief nicht mal mit Administratorrechten.

Ok, fangen wir an. Zuerst besorgt man sich ein paar Programme, nämlich GPU-Z zum Auslesen der ID und des BIOS, NVFlash 5.118 zum Aufspielen des "neuen" BIOS.
Nvidia Inspector 1.9.7.7 (andere Version verursachten bei mir unter Win7 64 einen Bluescreen)
und ein kleines, vom USB- Stick bootfähiges Linux. Damn Small Linux war die erste Wahl, machte aber Probleme beim Booten (Benutzerfehler nicht ausgeschlossen).
Bin dann auf Parted Magic umgestiegen. Das kostet wohl normalerweise, aber es gibt hier eine PN- Funktion.
Einen Hex- Editor zum ändern des BIOS, z.B. HxD.

Noch zum NVidia- Inspector: Den würde ich jedem empfehlen, der eine NVidia- Karte an mehr als einem Bildschirm nutzt.
Er enthält ein Tool, "Multi Monitor Power Saver", was die Karte im 2D- Betrieb runtertaktet und somit massiv Strom spart.
Bei meiner (mittlerweile verkauften) GTX560 waren das gemessene 50(!!)W und bei der GXT480 immerhin noch 45W.
Die Karte taktet sich auch damit noch bei Last (Zocken o.ä. automatisch hoch, nur dass halt im Desktopbetrieb weniger Strom gebraucht wird.

Nun liest man mit GPU-Z oder dem NV Inspector das BIOS der Karte aus und speichert es irgendwo.

Ich habe mich an zwei Anleitungen orientiert, nämlich hier und hier.

Los geht's:
- mit GPU-Z oder dem NV Inspector das BIOS der Karte auslesen und irgendwo speichern.
(Am besten drei Ordner anlegen, einen mit der Originaldatei, einen mit geändertem Zeug und einen mit Links und Textdateien).
- die beiden Device- IDs in Binär konvertieren.
06C0 (GTX480) wird zu
Code: Alles auswählen
0000011011000000

und 06D8 (Quadro 6000) wird zu
Code: Alles auswählen
0000011011011000
.
Man "subtrahiert" die Codes, besser gesagt, überprüft Unterschiede.
0000011011000000
0000011011011000
xxxxxxxxxxx11xxx
"x" für "keine Änderung", wo sich 0-->1 ändert, schreibt man 1, wo sich 1-->0 ändert, schreibt man 0.
1-->0 kam hier nicht vor, deshalb wird es gleich einfacher als beim Kollegen hier, der mit einer GTX470 gearbeitet hat.


- Bios mit dem Hexeditor öffnen. Offset 50 08 bis 60 07 markieren und kopieren.
Bild

Dieser Code enthält die verschlüsselte Device- ID (bei der GTX480 "06C0"). Man kopiert den kompletten Code in einen little endian Konverter,
der das dann passend umsortiert. Little endian ist laut Wikipedia einfach "kleine Werte am Anfang, große am Schluss".
Warum das Ganze dann nicht so wird, sei dahin gestellt, jedenfalls klappte es mit dem Ergebnis.
Ich bin aber auch kein Informatiker und habe das einfach übernommen.
Konverter.

Aus
Code: Alles auswählen
FF 3F FC 7F        00 40 00 00        FF FF F1 7F        00 00 02 80

wird dann
Code: Alles auswählen
7F FC 3F FF        00 00 40 00        7F F1 FF FF        80 02 00 00


Nun nimmt man den ersten Block und konvertiert das in Binär.

Code: Alles auswählen
7F FC 3F FF

zu
Code: Alles auswählen
01111111111111000011111111111111



Ich beende den Post an dieser Stelle und schreibe später weiter (der Mensch hat ja noch anderes zu tun).
Antworten und Interessensbekundungen gerne schon jetzt, ich werd diesen Post editieren, so dass alles am Stück bleibt.

Gruß Julian
Benutzeravatar
tschäikäi
 
Beiträge: 1018
Registriert: Mi 14. Aug 2013, 14:01

Zurück zu Allgemeine Diskussion

Wer ist online?

Mitglieder in diesem Forum: Arne, Bastelbruder, Bing [Bot], Exabot [Bot], gafu, Gary, Google [Bot], Joschie, OnOff, Sir_Death, tryps, vobs, xanakind, Yahoo [Bot] und 24 Gäste

span