Einen NVIDIA-Treiber umforgen... Leichtgemacht:
-
GaLaHaD
- Mikrocruncher

- Beiträge: 25
- Registriert: 05.03.2012 00:22
Einen NVIDIA-Treiber umforgen... Leichtgemacht:
Das leidige Thema mit den Vaios von Sony und den Treibern...
== Präambel==
Ich bastele hier einen Guide wie ich non-zertifizierte Treiber auf meinem Sony Vaio installiere, vielleicht ist er für andere Boincer hier wertvoll, wenn er fertig ist, kann er ja in den Hardware-Bereich gemoved werden.
==/Präambel==
Was sind OEM-Grafikkarten und was machen sie in Laptops?
Ihr alle habt sicher schon mal OEM-Hardware angeboten gekriegt. Das sind meistens gebrandete Sachen die aber den normalen Funktionsumfang aufweisen und sonst gut funktionieren.
Das ist leider bei Laptops nur bedingt der Fall:
Wenn große Systembuilder und große Chiphersteller aufeinandertreffen kommt selten was gescheites dabei heraus -zumindest nicht für den User. Der Chiphersteller tritt den Support vollständig an den Systembuilder ab und gewährt dafür einen Preisnachlass auf sein Produkt. Das bedeutet zuerst einmal ein günstigeres Produk. Die Varianten bekommen -obwohl baugleich eine eigene ID und der Systembuilder muss die Referenztreiber selbst beim Chiphersteller kaufen und über seinen Update-Client an die User distributieren.
Wenn dann aber die Produktunterstützung für das Laptop endet, trocknet dieses Verfahren rasch ein und aus-die-Maus. Wenn nun nicht der Chiphersteller wieder einspringt und seine Treiber für die veränderten IDs lauffähig macht (wozu er ausdrücklich nicht verpflichtet ist!) gibt es ab der letzten Version keine neuen Treiber mehr. Dramatisch wird es in dem Moment, wo neue Treiber Compiler enthalten die in ihrer Funktionalität für bestimmte Games gebraucht werden, oder wenn man eben das Betriebssystem wechselt (auf 64-Bit upgraden) und nie oder nur Stein-alte Treiber für 64 Bit vom Systembuilder eingepflegt wurden.
Ich weise hier in aller Deutlichkeit darauf hin: in meinem Fall war Sony-Vaio der Übeltäter, gleiches kennt man auch von HPaq, Dell, Asus-Laptops, Toshiba, Lenovo (eher selten)...
Meine Story
Ihr fragt Euch sicher, wo ich dabei ins Spiel kam? 2009 kaufte ich mir bei Sony ein schönes Vaio-AW11x/u. Ein erstklassiges Laptop mit damals 4GB Ram -was bei 32-bit Windows oke war, dafür aber ein hervorragendes Data-Storage (mit SSD-Raid-0 und einer schönen 500GB-Platte für die Userfiles) enthielt. Fürs leichtere Zocken oder Boinc-en war eine Nvidia-Geforce 9600M GT eingebaut, die Cuda 2.1 unterstützte und 512MB eigenes RAM besaß.
Die Freude währte und wurde nur gelegentlich getrübt, wenn Sony "vergaß" bei seinem quartalsmäßigen Treiber-Update CUDA einzubauen. BOINC lief langsamer und Badaboom gab einen krausen Fehlercode aus. Lösung: Downgrade und weitergearbeitet.
Zum "Zerwürfnis" kam es dann als ich mein System auf Windows7-64bit upgradete. Die routinemäßige Überprüfung der Voraussetzungen ergab:
Sony Vaio hatte einmal vor langer Zeit ein Migration-Package für GANZ GENAU MEIN LAPTOP raus gebracht, danach aber Gras über die Sache wachsen lassen. Das AW11-X/U war das letzte Gerät dieser Reihe welches überhaupt noch in 32-Bit herauskam, die Produktreihe der Produktiv-Laptops wurde dann mit der Kennung AW21 in 64bit fortgesetzt, mit der gleichen Hardware aber mit anderen Hardware-IDs!
ich schloss daraus, dass es prinzipiell möglich sein muss mein Gerät mit 64bit ans Laufen zu bekommen und ging frisch ans Werk.
Nach dem Systeminstallation manifestierte sich dann stufenweise die Enttäuschung:
Nvidia hatte es (gemäß der Verträge) verabsäumt in die 64-Bit Treiber die ID von meiner Karte einzupflegen und verwies auf Sony, Sony gab wiederum an, zu nichts verpflichtet zu sein, man habe seiner Zeit ein Migrationspackage gepackt und außerdem die Produktpflege für mein Laptop vor c.a. 1 Jahr eingestellt (Fukushima?) man biete jedoch die letzte Treiber-Revision weiterhin großzügigerweise zum Download an. Ja schönen Dank!
Bevor einer von euch jetzt sagt: warum regt sich GaLaHaD so auf? Weil der von Sony für dieses Gerät bereitgestellte 64.Bit-Treiber von 2009 ist! Mittlerweile baut NV jedoch Treiber-Rev 3.x und hat da vollständig überarbeitete Compiler, Befehlssätze und Dataflows eingepflegt. Verbessertes Cachemanagement, etc etc etc! Bei einzelnen Anwendungen (vornehmlich Spielen) wird von einer Leistungssteigerung um die 80% gesprochen, ZUSÄTZLICH noch zur Leistungssteigerung die das 64-bit upgrade bringt! Soll ich darauf verzichten? Nein.
Daher Sturzhelm aufgesetzt, Werkzeug gepackt und... den neusten Treiber für meine Grafikkarte passend gemacht.
Ich werde im nächsten Artikel berichten wie ich dabei vorgegangen bin, ich versuche dabei genau zu erklären worauf es dabei ankommt. Wichtig: jeder ist für das was er mit seinem PC anstellt höchstselbst verantwortlich. Wenn Ihr Eure Hardware schrottet, beschwert euch bei Sony oder Nvidia.
== Präambel==
Ich bastele hier einen Guide wie ich non-zertifizierte Treiber auf meinem Sony Vaio installiere, vielleicht ist er für andere Boincer hier wertvoll, wenn er fertig ist, kann er ja in den Hardware-Bereich gemoved werden.
==/Präambel==
Was sind OEM-Grafikkarten und was machen sie in Laptops?
Ihr alle habt sicher schon mal OEM-Hardware angeboten gekriegt. Das sind meistens gebrandete Sachen die aber den normalen Funktionsumfang aufweisen und sonst gut funktionieren.
Das ist leider bei Laptops nur bedingt der Fall:
Wenn große Systembuilder und große Chiphersteller aufeinandertreffen kommt selten was gescheites dabei heraus -zumindest nicht für den User. Der Chiphersteller tritt den Support vollständig an den Systembuilder ab und gewährt dafür einen Preisnachlass auf sein Produkt. Das bedeutet zuerst einmal ein günstigeres Produk. Die Varianten bekommen -obwohl baugleich eine eigene ID und der Systembuilder muss die Referenztreiber selbst beim Chiphersteller kaufen und über seinen Update-Client an die User distributieren.
Wenn dann aber die Produktunterstützung für das Laptop endet, trocknet dieses Verfahren rasch ein und aus-die-Maus. Wenn nun nicht der Chiphersteller wieder einspringt und seine Treiber für die veränderten IDs lauffähig macht (wozu er ausdrücklich nicht verpflichtet ist!) gibt es ab der letzten Version keine neuen Treiber mehr. Dramatisch wird es in dem Moment, wo neue Treiber Compiler enthalten die in ihrer Funktionalität für bestimmte Games gebraucht werden, oder wenn man eben das Betriebssystem wechselt (auf 64-Bit upgraden) und nie oder nur Stein-alte Treiber für 64 Bit vom Systembuilder eingepflegt wurden.
Ich weise hier in aller Deutlichkeit darauf hin: in meinem Fall war Sony-Vaio der Übeltäter, gleiches kennt man auch von HPaq, Dell, Asus-Laptops, Toshiba, Lenovo (eher selten)...
Meine Story
Ihr fragt Euch sicher, wo ich dabei ins Spiel kam? 2009 kaufte ich mir bei Sony ein schönes Vaio-AW11x/u. Ein erstklassiges Laptop mit damals 4GB Ram -was bei 32-bit Windows oke war, dafür aber ein hervorragendes Data-Storage (mit SSD-Raid-0 und einer schönen 500GB-Platte für die Userfiles) enthielt. Fürs leichtere Zocken oder Boinc-en war eine Nvidia-Geforce 9600M GT eingebaut, die Cuda 2.1 unterstützte und 512MB eigenes RAM besaß.
Die Freude währte und wurde nur gelegentlich getrübt, wenn Sony "vergaß" bei seinem quartalsmäßigen Treiber-Update CUDA einzubauen. BOINC lief langsamer und Badaboom gab einen krausen Fehlercode aus. Lösung: Downgrade und weitergearbeitet.
Zum "Zerwürfnis" kam es dann als ich mein System auf Windows7-64bit upgradete. Die routinemäßige Überprüfung der Voraussetzungen ergab:
Sony Vaio hatte einmal vor langer Zeit ein Migration-Package für GANZ GENAU MEIN LAPTOP raus gebracht, danach aber Gras über die Sache wachsen lassen. Das AW11-X/U war das letzte Gerät dieser Reihe welches überhaupt noch in 32-Bit herauskam, die Produktreihe der Produktiv-Laptops wurde dann mit der Kennung AW21 in 64bit fortgesetzt, mit der gleichen Hardware aber mit anderen Hardware-IDs!
ich schloss daraus, dass es prinzipiell möglich sein muss mein Gerät mit 64bit ans Laufen zu bekommen und ging frisch ans Werk.
Nach dem Systeminstallation manifestierte sich dann stufenweise die Enttäuschung:
Nvidia hatte es (gemäß der Verträge) verabsäumt in die 64-Bit Treiber die ID von meiner Karte einzupflegen und verwies auf Sony, Sony gab wiederum an, zu nichts verpflichtet zu sein, man habe seiner Zeit ein Migrationspackage gepackt und außerdem die Produktpflege für mein Laptop vor c.a. 1 Jahr eingestellt (Fukushima?) man biete jedoch die letzte Treiber-Revision weiterhin großzügigerweise zum Download an. Ja schönen Dank!
Bevor einer von euch jetzt sagt: warum regt sich GaLaHaD so auf? Weil der von Sony für dieses Gerät bereitgestellte 64.Bit-Treiber von 2009 ist! Mittlerweile baut NV jedoch Treiber-Rev 3.x und hat da vollständig überarbeitete Compiler, Befehlssätze und Dataflows eingepflegt. Verbessertes Cachemanagement, etc etc etc! Bei einzelnen Anwendungen (vornehmlich Spielen) wird von einer Leistungssteigerung um die 80% gesprochen, ZUSÄTZLICH noch zur Leistungssteigerung die das 64-bit upgrade bringt! Soll ich darauf verzichten? Nein.
Daher Sturzhelm aufgesetzt, Werkzeug gepackt und... den neusten Treiber für meine Grafikkarte passend gemacht.
Ich werde im nächsten Artikel berichten wie ich dabei vorgegangen bin, ich versuche dabei genau zu erklären worauf es dabei ankommt. Wichtig: jeder ist für das was er mit seinem PC anstellt höchstselbst verantwortlich. Wenn Ihr Eure Hardware schrottet, beschwert euch bei Sony oder Nvidia.
-
GaLaHaD
- Mikrocruncher

