FullHD-Auflösungen mit dem ATI fglrx-Treiber

Gentoo-Blog Ersatz

Moderator: el_hakim

Post Reply
tel
Posts: 83
Joined: 28.09.2007, 20:35

FullHD-Auflösungen mit dem ATI fglrx-Treiber

Post by tel » 11.04.2010, 00:03

Wer wie ich mal versucht hat, einen LCD-Fernseher oder LCD-Monitor mit
einer typischen 16:9-Auflösung wie 1920x1080 unter Linux an einer ATI-Grafikkarte
zu betreiben, hat sich vielleicht auch über die schwarzen Ränder um das Bild
gewundert.

Dabei sind 1920x1080 genau die physikalische Auflösung eines Full-HD-Panels und
sollten also entweder 1:1 angezeigt werden oder aber durch den Overscan des TV
vergrößert werden (Overscan ist aber bei den meisten aktuellen LCD-TV's
deaktivierbar).
Mit dem Open-Source-Treiber "radeon" klappt die 1:1 Wiedergabe auch, nicht aber mit dem
Closed-Source-Treiber "fglrx".

Das liegt daran, dass AMD/ATI dem fglrx eine Erkennung von LCD-TV-Geräten am HDMI-Ausgang
verpasst hat (ob das auch für DVI zutrifft, habe ich nicht ausprobiert). Sobald der fglrx meint,
es mit einem Fernseher zu tun zu haben, macht er "Underscan" - skaliert also die Full-HD-Auflösung
herunter, damit sie durch den vermuteten Overscan des TV dann wieder ungefähr bildschirmfüllend
(und so richtig vermatscht) angezeigt wird.
Frei nach dem Motto, wenn sich einer schon selbst in den rechten Fuß geschossen hat, dann schieße ich ihm
halt auch noch in den linken - dann merkt er den Schmerz im rechten nicht mehr. :?:

Abgewöhnen lässt sich dieses Verhalten dem fglrx (ab Version 9.3) nur durch einen Eintrag in seiner
Pseudo-Registry-Datei /etc/ati/amdpcsdb .

Dazu benutzt man am besten das mitgelieferte Tool aticonfig und fügt folgenden Eintrag hinzu:

Code: Select all

rmmod fglrx
aticonfig --set-pcs-val=MCIL,DigitalHDTVDefaultUnderscan,0
Der XServer sollte dabei nicht laufen und man sollte auch das Kernel-Modul des Treibers vorher
entladen haben.

Normalerweise sollte jetzt der Underscan vom Treiber unterlassen werden. Kontrollieren
kann man das auch wieder mit aticonfig, diesesmal aber in einem Terminal unter X11.

Code: Select all

startx
aticonfig --query-dispattrib tmds2i

Query monitors tmds2i ,Cap:0xff
Supported adjustment type for tmds2i : brightness, contrast, saturation, hue, p$

 brightness attribute information of monitor tmds2i :
 default:0, value:0, min:-100, max:100, step:1

 contrast attribute information of monitor tmds2i :
 default:100, value:100, min:0, max:200, step:1

 saturation attribute information of monitor tmds2i :
 default:100, value:100, min:0, max:200, step:1

 hue attribute information of monitor tmds2i :
 default:0, value:0, min:-30, max:30, step:1

 positionX attribute information of monitor tmds2i :
 default:0, value:0, min:0, max:1920, step:1
 
 positionY attribute information of monitor tmds2i :
 default:0, value:0, min:0, max:1080, step:1

 sizeX attribute information of monitor tmds2i :
 default:1920, value:1920, min:1129, max:1920, step:1

 sizeY attribute information of monitor tmds2i :
 default:1080, value:1080, min:635, max:1080, step:1
Die Werte 'positionX-default' und 'positionY-default' sollten auf 0 stehen.
'sizeX-default' und 'sizeY-default' sollten die gewünschte 16:9-Auflösung enthalten.

Falls das nicht der Fall ist, kann man die Werte mit aticonfig auch zur Laufzeit des
XServers dynamisch ändern. Das kann bei Treiber-Versionen vor 9.3 erforderlich sein.

Code: Select all

aticonfig --set-dispattrib=tmds2i,positionX:0
aticonfig --set-dispattrib=tmds2i,positionY:0
aticonfig --set-dispattrib=tmds2i,sizeX:1920
aticonfig --set-dispattrib=tmds2i,sizeY:1080
Das erste Attribut des Aufrufs bezeichnet dabei das gewünschte Display,
crt1, crt2 für analoge Monitore
tmds1, tmds2 oder tmds2i für über DVI/HDMI angeschlossene LCD's
lvds für Notebook-Panels.

Welches die richtige Bezeichnung ist, muss man eventuell in der /var/log/Xorg.0.log
nachschauen.

Post Reply