Forums Neueste Beiträge
 

HDMI am Monitor

01/06/2012 - 19:10 von Markus Wichmann | Report spam
Hi all,

auf Arbeit habe ich zwei Monitore (beides BenQ GL2450HM oder so, ich
tippe das hier zu Hause). Und eine Grafikkarte (AMD Radeon 5450). Diese
Grafikkarte hat drei Ausgànge, nàmlich 1xVGA, 1xHDMI und 1xDVI.

Ich hatte zunàchst einen Monitor an VGA, einen an DVI angeschlossen. Das
funktionierte wunderbar, aber dass Bild auf dem VGA-Monitor war halt
etwas unscharf, jedenfalls im direkten Kontrast zu dem DVI-Monitor
daneben.

Jetzt bekamen wir vor kurzem eine Ladung HDMI-Kabel, und da fiel auch
eines für mich ab. Also habe ich das VGA-Kabel abgezogen und das
HDMI-Kabel angestöpselt. Das hat nicht direkt funktioniert, ich musste
noch mal umstöpseln, um dem Monitor sagen zu können, dass er auch auf
HDMI nach Bildern gucken soll. Nachdem ich ein bisschen mit xrandr
herumgespielt hatte, ging auch alles. Aber das Bild füllte nicht den
gesamten Bildschirmbereich aus, und aus irgendeinem Grund waren die
dazugehörigen Optionen im OSD vom Monitor ausgegraut. Soll das also der
PC irgendwie regeln? Und wie macht Linux das? Im OSD vom Monitor fand
sich dann die Option "Overscan" an, als ich die anschaltete, wurde das
Bild /etwas/ größer. Aber es füllt immer noch nicht die ganze Flàche
aus. Außerdem ist es bald unschàrfer als das VGA-Bild.

Aber den Rest des Tages gab es auch keine Zwischenfàlle. Als ich am
nàchsten Tag allerdings den Rechner anschaltete, zeigte sich eine ganz
besondere Bosheit: Plötzlich findet xrandr nicht mehr die höchste
Auflösung der _beiden_ Monitore. Die können jetzt beide nur noch
1440x1050, aber ich will 1920x1080 (was mir auch beide Monitore
empfehlen) . Und wieso hat xrandr jetzt eigentlich ein solches Problem
mit dem DVI-Monitor? An dem hat sich doch nix geàndert!

Aber als besonderen Gag habe ich herausgefunden, wie ich die Monitore
zum funktionieren bewegen kann: Ich schließe den HDMI-Monitor auch noch
über VGA an, bevor ich den X-Server starte. Dann wird an HDMI und VGA
erkannt, dass die 1920x1080 können und dieser Modus auch eingesetzt.
Aber DVI ist aus. Anschließend ziehe ich das VGA-Kabel wieder aus dem
Monitor raus und mache "xrandr --auto", dann geht der DVI-Monitor wieder
an, und beide Monitore sind im Modus 1920x1080, was vorher _beide_ nicht
konnten. Hmmm...

Da ich eklige Kludges nicht ausstehen kann, wollte ich das Problem
dauerhaft beheben. Aber zunàchst einmal testen, bevor ich mir das System
verkonfiguriere. Ich habe also im Fehlerzustand (beide Monitore im Modus
1440x1050, und beide Monitore wollen nicht mehr können, obwohl sie
selbst eine höhere Auflösung empfehlen) mit cvt eine Modeline für
1920x1080 berechnen lassen, mit "xrandr --newmode" temporàr übernommen
und versucht, diesem Modus mit "xrandr --addmode" dem HDMI-Monitor
zuzuweisen. Hat nicht funktioniert, denn "xrandr --addmode" beendet sich
mit dem Xlib-Fehler "Bad Match" (ich kann erst seit gerade eben auch auf
Arbeit im Usenet posten, darum kommt die volle Fehlermeldung, wenn
gewünscht, erst am Montag. Dann aber über Google Groups.)

Tja, hat dazu einer eine Idee? Oder wonach ich googlen könnte?

Zusammenfassung:
1. Wieso wird nicht die volle Auflösung der Monitore erkannt, es sei
denn, einer ist auch noch per VGA angeschlossen?
2. Warum ist das Bild nicht die volle Bildschirmgröße groß und wie
àndere ich das?
3. Wieso ist das Bild unscharf und wie àndere ich das? Ich sehe doch auf
dem DVI-Monitor, was "scharf" ist.

System:
Monitore: BenQ GL2450HM
GraKa: AMD Radeon 5450
Distri: Ubuntu precise (nicht meine Wahl, aber naja...)
Grafiktreiber: fglrx
WM: wmii
DE: keine
X11-Startmethode: startx

Ciao,
Markus
 

Lesen sie die antworten

#1 Dirk Thierbach
02/06/2012 - 09:47 | Warnen spam
Markus Wichmann wrote:
auf Arbeit habe ich zwei Monitore (beides BenQ GL2450HM oder so, ich
tippe das hier zu Hause). Und eine Grafikkarte (AMD Radeon 5450). Diese
Grafikkarte hat drei Ausgànge, nàmlich 1xVGA, 1xHDMI und 1xDVI.