- Beiträge: 25
- Registriert: 05.03.2012 00:22
Re: Einen NVIDIA-Treiber umforgen... Leichtgemacht:
1. Die Hard...(ware)
versucht man den aktuellen Treiber bei Nvidia.de herunterzuladen und zu installieren, verlangt das Programm den Pfad zum Entpackungsordner. :

Standardmäßig ist dieser:
C:\NVIDIA\DisplayDriver\301.42\WinVista_Win7_64\International
2. ...was natürlich schief geht.
Bestätigt man freundlich kommt dieser nette Hinweis:

"Das Nvidia Installationsprogramm kann nicht fortgesetzt werden. Der Grafiktreiber konnte keine kompatible Hardware finden."
(Ja, Die Füchse werden bemerkt haben, dass in der Ecke eine andere Treiberversion steht. Ich arbeite später im Guide aber schon mit der Version 301.42!)
Wer das zum ersten Mal liest bekommt einen Schreck, vermutet einen Checksummenfehler und läd den Treiber erneut runter. -Spätestens nach 2 gescheiterten Versuchen beginnt man arg zu zweifeln. Woran mag es liegen. Googlen führt meistens zu Sites wie Laptopvideo2go aber diese haben ihre Entwicklungsarbeit längst eingestellt und bieten nur noch "Driverdownloader" an, das ist malware die vorgibt die passenden Treiber für die Hardware zu ermitteln und kostenlos downzuloaden. Danach hat man freilich einen Haufen nerviger Browserbars, die Searchengine ist verstellt und der Rechner benimmt sich komisch, aber unser konkretes Problem bleibt ungelöst...
3. Offiziell gescheiterte Unterfangen gehen meistens weiter...
Aber Nvidia ist nicht unser Feind. Nvidia erlaubt uns auf "Schließen" zu klicken und belässt den Treiber in seinem angestammten Verzeichnis:
C:\NVIDIA\DisplayDriver\301.42\WinVista_Win7_64\International
Wir merken uns das... darauf müssen wir später zurück kommen. Zuerst besorgen wir uns jedoch die ID der Hardware. Auf in die Managementkonsole zu
Gerätemanager/Grafikkarte/*Name der Grafikkarte/Details/Hardware-IDs

Da steht die genaue ID der Hardware und des Systembuilders. Ihr könnt sie euch kopieren und in eine TXT-Datei speichern oder ausdrucken oder merkt sie euch einfach
PCI\VEN_10DE&DEV_0649&SUBSYS_9040104D&REV_A1
PCI\VEN_10DE&DEV_0649&SUBSYS_9040104D
PCI\VEN_10DE&DEV_0649&CC_030000
PCI\VEN_10DE&DEV_0649&CC_0300
WIRKLICH interessant ist dabei nur die 2. Zeile. Das "REV_A1" besagt nur dass es sich wahrscheinlich um eine ungemoddete Frühfassung der Geforce 9600M GT handelt. Wir merken uns das einfach mal unverbindlich
versucht man den aktuellen Treiber bei Nvidia.de herunterzuladen und zu installieren, verlangt das Programm den Pfad zum Entpackungsordner. :

Standardmäßig ist dieser:
C:\NVIDIA\DisplayDriver\301.42\WinVista_Win7_64\International
2. ...was natürlich schief geht.
Bestätigt man freundlich kommt dieser nette Hinweis:

"Das Nvidia Installationsprogramm kann nicht fortgesetzt werden. Der Grafiktreiber konnte keine kompatible Hardware finden."
(Ja, Die Füchse werden bemerkt haben, dass in der Ecke eine andere Treiberversion steht. Ich arbeite später im Guide aber schon mit der Version 301.42!)
Wer das zum ersten Mal liest bekommt einen Schreck, vermutet einen Checksummenfehler und läd den Treiber erneut runter. -Spätestens nach 2 gescheiterten Versuchen beginnt man arg zu zweifeln. Woran mag es liegen. Googlen führt meistens zu Sites wie Laptopvideo2go aber diese haben ihre Entwicklungsarbeit längst eingestellt und bieten nur noch "Driverdownloader" an, das ist malware die vorgibt die passenden Treiber für die Hardware zu ermitteln und kostenlos downzuloaden. Danach hat man freilich einen Haufen nerviger Browserbars, die Searchengine ist verstellt und der Rechner benimmt sich komisch, aber unser konkretes Problem bleibt ungelöst...
3. Offiziell gescheiterte Unterfangen gehen meistens weiter...
Aber Nvidia ist nicht unser Feind. Nvidia erlaubt uns auf "Schließen" zu klicken und belässt den Treiber in seinem angestammten Verzeichnis:
C:\NVIDIA\DisplayDriver\301.42\WinVista_Win7_64\International
Wir merken uns das... darauf müssen wir später zurück kommen. Zuerst besorgen wir uns jedoch die ID der Hardware. Auf in die Managementkonsole zu
Gerätemanager/Grafikkarte/*Name der Grafikkarte/Details/Hardware-IDs

Da steht die genaue ID der Hardware und des Systembuilders. Ihr könnt sie euch kopieren und in eine TXT-Datei speichern oder ausdrucken oder merkt sie euch einfach
PCI\VEN_10DE&DEV_0649&SUBSYS_9040104D&REV_A1
PCI\VEN_10DE&DEV_0649&SUBSYS_9040104D
PCI\VEN_10DE&DEV_0649&CC_030000
PCI\VEN_10DE&DEV_0649&CC_0300
WIRKLICH interessant ist dabei nur die 2. Zeile. Das "REV_A1" besagt nur dass es sich wahrscheinlich um eine ungemoddete Frühfassung der Geforce 9600M GT handelt. Wir merken uns das einfach mal unverbindlich
-
GaLaHaD
- Mikrocruncher

- Beiträge: 25
- Registriert: 05.03.2012 00:22
Re: Einen NVIDIA-Treiber umforgen... Leichtgemacht:
4. Step four. Nun modden wir den Treiber.
Zuest browst Ihr nach
"C:\NVIDIA\DisplayDriver\301.42\WinVista_Win7_64\International\Display.Driver\"
Die Installationsroutine von nvidia ist zwar abgebrochen, hat uns freundlicherweise jedoch die Treiberdateien gelassen. Daraus lässt sich was machen!

Hier seht ihr die Infs. In denen legt nvidia die Arbeitsfolge des Installationsprozesses genau fest, freundlicherweise unverschlüsselt und nur in einigen Ausnahmen Hexadezimal!
Wir nehmen uns nvam.inf vor. Es ginge auch mit anderen (z.B.: nvdm.inf) und öffnen diese mit dem windows editor.
5. Die nvam.inf
Diese Datei enthält einen großen Teil der Skriptinformationen mit denen der Treiber sich an die Hardware anpasst. Diese sind abgeREMt durch eckige Klammern. Ich führe ein paar beispielhaft auf damit Ihr Euch später nicht ganz so verloren vorkommt...
[ Version ] wie der Treiber heißt, wann er released wurde, zu welcher Treiberklasse er gehört, welches Betriebssystem er bevorzugt.
[ nv_CplInstaller ] Kopieranweisungen für Dateien -allgemein und "Speziell" für die sogenannten Sektionen. Sektionen sind Skript-Subroutinen die bestimmte Installationsroutinen für entsprechende Hardware aufrufen.
[ NVIDIA_SetA_Devices.NTamd64.6.1 ] Hier tauchen die für 64-Bit und NT (2k, Vista, w7) vorgesehenen Routinen und ihre Hardware-IDs auf. Da wollen wir später hin!
[ DestinationDirs ] gibt Anweisungen wohin installiert werden soll.
[ SourceDisksNames ] und [ SourceDisksFiles ] verraten dem Installer dass es nur eine "Diskette" (in diesem Fall 200MB) gibt und dass sich da alle fraglichen Dateien finden werden.
[ Section001 ] Markiert den hardwarespezifischen Arbeitsteil: wenn der Installer anhand des Kapitels "NVIDIA_SetA_Devices.NTamd64.6.1" die Hardware ermittelt hat, holt er sich hier das genaue Verfahren für diese Hardware. Es gibt stolze 122 "Sections" und nur eine wird passen -was uns aber nicht nervös macht!
[ nv_DRS_addreg ] und Folgende: Dies sind dann die Einpflegeroutinen für die Hive-Keys (HKEY-local machine und Konsorten). Der Treiber sucht folglich in Abschnitt [ NVIDIA_SetA_Devices.NTamd64.6.1 ] nach seiner Hardware, wählt die dort erwähnte "Section" aus und diese startet wiederum die Kopierprozesse der Treiberkomponenten und verknüpft die entsprechenden Dateien und Parameter mit der Registry. Für die Code-Forger unter Euch ist das nicht ganz uninteressant, weil die Anweisungen hier in Klartext vorliegen, nicht mal Hexadezimal!
[ Strings ] ist der letzte Abschnitt der INF und für uns der interessanteste. Hier steht nämlich mehr oder weniger deutlich wie der Treiber "intern" die Karte nennt.
5. Jetzt müsste es eigentlich jeder selber können. XD
Aber das hier ist kein Rätsel sondern ein Guide! Also wie fangen wir an?
Wir scrollen nach unten zu "Strings". (für alle Touchpad-hasser "END" drücken. Ach Ihr habt ne Minitastatur? Nicht mein Problem XD )

Nehmen wir zB diese Zeile:
NVIDIA_DEV.0649.2006.1043 = "NVIDIA GeForce 9600M GT "
NVIDIA_DEV.0649. -ist die Hardware-ID der Karte, genauer gesagt, des Chips "Nvidia GeForce 9600M GT"
2006. ist ein Index, eine eindeutige Identifikationsnummer, denn wie wir sehen gibts mehrere "GF9600mGT" UND mehrere "0649"
1043 ist eine Arbeitsanweisung
"NVIDIA GeForce 9600M GT " ist der Anzeigename der Karte. Die "versteckten" Leerzeichen Zwischen Kartenname und " können beim Debuggen später helfen, denn sie erlauben es in einem Debugger festzustellen, als welche der 4 hier aufgeführten "GeForce 9600M GT"s der Treiber die Karte identifiziert hat.
6. Frisch ans Werk!
Wir erinnern uns an unsere Hardware-ID aus dem Gerätemanager:
PCI\VEN_10DE&DEV_0649&SUBSYS_9040104D
VEN_10DE ist dabei "nvidia"
DEV_0649 bedeutet "ein bestimmter Geforce 9600M GT-chip"
SUBSYS_9040104D ist die zwischen Sony-Vaio und Nvidia ausgehandelte Hardware-ID
Wir fügen also einfach mal unsere Karte da ein:

NVIDIA_DEV.0649.2007.1043 = "NVIDIA GeForce 9600M GT "
2007. ist die von mir frei erfundene Indexnummer die wir später verwenden. Ich hätte auch irgend was anderes wählen können, aber die Überlegung ist folgende:
1. um der Installationsroutine meine Karte unterzujubeln denke ich nehme ich eine "Hausnummer" aus der "Nachbarschaft" von den Originalroutinen für die GF9600MGT
2. Ich will keine Nummer verwenden die ein anderer Installationsprozess verwendet oder die (noch schlimmer) einen anderen Installationsprozess codiert!
am Ende füge ich noch ein weiteres Leerzeichen zwischen GT und " ein, damit ich meine Zeile im Zweifelsfall wiederfinde.
7. Nun noch den Maßnahmenkatalog oben anpassen
Scrollen wir wieder hoch zu [ NVIDIA_SetA_Devices.NTamd64.6.1 ] und suchen uns die Zeile der "Nachbarkarte", einer "0649" mit der Indexnummer 2006 -das war die "Nachbarin" unserer Karte.

Und nun "Basteln" wir uns unsere Karte: Unter der Zeile
%NVIDIA_DEV.0649.2006.1043% = Section016, PCI\VEN_10DE&DEV_0649&SUBSYS_20061043
die im Klartext bedeutet: (den String von hinten nach vorne lesen:)
"alle Karten mit der Hardware ID SUBSYS_20061043 die den Chip VEN_10DE&DEV_0649 (also die Geforce 9600M GT) enthalten und unter "Strings" den passenden Index 2006 haben, werden nach der Routine 1043 = Section 16 installiert. (siehe [ Section ]"
Bevor wir uns nun einen eigenen Schlüssel basteln möchte ich auf ein paar Kleinigkeiten hinweisen:
Wer annimmt, dass der Chip "DEV_0649" schon als Kriterium ausreicht der wird sein "Blaues Wunder" erleben (einen Bluescreen beim Booten). Wenn Ihr nochmal nach "Strings" runterscrollt werdet Ihr sehen, dass eine Verknüpfung mit 1043% = Section020 bedeuten würde, dass die Karte als "NVIDIA GeForce GT 220M" gestartet würde, was natürlich nicht funktioniert. Auch was die Sections betrifft wäre ich nicht allzu mutig. Klar bedeutet eine höhere ID die Chance auf einen größeren Funktionsumfang aber das muss nicht klappen! Auch wenn die Karte wahrscheinlich abwärtskompatibel ist. Außerdem: "Gerätemanager/Grafikkarte/Hardware-ID" hat uns gesagt dass wir eine Karte der "REV01A" haben, also "was ganz altes". Das muss nicht schlecht sein! Es kann sein, dass bei den höheren Revs mehr Power freigesetzt wird, aber auch dass gespart wird, und komplexe Vorgänge nicht verfügbar sind. Wir wählen uns also aus der ersten Zeile der DEV_0649-Anweisungen die "Section 13" oder wenn wir etwas mutiger sind "Section 15". Der Karte geben wir unsere unter "Strings" gesetzte Indexnummer 2007, am Ende fügen wir die ID aus dem Gerätemanger ein und erhalten:

%NVIDIA_DEV.0649.2007.1043% = Section015, PCI\VEN_10DE&DEV_0649&SUBSYS_9040104D
Saven und schließen.
8. Noch eine Kleinigkeit:
Eigentlich ist nun die wesendliche Arbeit gemacht: Der Treiber KANN jetzt die GeForce 9600M GT handlen, nur dass er das auch will, dafür müssen wir noch einen Eintrag in "list Devices.txt" anlegen:
Im Gleichen Verzeichnis wie die nvam.inf finet Ihr list_Devices.txt. öffnet sie mit dem Editor.

Wie Ihr sehen könnt habe ich bereits einen String für meine Karte angelegt:
DEV_0648&SUBSYS_0900107B "NVIDIA GeForce 9600M GS " zerglidert sich in:
DEV_0648&SUBSYS_0900107B ist die Hardware ID der Grafikkarte von meinem Laptop
"NVIDIA GeForce 9600M GS " ist der Name als der sie behandelt wird. Schön brav immer ein zusätzliches Leerzeichen einfügen.
Saven und schließen.
9. Nun starten wir mal die Installationsroutine
und zwar die "Setup.exe" in C:\NVIDIA\DisplayDriver\301.42\WinVista_Win7_64\International\

Der Installationsprozess sollte jetzt problemlos durchlaufen.
Hier kann man noch ein paar kleine Stolperfallen einbauen:
1. niemals dem Treiber erlauben alleine auf die Suche nach Updates zu gehen (das könnte alles Zunichte machen)
2. nicht aus Versehen nach getaner Arbeit unter "Eigene Dateien\Downloads" das Treiberpaket neu entpacken. Dann würden alle Änderungen überschrieben.
Nach dem Installieren neustarten und wenn das geklappt hat mir 1 Million Euro überweisen und wenn Ihr 200 MB freigeben wollt das Verzeichnis C:\NVIDIA löschen oder Zippen und wegbrennen.
Viel Erfolg mit meinem kleinen Guide, Ich bin immer für Tips Anmerkungen und Eindrücke offen!
Euer Galahad/Jones
Zuest browst Ihr nach
"C:\NVIDIA\DisplayDriver\301.42\WinVista_Win7_64\International\Display.Driver\"
Die Installationsroutine von nvidia ist zwar abgebrochen, hat uns freundlicherweise jedoch die Treiberdateien gelassen. Daraus lässt sich was machen!

Hier seht ihr die Infs. In denen legt nvidia die Arbeitsfolge des Installationsprozesses genau fest, freundlicherweise unverschlüsselt und nur in einigen Ausnahmen Hexadezimal!
Wir nehmen uns nvam.inf vor. Es ginge auch mit anderen (z.B.: nvdm.inf) und öffnen diese mit dem windows editor.
5. Die nvam.inf
Diese Datei enthält einen großen Teil der Skriptinformationen mit denen der Treiber sich an die Hardware anpasst. Diese sind abgeREMt durch eckige Klammern. Ich führe ein paar beispielhaft auf damit Ihr Euch später nicht ganz so verloren vorkommt...
[ Version ] wie der Treiber heißt, wann er released wurde, zu welcher Treiberklasse er gehört, welches Betriebssystem er bevorzugt.
[ nv_CplInstaller ] Kopieranweisungen für Dateien -allgemein und "Speziell" für die sogenannten Sektionen. Sektionen sind Skript-Subroutinen die bestimmte Installationsroutinen für entsprechende Hardware aufrufen.
[ NVIDIA_SetA_Devices.NTamd64.6.1 ] Hier tauchen die für 64-Bit und NT (2k, Vista, w7) vorgesehenen Routinen und ihre Hardware-IDs auf. Da wollen wir später hin!
[ DestinationDirs ] gibt Anweisungen wohin installiert werden soll.
[ SourceDisksNames ] und [ SourceDisksFiles ] verraten dem Installer dass es nur eine "Diskette" (in diesem Fall 200MB) gibt und dass sich da alle fraglichen Dateien finden werden.
[ Section001 ] Markiert den hardwarespezifischen Arbeitsteil: wenn der Installer anhand des Kapitels "NVIDIA_SetA_Devices.NTamd64.6.1" die Hardware ermittelt hat, holt er sich hier das genaue Verfahren für diese Hardware. Es gibt stolze 122 "Sections" und nur eine wird passen -was uns aber nicht nervös macht!
[ nv_DRS_addreg ] und Folgende: Dies sind dann die Einpflegeroutinen für die Hive-Keys (HKEY-local machine und Konsorten). Der Treiber sucht folglich in Abschnitt [ NVIDIA_SetA_Devices.NTamd64.6.1 ] nach seiner Hardware, wählt die dort erwähnte "Section" aus und diese startet wiederum die Kopierprozesse der Treiberkomponenten und verknüpft die entsprechenden Dateien und Parameter mit der Registry. Für die Code-Forger unter Euch ist das nicht ganz uninteressant, weil die Anweisungen hier in Klartext vorliegen, nicht mal Hexadezimal!
[ Strings ] ist der letzte Abschnitt der INF und für uns der interessanteste. Hier steht nämlich mehr oder weniger deutlich wie der Treiber "intern" die Karte nennt.
5. Jetzt müsste es eigentlich jeder selber können. XD
Aber das hier ist kein Rätsel sondern ein Guide! Also wie fangen wir an?
Wir scrollen nach unten zu "Strings". (für alle Touchpad-hasser "END" drücken. Ach Ihr habt ne Minitastatur? Nicht mein Problem XD )

Nehmen wir zB diese Zeile:
NVIDIA_DEV.0649.2006.1043 = "NVIDIA GeForce 9600M GT "
NVIDIA_DEV.0649. -ist die Hardware-ID der Karte, genauer gesagt, des Chips "Nvidia GeForce 9600M GT"
2006. ist ein Index, eine eindeutige Identifikationsnummer, denn wie wir sehen gibts mehrere "GF9600mGT" UND mehrere "0649"
1043 ist eine Arbeitsanweisung
"NVIDIA GeForce 9600M GT " ist der Anzeigename der Karte. Die "versteckten" Leerzeichen Zwischen Kartenname und " können beim Debuggen später helfen, denn sie erlauben es in einem Debugger festzustellen, als welche der 4 hier aufgeführten "GeForce 9600M GT"s der Treiber die Karte identifiziert hat.
6. Frisch ans Werk!
Wir erinnern uns an unsere Hardware-ID aus dem Gerätemanager:
PCI\VEN_10DE&DEV_0649&SUBSYS_9040104D
VEN_10DE ist dabei "nvidia"
DEV_0649 bedeutet "ein bestimmter Geforce 9600M GT-chip"
SUBSYS_9040104D ist die zwischen Sony-Vaio und Nvidia ausgehandelte Hardware-ID
Wir fügen also einfach mal unsere Karte da ein:

NVIDIA_DEV.0649.2007.1043 = "NVIDIA GeForce 9600M GT "
2007. ist die von mir frei erfundene Indexnummer die wir später verwenden. Ich hätte auch irgend was anderes wählen können, aber die Überlegung ist folgende:
1. um der Installationsroutine meine Karte unterzujubeln denke ich nehme ich eine "Hausnummer" aus der "Nachbarschaft" von den Originalroutinen für die GF9600MGT
2. Ich will keine Nummer verwenden die ein anderer Installationsprozess verwendet oder die (noch schlimmer) einen anderen Installationsprozess codiert!
am Ende füge ich noch ein weiteres Leerzeichen zwischen GT und " ein, damit ich meine Zeile im Zweifelsfall wiederfinde.
7. Nun noch den Maßnahmenkatalog oben anpassen
Scrollen wir wieder hoch zu [ NVIDIA_SetA_Devices.NTamd64.6.1 ] und suchen uns die Zeile der "Nachbarkarte", einer "0649" mit der Indexnummer 2006 -das war die "Nachbarin" unserer Karte.

Und nun "Basteln" wir uns unsere Karte: Unter der Zeile
%NVIDIA_DEV.0649.2006.1043% = Section016, PCI\VEN_10DE&DEV_0649&SUBSYS_20061043
die im Klartext bedeutet: (den String von hinten nach vorne lesen:)
"alle Karten mit der Hardware ID SUBSYS_20061043 die den Chip VEN_10DE&DEV_0649 (also die Geforce 9600M GT) enthalten und unter "Strings" den passenden Index 2006 haben, werden nach der Routine 1043 = Section 16 installiert. (siehe [ Section ]"
Bevor wir uns nun einen eigenen Schlüssel basteln möchte ich auf ein paar Kleinigkeiten hinweisen:
Wer annimmt, dass der Chip "DEV_0649" schon als Kriterium ausreicht der wird sein "Blaues Wunder" erleben (einen Bluescreen beim Booten). Wenn Ihr nochmal nach "Strings" runterscrollt werdet Ihr sehen, dass eine Verknüpfung mit 1043% = Section020 bedeuten würde, dass die Karte als "NVIDIA GeForce GT 220M" gestartet würde, was natürlich nicht funktioniert. Auch was die Sections betrifft wäre ich nicht allzu mutig. Klar bedeutet eine höhere ID die Chance auf einen größeren Funktionsumfang aber das muss nicht klappen! Auch wenn die Karte wahrscheinlich abwärtskompatibel ist. Außerdem: "Gerätemanager/Grafikkarte/Hardware-ID" hat uns gesagt dass wir eine Karte der "REV01A" haben, also "was ganz altes". Das muss nicht schlecht sein! Es kann sein, dass bei den höheren Revs mehr Power freigesetzt wird, aber auch dass gespart wird, und komplexe Vorgänge nicht verfügbar sind. Wir wählen uns also aus der ersten Zeile der DEV_0649-Anweisungen die "Section 13" oder wenn wir etwas mutiger sind "Section 15". Der Karte geben wir unsere unter "Strings" gesetzte Indexnummer 2007, am Ende fügen wir die ID aus dem Gerätemanger ein und erhalten:

%NVIDIA_DEV.0649.2007.1043% = Section015, PCI\VEN_10DE&DEV_0649&SUBSYS_9040104D
Saven und schließen.
8. Noch eine Kleinigkeit:
Eigentlich ist nun die wesendliche Arbeit gemacht: Der Treiber KANN jetzt die GeForce 9600M GT handlen, nur dass er das auch will, dafür müssen wir noch einen Eintrag in "list Devices.txt" anlegen:
Im Gleichen Verzeichnis wie die nvam.inf finet Ihr list_Devices.txt. öffnet sie mit dem Editor.

Wie Ihr sehen könnt habe ich bereits einen String für meine Karte angelegt:
DEV_0648&SUBSYS_0900107B "NVIDIA GeForce 9600M GS " zerglidert sich in:
DEV_0648&SUBSYS_0900107B ist die Hardware ID der Grafikkarte von meinem Laptop
"NVIDIA GeForce 9600M GS " ist der Name als der sie behandelt wird. Schön brav immer ein zusätzliches Leerzeichen einfügen.
Saven und schließen.
9. Nun starten wir mal die Installationsroutine
und zwar die "Setup.exe" in C:\NVIDIA\DisplayDriver\301.42\WinVista_Win7_64\International\

Der Installationsprozess sollte jetzt problemlos durchlaufen.
Hier kann man noch ein paar kleine Stolperfallen einbauen:
1. niemals dem Treiber erlauben alleine auf die Suche nach Updates zu gehen (das könnte alles Zunichte machen)
2. nicht aus Versehen nach getaner Arbeit unter "Eigene Dateien\Downloads" das Treiberpaket neu entpacken. Dann würden alle Änderungen überschrieben.
Nach dem Installieren neustarten und wenn das geklappt hat mir 1 Million Euro überweisen und wenn Ihr 200 MB freigeben wollt das Verzeichnis C:\NVIDIA löschen oder Zippen und wegbrennen.
Viel Erfolg mit meinem kleinen Guide, Ich bin immer für Tips Anmerkungen und Eindrücke offen!
Euer Galahad/Jones
-
Michael H.W. Weber
- Vereinsvorstand

- Beiträge: 23126
- Registriert: 07.01.2002 01:00
- Wohnort: Marpurk
Re: Einen NVIDIA-Treiber umforgen... Leichtgemacht:
...kannst Du bitte auch dies zusammen mit Deinem anderen Beitrag mal durchgestylt in unser Wiki verfrachten?
Dort finden sich die Dinge einfach leichter. 
Michael.
Michael.
Fördern, kooperieren und konstruieren statt fordern, konkurrieren und konsumieren.


-
MikeBerlin
- Vereinsmitglied

- Beiträge: 882
- Registriert: 24.12.2008 14:35
Re: Einen NVIDIA-Treiber umforgen... Leichtgemacht:
Titel: "Leicht gemacht" ist ja witzig.
"Möglich gemacht" passt wohl eher. 

-
GaLaHaD
- Mikrocruncher

- Beiträge: 25
- Registriert: 05.03.2012 00:22
Re: Einen NVIDIA-Treiber umforgen... Leichtgemacht:
Ich fass das mal als kleines Lob auf ja?MikeBerlin hat geschrieben:Titel: "Leicht gemacht" ist ja witzig."Möglich gemacht" passt wohl eher.
Nun ich glaube dass man als Computerbegeisterter jenseits der 17 generell wissen sollte wie man einen Treiber hackt... Naja mit 15 kann man das auch aber "mach nichts kaputt wovon du die Wiederherstellung nicht bezahlen kannst" ist ein wichtiger Erziehungsgrundsatz, IMHO.
Ich habe das hier aber nicht nur zur Wissensvermehrung geschrieben sondern v.A. weil es beim BOINCen immens stört wenn man Cuda nicht einsetzen kann weil der Treiberdistributor (in meinem Fall Sony) der Meinung ist dass Cuda nicht zum bestimmungsgemäßen Funktionsumfang des Laptops gehört.
Generell muss man fastdankbar sein dass NVIDIA den Treiber nicht signiert hat (dann würde sowohl der NVIDIA-Installer als auch die Signaturprüfung von Windows ausgetrixt werden müssen. Naja eigene Signatur dranhängen und diese als Trunk-trusty einstufen
Ich werd das ganze mal bei Gelegenheit umschreiben, ein paar sinnvolle Keywords definieren und dann in die Wiki kopieren.
-
MikeBerlin
- Vereinsmitglied

- Beiträge: 882
- Registriert: 24.12.2008 14:35
Re: Einen NVIDIA-Treiber umforgen... Leichtgemacht:
Ja, in jedem Fall, es ist schon beeindruckend, mit wieviel Detailkenntnissen Du das Problem beschrieben und gelöst hast.GaLaHaD hat geschrieben:Ich fass das mal als kleines Lob auf ja?
Welch hoher Anspruch, dem ich als 56-jähriger leider nicht gerecht werden kann. Mit 17 gabs bei mir noch den Rechenschieber, und mit 27 habe ich meinen Sinclair ZX81 selbst zusammen gelötet und in Assembler programmiert.Nun ich glaube dass man als Computerbegeisterter jenseits der 17 generell wissen sollte wie man einen Treiber hackt...

-
GaLaHaD
- Mikrocruncher

- Beiträge: 25
- Registriert: 05.03.2012 00:22
Re: Einen NVIDIA-Treiber umforgen... Leichtgemacht:
Ich hab die Tage n bisschen viel zu tun, aber danach gehts ans Wiki!
Danke nochmal fürs Lob!
-
????
- Fingerzähler

- Beiträge: 2
- Registriert: 27.12.2012 10:56
Wo ist Deine Kontonummer? Dein Beitrag ist Gold wert! Du hast für mich das Mögliche tatsächlich leicht gemacht. Zusammen mit jemanden (15!) habe ich das durchgeführt. Ich empfand den Beitrag als sehr verständlich, weil alles begründet wurde und somit nachvollziehbar war. Außerdem baut der Beitrag Schritt-für-Schritt auf. Auf den ersten Blick sieht alles komplziert aus, weil soviel da steht. Nix kompliziert, denn die Anleitung liest sich flüssig. Ich wüsste nicht, wo man noch kürzen könnte.GaLaHaD hat geschrieben:und wenn das geklappt hat, mir 1 Million Euro überweisen
Am Ende war eine ganze Familie glücklich, dass der Computer weiterleben durfte und kein neuer angeschafft werden musste. Daher mein kleiner Beitrag in Form von Ergänzungen:
Die aktuelle Fassung des Treiber kann nun auch Windows 8. Ich war auf Vista 64bit und musste deswegen NVIDIA_SetA_Devices.NTamd64.6.0 anpassen, denn die letzte beiden Zahlen, geben nun die Windows-Version an: 6.2 = Windows 8. Deswegen und damit ich den Patch auch beim Umstieg wieder benutzen kann, habe ich alle ?NVIDIA_SetA_Devices.NTamd64.6.? angepasst (aktuell sind das drei Bereiche).GaLaHaD hat geschrieben:[ NVIDIA_SetA_Devices.NTamd64.6.1 ]
Bitte:
Bei jedem NVIDIA_SetA_Devices.NT-Bereich ist die ?Section?-Nummer anders, deswegen nicht einfach die Zeile jeweils copy-and-pasten. Die Sectionsnummer ändert sich auch mit jeder neuen Treiber-Version. Bei der Index-Nummer habe ich anstatt eine 2007 anzulegen (die bei mir schon vergeben war), die Zeile mit der 2006 auf meine SubSystem-ID geändert. So lief das auf meinem Sony VGN-AW11Z. Daher meine persönliche Variante kurz und komprimiert:
- Start » Einstellungen » Systemsteuerung » System » Hardware » Geräte-Manager » Grafikkarte aufklappen » aktuellen Treiber doppelklicken » Details » Hardware-IDs » 2. Zeile, letzte (hexadezimale) Zahl abschreiben
- C:\NVIDIA\DisplayDriver\301.42\WinVista_Win7_64\International\Display.Driver\nvam.inf doppelklicken, damit sich Notepad öffnet
- Strg-F, damit sich die Suche öffnet
- ?NVIDIA_SetA_Devices.NTamd64.6.? suchen
- ?2006.1043? suchen
- Sectionsnummer merken, bei mir 023
- Zeile ändern auf
Code: Alles auswählen
%NVIDIA_DEV.0649.2006.1043% = Section023, PCI\VEN_10DE&DEV_0649&SUBSYS_9040104D - Sectionsnummer anpassen
- wieder mit dem 3. Schritt weitermachen: ?Strg-F, damit sich ??
so oft wiederholen bis ?NVIDIA_SetA?? nicht mehr gefunden wird.
Danach zum Abschluss: - Menü » Datei » Speichern
- Menü » Datei » Beenden
Bei mir war die Datei ohne Underscore, also ?ListDevices.txt?.GaLaHaD hat geschrieben:Der Treiber KANN jetzt die GeForce 9600M GT handlen, nur dass er das auch will, dafür müssen wir noch einen Eintrag [?] anlegen.
In diesem Abschnitt war der Tippteufel aktiv, oder warum statt einer GT auf einmal eine GS? Daher noch einmal ausführlich:GaLaHaD hat geschrieben:Wie Ihr sehen könnt habe ich bereits einen String für meine Karte angelegt
- ListDevices.txt doppelklicken, damit sich Notepad öffnet
- Strg-F, damit sich die Suche öffnet
- ?nvam.inf? suchen, denn die ListDevices.txt ist in mehrere Unterabschnitte/Dateien unterteilt (wichtig)
- In dem Abschnitt dann eine neue Zeile für die eigene Grafikkarte anfügen, also beispielsweise:
Code: Alles auswählen
DEV_0649&SUBSYS_9040104D = "NVIDIA GeForce 9600M GT " - Menü » Datei » Speichern
- Menü » Datei » Beenden
Windows Desktop » Rechtsklick auf den Desktop » NVIDIA Systemsteuerung » Menü » Hilfe » Updates » Einstellungen » Automatisch abhakenGaLaHaD hat geschrieben:niemals dem Treiber erlauben alleine auf die Suche nach Updates zu gehen (das könnte alles Zunichte machen)
-
Tanja54
- Fingerzähler

- Beiträge: 2
- Registriert: 23.01.2013 14:10
Re: Einen NVIDIA-Treiber umforgen... Leichtgemacht:
Hallo Galahad, hallo Leute,
habe einen Acer Aspire 8930, aber die gleiche Grafikkarte wie Galahad (Nvidia Geforce 9600M GT) und ein ganz ähnliches Problem: Seit ich auf Windows 8 upgegradet habe, kann ich den Grafikkartentreiber nicht mehr aktualisieren, Fehlermeldung identisch. Ich habe schon viele Foren durchforstet, natürlich auch Acer, Nvidia und Microsoft gefragt, aber ohne Erfolg. Galahads Anleitung ist der erste brauchbare Beitrag, den ich zu diesem Thema finden konnte, dazu so schön idiotensicher geschrieben, dass ich mir auch als Computerlaie (und weit, weit jenseits der 17) zutrauen würde, das so zu basteln. Das Problem ist, dass ich brav auf 32 bit upgegradet habe und folglich eine andere Sorte Treiber brauche. Bei meinem Nvidia-Treiber gibt es keine nvam.inf. Wenn ich recht verstanden habe, ist es hier die nvdd.inf, die in meinem Fall verändert werden muss. Habe auch schon versucht, das analog der Anleitung zu machen (kann gern schreiben, wie), aber bevor ich das ernsthaft durchziehe, möchte ich hier noch mal nachfragen, ob ich mit alledem richtig liege, also ob das Ganze mit Acer, 32 bit und nvdd.inf auch funktioniert. Immerhin sind es die Augen meines Notebooks, mit denen ich hier spiele, und ich habe eine Heidenangst vor Bluescreens oder ähnlich grässlichen Dingen.
Gruß Tanja
habe einen Acer Aspire 8930, aber die gleiche Grafikkarte wie Galahad (Nvidia Geforce 9600M GT) und ein ganz ähnliches Problem: Seit ich auf Windows 8 upgegradet habe, kann ich den Grafikkartentreiber nicht mehr aktualisieren, Fehlermeldung identisch. Ich habe schon viele Foren durchforstet, natürlich auch Acer, Nvidia und Microsoft gefragt, aber ohne Erfolg. Galahads Anleitung ist der erste brauchbare Beitrag, den ich zu diesem Thema finden konnte, dazu so schön idiotensicher geschrieben, dass ich mir auch als Computerlaie (und weit, weit jenseits der 17) zutrauen würde, das so zu basteln. Das Problem ist, dass ich brav auf 32 bit upgegradet habe und folglich eine andere Sorte Treiber brauche. Bei meinem Nvidia-Treiber gibt es keine nvam.inf. Wenn ich recht verstanden habe, ist es hier die nvdd.inf, die in meinem Fall verändert werden muss. Habe auch schon versucht, das analog der Anleitung zu machen (kann gern schreiben, wie), aber bevor ich das ernsthaft durchziehe, möchte ich hier noch mal nachfragen, ob ich mit alledem richtig liege, also ob das Ganze mit Acer, 32 bit und nvdd.inf auch funktioniert. Immerhin sind es die Augen meines Notebooks, mit denen ich hier spiele, und ich habe eine Heidenangst vor Bluescreens oder ähnlich grässlichen Dingen.
Gruß Tanja
-
Grodahn
- FAQ-Leser

- Beiträge: 166
- Registriert: 10.05.2012 05:54
Re: Einen NVIDIA-Treiber umforgen... Leichtgemacht:
Tanja:
Solltes du was falsch machen und dein Laptop will einfach nich mehr kannst du den Treiber im abgesicherten Modus wieder deinstallieren und gut ist.
Solltes du was falsch machen und dein Laptop will einfach nich mehr kannst du den Treiber im abgesicherten Modus wieder deinstallieren und gut ist.
-
Tanja54
- Fingerzähler

- Beiträge: 2
- Registriert: 23.01.2013 14:10
Re: Einen NVIDIA-Treiber umforgen... Leichtgemacht:
Jaaaaaaaaaaaaaaaa!!!!!! Ich habs gewagt, und es hat geklappt! Mann, war das einfach, und ich hab so lange über dem Problem gegrübelt und beim Setup solche Angst gehabt. Ich will Galahad auch eine Million überweisen - und ihr habt hier im Forum nicht mal einen lausigen Danke-Button, mit dem ich ihn beglücken kann.
Glückliche Grüße Tanja
Glückliche Grüße Tanja