Guten Morgen,
mir kam vor einigen Tagen mal wieder die Idee in den Sinn, meinen VBE-Treiber zu verbessern. Um meinen Grafikteiber weiter zu verbessern wollte ich mit EDID die Liste der verfügbaren Grafikmodis einschränken. Dies funktioniert auch meisten auf echter Hardware mit dem BIOS interrupt 0x10, ax = 0x4F15, bx = 0x0001. In diesem Thema soll es jedoch um die Fälle gehen bei denen es nicht funktioniert, d. h. EDID wird unterstützt, dies habe ich verifiziert mit dem BIOS interrupt 0x10 ax = 0x4F15, bx = 0x0000, es : di = 0x0000, jedoch kann ich die EDID informationen nicht auslesen mit der vorher beschriebenen Prozedur. Nun habe ich mich informiert wie man die EDID funktionen noch bekommen könnte. Man kann die EDID informationen scheinbar ebenfalls bekommen, durch ACPI Tabellen? oder durch eine BIOS Tabelle, sowie durch eine Enumeration der PCI-Busse um den passenden Grafikcontroller zu finden, und bei diesem die EDID informationen abzufragen. Aus dem linux Kernel habe ich entnommen, dass die EDID informationen ebenfalls in einer der ACPI Tabellen vorhanden sind, oder die ACPI Tabellen auf eine Kontrollstruktur zeigen, welche diese beeinhaltet. Meine Frage ist nun ob sich vielleicht schon mal jemand umfassend mit dem Thema beschäftigt hat und möglicherweise zu einer Lösung gekommen ist, da die Informationen, welche im Internet zu finden sind ja eher spärlich ausfallen.
Mir wäre es wichtig dem User so oft wie möglich nur eine Liste an Grafikmodis anzuzeigen, welche der Bildschirm auch unterstützt.
MfG SqrT
mir kam vor einigen Tagen mal wieder die Idee in den Sinn, meinen VBE-Treiber zu verbessern. Um meinen Grafikteiber weiter zu verbessern wollte ich mit EDID die Liste der verfügbaren Grafikmodis einschränken. Dies funktioniert auch meisten auf echter Hardware mit dem BIOS interrupt 0x10, ax = 0x4F15, bx = 0x0001. In diesem Thema soll es jedoch um die Fälle gehen bei denen es nicht funktioniert, d. h. EDID wird unterstützt, dies habe ich verifiziert mit dem BIOS interrupt 0x10 ax = 0x4F15, bx = 0x0000, es : di = 0x0000, jedoch kann ich die EDID informationen nicht auslesen mit der vorher beschriebenen Prozedur. Nun habe ich mich informiert wie man die EDID funktionen noch bekommen könnte. Man kann die EDID informationen scheinbar ebenfalls bekommen, durch ACPI Tabellen? oder durch eine BIOS Tabelle, sowie durch eine Enumeration der PCI-Busse um den passenden Grafikcontroller zu finden, und bei diesem die EDID informationen abzufragen. Aus dem linux Kernel habe ich entnommen, dass die EDID informationen ebenfalls in einer der ACPI Tabellen vorhanden sind, oder die ACPI Tabellen auf eine Kontrollstruktur zeigen, welche diese beeinhaltet. Meine Frage ist nun ob sich vielleicht schon mal jemand umfassend mit dem Thema beschäftigt hat und möglicherweise zu einer Lösung gekommen ist, da die Informationen, welche im Internet zu finden sind ja eher spärlich ausfallen.
Mir wäre es wichtig dem User so oft wie möglich nur eine Liste an Grafikmodis anzuzeigen, welche der Bildschirm auch unterstützt.
MfG SqrT

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken

Gespeichert

ich selbst werde auch lieber geduzt, fange jedoch lieber immer mit dem Siezen an, damit sich niemand angegriffen fühlt. Das mit dem Linux-log dauert noch ein wenig, da ich Windows besitze und gerade zu wenig Zeit habe um eine Linux Partition einzurichten ( und sie sinnvoll zu verwenden ). Habe es jetzt wie du geraten hast erstmal zurückgestellt um jeden Preis an die EDID Informationen zu kommen, der User bekommt eine Liste die sein Monitor/Bildschirm von der Grafikkarte aus unterstützen könnte, mit einer Warnung, dass der User nur eine Auflösung auswählen soll, von der er sicher ist das sie unterstützt wird ( es werden auch die VGA-Auflösungen angeboten 640*480 etc. ). Nun stelle ich noch eine weitere Frage mit der ich mich im Moment beschäftige, nämlich die Erstellung dieser "Blacklist". Ist es möglich auch ohne EDID eine zweifelsfreie Identifikation des Bildschirms vorzunehmen? Mir schwebt folgendes vor: Der User hat einen Bildschirm bei welchem die EDID Informationen kaputt sind. Zum Glück kennt er die Auflösung seines Monitors/Fernsehers und selektiert sie innerhalb der Liste der aufgelisteten Grafikmodis. Nun würde ich gerne diese Auflösung speichern für genau diesen Monitortyp sodass der User beim nächsten Start nicht mehr gefragt wird und die Auflösung einfach genommen wird. Die Identifikation ist wichtig, da bei einem Monitor wechsel, also er/sie hat einen neuen Monitor gekauft und angeschlossen, nicht diesselbe Auflösung wie für den alten Bildschirm genommen werden darf. Ich habe bereits geschaut ob die Informationen welche von der BIOS Funktion int 0x10 ax = 0x4F00 es:di = Buffer zurückgegeben werden sich bei unterschiedlichen Bildschirmen auch unterscheiden, dies ist jedoch nicht der Fall. Ist es trotzdem möglich den Bildschirm zu identifizieren ohne EDID Unterstützung?