Ich kenne die konkrete Grafikkarte nicht, aber man sollte als Hintergrund
wissen, dass die Pixelclock fuer die HDMI/DVI-Ausgaenge in der Regel
anders erzeugt wird als die Pixelclock fuer den VGA-Ausgang. Von
daher darf man sich dann auch nicht wundern, wenn es andere Restriktionen
gibt.

Aber das Bild füllte nicht den gesamten Bildschirmbereich aus, und
aus irgendeinem Grund waren die dazugehörigen Optionen im OSD vom
Monitor ausgegraut.



D.h., der Monitor skaliert zwar Analogsignale ueber VGA, aber nicht
digitale Signale ueber HDMI/DVI. Weil die Entwickler des Monitors das
so wollten.

Soll das also der PC irgendwie regeln? Und wie macht Linux das?



Die richtige Aufloesung waehlen.

Im OSD vom Monitor fand sich dann die Option "Overscan" an, als ich
die anschaltete, wurde das Bild /etwas/ größer.



Als skaliert er doch, aber nur fuer Overscan. Aber Overscan ist in der
Regel eine schlechte Idee, weil dann die Aufloesung des Bildes
nicht mehr mit der Aufloesung der uebertragenen Daten uebereinstimmt.
Das fuehrt naemlich zu:

Außerdem ist es bald unschàrfer als das VGA-Bild.

Aber den Rest des Tages gab es auch keine Zwischenfàlle. Als ich am
nàchsten Tag allerdings den Rechner anschaltete, zeigte sich eine ganz
besondere Bosheit: Plötzlich findet xrandr nicht mehr die höchste
Auflösung der _beiden_ Monitore.



D.h., der Treiber findet beim Booten andere Restriktionen vor, als
wenn Du die Karte einstoepselst. Diese Restriktionen sind moeglicherweise
falsch (oder zu konservativ), wenn es mit Einstoepseln doch geht.

Und wieso hat xrandr jetzt eigentlich ein solches Problem
mit dem DVI-Monitor?



Siehe oben.

Da ich eklige Kludges nicht ausstehen kann, wollte ich das Problem
dauerhaft beheben.



Zunaechst sollte man mal nachvollziehen, was da der Server ueberhaupt
tut, und warum. Dazu braucht man das x.org-Log sowohl fuer den Bootvorgang,
wo es klemmt, wie auch fuer den Einstoepselvorgang, wo es geht.

Wenn Du das Log selbst nicht lesen kannst, bitte beide vollstaendig
posten.

Moegliche Problemquellen sind zu eingeschraenkte Auswahlmoeglichkeiten
bei den EDID-Daten, evtl. verursacht vom Monitor selbst.

Ein moegliche Loesung ist eine eigene xorg.conf, bei der man die
EDID-Daten aushebelt und die richtigen Daten erzwingt.

Zusammenfassung:
1. Wieso wird nicht die volle Auflösung der Monitore erkannt, es sei
denn, einer ist auch noch per VGA angeschlossen?



Siehe oben. VGA funktioniert anders als DVI/HDMI, der Treiber
ist offenbar der Ansicht, dass bei gleichzeitiger Benutzung des
DVI und des HDMI-Ausgangs staerkere Restriktionen vorliegen als
bei VGA + 1x DVI/HDMI. Da es anders geht, ist diese Ansicht moeglicherweise
falsch. Oder sie ist richtig, und Du hast Glueck, dass die
Karte die Uebertaktung der Pixelclock bis jetzt mitgemacht hat
(sicherheitshalber sollte man auf die Temperatur der Karte achten).

2. Warum ist das Bild nicht die volle Bildschirmgröße groß und wie
àndere ich das?



Siehe oben: Korrekte Aufloesung waehlen. Der Treiber kennt nur die
Aufloesungen, die ihm der Monitor per EDID mitteilt. Wenn der Treiber
davon eine waehlt und der Monitor beschliesst "die stelle ich nicht
als Vollbild dar", dann ist das halt so.

3. Wieso ist das Bild unscharf und wie àndere ich das?



Siehe oben: Bei VGA ist das Bild unscharf wegen der noetigen
Analog/Digital-Wandlung. Beim Overscan ist das Bild unscharf, weil
skaliert wird.

Falls Du meinst, dass nach dem "Trick", mit dem beide Monitore mit
voller Aufloesung gefahren werden, das Bild unscharf ist, liegt das
daran, dass der Treiber recht hatte und Du die Karte gerade ausserhalb
ihrer Spezifikation betreibst (zu hohe Pixelclock). In diesem Fall
wuerde ich die Finger davon lassen und irgendeine andere Alternative
suchen, bei der die Karte nicht moeglicherweise recht bald den Geist
aufgeben wird.

- Dirk

Ähnliche fragen