Hin und wieder gibts doch auch rechts und links Kuriositäten, die manchmal durchaus erwähnenswert sind.
So geschehen bei einem Monitor L246WP von der Firma LG. Dieser wurde im Bekanntenkreis bisher über VGA betrieben und er sollte sinnvollerweise auf HDMI umgerüstet werden, da sowohl Monitor als auch Grafikkarte diesen Anschluss boten.
Jedoch war, nachdem das HDMI-Kabel angeschlossen war die Freude kurz, denn der Monitor bot ein ganz verschobenes Bild. Lediglich unter niedrigen Bildschirmauflösungen sah das Bild halbwegs akzeptabel aus, jedoch hätte es eine Auflösung von 1920×1200 Bildpunkten sein sollen.
Nach einer kurzen Recherche hatte ich herausgefunden, dass manche Grafikkarten den Monitor fälschlicherweise als Fernsehgerät ansteuern. Nur – um das zu beheben, ist es notwendig, die sogenannte EDID-Information im Monitor selbst, die auf einem wiederbeschreibbaren EEROM-Speicherchip sitzt, neu zu programmieren. EDID steht für Extended Display Identification Data und enthält Informationen wie Hersteller, Fertigungsdatum, Displaygröße und eben auch die Pixel Mapping Data. Dieser Teil enthält genau die Informationen, wieviel Pixel für welche Auflösung an welchem Eingang verwendet werden sollen, und exakt an dieser Stelle müsste also der Fehler korrigiert werden.
Jedoch ist standardmäßig zumindest bei diesem Monitor der Chip schreibgeschützt. Um dies zu lösen, gab es entweder die Möglichkeit, den Monitor komplett auseinanderzubauen und den verbauten ROM-Chip M24C02-RMN6T auf Pin 7 mit Masse kurzzuschließen. Dann wäre der EEPROM wieder beschreibbar.
Ich fand aber noch eine einfachere Methode, nämlich in den Service-Modus zu wechseln und in den sogenannten Aging Mode zu wechseln.
Beim dem L246WP gelangt man in das Menü, indem man die Taste “MENU” im ausgeschalteten Zustand gedrückt hält und anschließend die “POWER” Taste drückt. Das sieht dann so aus.
Hier ist der Aging Mode noch ausgeschaltet, man kann diesen aber mit Hilfe der Pfeiltasten anschalten. Dieser ist normalerweise dafür zuständig, bei höherem Alter des Displays und damit höheren Gebrauchsstunden unter anderem eine immer noch gleichbleibende Hintergrundhelligkeit zu erzielen. Die CCFL-Röhren werden normalerweise bei gleicher Justierung dunkler, wenn diese altern. Aber indem das berücksichtigt wird, ist es notwendig, dass neue Statusinformationen geschrieben werden und bei diesem Display bewirkt das, dass der EEPROM generell beschreibbar ist. Dies kann bei anderen Displays völlig anders aussehen. Der erste Teil kann unter Umständen ganz unterschiedlich ausfallen. Es gibt auch etliche Displays, deren EEPROMs immer beschreibbar sind.
In den Tutorials, die man für dieses Display findet, ist immer die Rede davon, dass man die Änderungen über VGA oder einen DVI zu HDMI-Adapter machen sollte.
In meinem Fall hat das Beschreiben wirklich erst funktioniert, nachdem der Monitor per HDMI anschlossen war.
Um dies nun zu realisieren, hatte ich ein aktuelles Ubuntu von DVD gestartet, da auf dem Rechner ein Windows 10 installiert war. Unter Windows 10 lassen sich solche Aktionen aus meiner Sicht schwieriger realisieren.
Also findet die Arbeit am Besten in der Shell statt:
1 2 3 |
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe" sudo apt-get update sudo apt-get install i2c-tools |
Nachdem das System aktuell ist und alle notwendigen tools installiert sind, muss die Adresse des EDID-EEPROMS identifiziert werden, welche per I2C-Bus erreichbar ist.
1 |
ls /dev/i2c* |
1 2 |
/dev/i2c-0 /dev/i2c-2 /dev/i2c-4 /dev/i2c-6 /dev/i2c-8 /dev/i2c-1 /dev/i2c-3 /dev/i2c-5 /dev/i2c-7 |
Nun liest man mit Hilfe der letzten Nummer, die im Devicenamen /dev/i2c-x steh,t der Reihe nach die I2C-Adressen auf Offset 0x50 aus. In meinem Fall hatte ich Glück und es war gleich die erste Adresse 0, an VGA angeschlossen war es Adresse 2.
1 |
sudo i2cdump 0 0x50 |
Hier erkennbar an der Bezeichnung des Monitors in diesem Dump.
1 2 |
sudo i2cset 0 0x50 0x7e 0x00 b sudo i2cset 0 0x50 0x7f 0x2e b (0x?? sollte vom Original ein 0x01 addiert werden) |
Die letzten beiden Schritte sind die heikelsten. Im vorletzten wird
in Spalte 0x7e der Wert 0x01 auf 0x00 gesetzt (also der Wert 1
hexadezimal abgezogen).
Dieser muss dann im nächsten Schritt in an der Stelle 0x7f, die die
Checksumme enthält, 0x2d wieder hinzugerechnet werden, also 0x2d + 0x01 =
0x2e.
Damit hat man folgendes erreicht: Das Display bietet einen Videokomponenteneingang, VGA und HDMI. Wenn man nun das Display vom Computer per HDMI aus ansteuert, kann es passieren dass das Display in den für Digital-TVs typischen CEA Extended Mode schaltet (CEA = Consumer Electronics Association), welcher das Display mit Auflösungstimings wie 720p, 1080i, 1080p ansteuern kann, die ihrerseits nicht mit Computerauflösungen kompatibel sind.
Das Display muss stattdessen in den DMT mode wechseln (DMT = Display Monitor Timing), welcher generell für Computermonitore vorgesehen ist, der dann wieder korrekte Timings für deren Auflösungen wie 1920×1200@60hz liefert.
Indem man also diesen einen Wert ändert, wird die automatische Umschaltung in den CEA mode verhindert und verbleibt im DMT mode – und bietet damit korrekte Auflösungen und Bildwiederholfrequenzen.
Mit über 15 Jahren Erfahrung als System Engineer und System Architekt bin ich die “Allzweckwaffe” im Kampf gegen Bugs und Performanceprobleme. Den Rest meiner Arbeitszeit verwende ich zur Verbesserung unseres Monitoringsystems und des Netzwerks in unseren Rechenzentren.