Gesucht: EDID-Override eines 17" 120HZ Notebook Displays (z.B. Dell XPS17)

Coolinger

Lt. Junior Grade
Registriert
März 2001
Beiträge
319
Hallo,

wir haben für unseren Lehrstuhl einen Laptop mit Quadro Grafikkarte und Nvidia Vision kompatiblen Display besorgt.

Der scheinbar einzige Hersteller war Eurocom aus Kanada, dort haben wir einen Neptune 3D bestellt, mit einer Quadro 5010M.
(http://eurocom.com/products/showroom/specselectnew.cfm?model_id=218)

Das verbaute Display ist laut "Configure" Seite ein LP173WF2, es wird eine NVIDIA
Vision 2 Brille mitgeliefert, der USB Emitter ist im Gehäuse verbaut.

Nun erkennt jedoch der Nvidia Treiber das Display nicht als 3D tauglich an. Dadurch funktionieren DirectX basierte stereoskopische Ausgaben nicht. OpenGL läuft, allerdings mit merkbarem Ghosting. Als Vergleich diente uns ein Samsung SyncMaster 2233, der vom Treiber einwandfrei als 3D fähig erkannt wurde.

Das Display dass Eurocom verbaut müsste auch in den Laptops von Dell (XPS17) und Asus
verbaut sein, diese geben ebenfalls Nvidia Vision 2 Kompatibilität an und stehen auf der
entsprechenden Nvidia Seite (http://www.nvidia.com/object/3d-vision-notebooks.html)

Unsere Vermutung ist nun dass Eurocom in die Edid Informationen des Displays irgendwelche
OEM Strings eingebaut hat, und der Treiber das Display deswegen nicht als Kompatibel
erkennt. Das gleiche haben sie auch mit der GPU gemacht, den Nvidia Treiber konnten wir erst
nach einem uns zur Verfügung gestellten INF-Hack installieren. Dabei wurden die ProductIDs der regulären 5010M durch die von Eurocom ersetzt.

Da der Eurocom Support nun aber schweigt, wende ich mich hilfesuchend an Euch.

Habt Ihr evtl. einen EDID-Override Treiber eines gleichen Displays für uns? Oder wisst Ihr einen anderen Rat?

Daten des Displays und des Systems finden sich hier:
http://cvpr.in.tum.de/~lohr/dirs/LGD02C5/


Vielen Dank und schöne Grüße
Coolinger
 
Moin,

das sollte dir weiterhelfen.

1.) EDID auslesen und anpassen
Dafür ist das Viewsonic EDID Utility http://www.viewsonic.com/drivers/edid.exe optimal. Über den Menupunkt "File -> Retrieve EDID data" könnt ihr die aktuellen gespeicherten bzw. verwendeten EDID-Daten des Monitors/LCDs abrufen, welche ihr dann im Hex-Format erkennen könnt. Über den Button "Translate EDID" erhaltet ihr eine "lesbare" Übersetzung der aktuellen Werte, welche ihr im "Hex-Fenster" mit einer Art Vorschau bearbeiten könnt. Folgendes habe ich beispielsweise durchführen müssen:

a.) Das vorletzte Byte auf 00 setzen, dann wird euer LCD nicht mehr als HDTV, sondern als konventioneller Monitor erkannt
b.) Die ungültige Auflösung (1280x1152 mit 25 Hz) habe ich entfernt
b.) Im Bereich "Standard Timing Identification" habe ich die gewünschten Auflösungen hinzugefügt (z.B. 1280x720)
c.) Den Bereich "Detailed Timing - Monitor Range Limits" habe ich entfernt (dort war die Ursache für das Limit auf 60 Hz begraben) und durch den Monitornamen ersetzt
e.) Abschliessend verifizieren, ob die Checksumme des Tags korrekt ist (letztes Byte, erkennbar in der Vorschau als "CheckSum OK")

2.) ID des Monitors ermitteln
Diese findet ihr in der Vorschau in den 4 Bytes 8 - 11 (z.B. 4C 2D 1D 02), über welche sich der LCD beim Forceware-Treiber identifiziert. Diese ID ist daher wichtig, um beim Überschreiben der EDID-Daten dem Treiber mitteilen zu können, für welchen LCD die EDID überschrieben wird

3.) EDID erstellen
Nun muss die Hex-Sequenz erstellt werden, mit welcher dem Forceware-Treiber die EDID vorgegaukelt wird (HEX-Werte sind dabei immer über Kommas zu trennen).
Geht dabei folgendermassen vor:

* Die ersten 4 Bytes ist die Monitor-ID aus Punkt 2 (4C,2D,1D,02)
* Datumsinfo 00,00,FF,FF
* Fixwerte 04,00,00,00 (null Ahnung, wofür die sind)
* 00 80 (heisst: zu übersteuernde EDID-Information startet an Position 0 (Hex 00) und hat die Länge 128 (Hex 80) -> damit könnte man auch nur Teile der EDID überschreiben, hat bei mir jedoch nie funktioniert)
* 128 Bytes der Hex-Sequenz aus Punkt 3

Fertig sollte dies nun so aussehen: 4C,2D,1D,02,00,00,FF,FF,04,00,00,00,00 80, xx (xx=Hexsequenz aus 2, auch mit Komma getrennt)

4.) EDID überschreiben.
Die in 1 erstellte EDID könnt ihr im Binärformat speichern, und um diese nunmehr dem Nvidia-Treiber quasi vorzugaukeln, gibt es 2 Varianten

a.) Registry-Variante
* Regedit öffnen und folgenden Schlüssel suchen: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video
* Dort gibt es einige Unterknoten, sucht jenen, in welchen der SubKey "VolatileSettings" zu finden ist, das ist der korrekte Knoten der aktuellen Nvidia-Grafikkarte
* In diesem Knoten findet ihr jede Menge der Nvidia-Registry-Keys, legt einen neuen BinaryKey mit dem Namen "OverrideEdidFlags0" an
* Im Bearbeiten-Fenster des Keys die in Punkt 3 erstellen Hex-Bytes der Reihe nach eingeben :blink: (ich weiss, mühsam, aber in Variante b muss man den ganzen Treiber neu installieren, ich war mit der a-Variante schneller, sind viele 00er dabei :wacko: )
* PC neu starten

b.) Forceware-Reinstall-Variante
* Forceware-Treiber deinstallieren
* Neustart und dann nach Boot-Schirm via F8 in den abgesicherten Modus
* DriverCleaner benutzen, um Reste alter Driver-Installationen zu entfernen
* Forceware-Setup starten, jedoch nach dem Entpacken der Dateien das Setup beenden
* Treiber wurde in einem Unterordner C:\Nvidia entpackt, in diesem Ordner die Datei nv_disp.inf öffnen und bearbeiten
* Über Suche den Abschnitt "[nv_SoftwareDeviceSettings]" suchen
* Vor der Zeile "nv_modes" folgenden Eintrag erstellen und Datei speichern:
HKR,, OverrideEdidFlags0, %REG_BINARY%, 4C,2D,1D,02,00,00,FF,FF,04,00,00,00,00 80, xx (xx=Hexsequenz aus 2, auch mit Komma getrennt)
(Anmerkung: die Hex-Bytes entsprechen den im Punkt 3 erstellten)
* Setup der Forceware-Treiber über "Setup.exe" aus demselben Ordner aufrufen (dort, wo nv_disp.inf liegt)
* PC neu starten

Anmerkung: Bitte bei der Erstellung bzw. Veränderung der EDID eure Monitor ID verwenden (siehe Punkt 2), sonst geht dar nix. Und natürlich penibelst genau die Hex-Sequenz auf korrekte Länge prüfen (falls ihr korrupte EDID-Daten erstellt kann jedoch nix passieren, der Treiber nimmt einfach die vom Monior übermittelten).

Resultat:
* Alle Auflösungen und Frequenzen verfügbar (auf einmal hat mein LCD auch einen Namen in der Systemsteuerung...)
* Pixelgenaue Ansteuerung des Displays mit 1366 x 768 mit 60 Hz (gestochen scharf, kein Scaler, wunderbar für Games und surfen), was ja laut Hersteller gar nicht geht :)
* DVBViewer mit 50 Hz und 720p und Nvidia Pure Video bzw. Cyberlink h264-Decoder ist sowohl in SDTV und HDTV nahe an einer Settop-Box, beeindruckend
* Hardwarebeschleunigung sei dank nie mehr als 5 % -Auslastung bei 1080i und h264

Anmerkung: Meines Wissens nach funkt dieser OverrideEdidFlags-Ansatz jedoch nur unter XP, in einem Thread habe ich gelesen, dass dies unter Vista nicht zum Ziel führt.


Creits gehen nicht an mich, sondern an den User: moldina aus dem dvbviewer Forum.

Gruß
 
Zurück
Oben