XServer Modelines

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

./x11.png Der X-Server unterstützt automatisch nur die standardisierten Modi. In gewissen Fällen ist es aber notwendig, eine bestimmte Auflösung oder Bildwiederholrate bei einem Monitor zu erzwingen. (Zum Beispiel wenn man die bei HDTV-Geräten häufig verwendete Auflösung von 1360x768 Pixeln verwenden möchte). Damit der X-Server den Monitor mit dem für ihn unbekannten Modus richtig "ansprechen" kann, erstellt man Modelines, die angeben mit welcher Frequenz und Auflösung ein Monitor betrieben werden kann. Die erzeugten Modelines müssen dann in die XServer-Konfigurationsdatei xorg.conf eingetragen werden.

Aufbau

Eine Modeline besteht aus fünf Abschnitten, wovon die ersten vier zwingend vorgeschrieben sind.

ModeLine "1280x960@96" 165.88 1280 1336 1616 1728 960 962 974 1000
  • Der erste Abschnitt umfasst nur den Identifier (in Anführungszeichen). Dies ist die eindeutige Bezeichnung für die spätere Verwendung der Modeline.

  • Der zweite Abschnitt ist für die DotClock, die die Taktrate für die Pixel in Mhz angibt (hier 165.88).

  • Im dritten Teil folgen vier Zahlen, welche die horizontalen Bildschirmwerte, beginnend mit der Auflösung (im Beispiel 1280), angeben.

  • Im vorletzten Teil stehen die gleichen vier Werte für die vertikale Richtung (in obigen Beispiel 960).

  • Der fünfte Abschnitt ist optional und gibt eine Liste von zusätzlichen Optionen an.

Erstellung

Möglichkeit 1: Mit Modelinegenerator

Für die Erstellung einer Modeline benötigt man einen Modeline-Generator {en} (alternativer Generator {en}) und die Monitor-Angaben für die Bandbreite (in Mhz), maximale vertikale Frequenz (in Hz) und maximale horizontale Frequenz (in Mhz). Diese Angaben befinden sich normalerweise im Handbuch des Monitors oder auf der Webseite des Herstellers. In obigen Skript gibt man nur noch die gewünschte Auflösung und Frequenz ein und kann sich hiermit eine Modeline wie oben erstellen.

Als zusätzliche einfache Alternative, kann man auch den Befehl gtf nehmen [2]. Zum Beispiel erstellt

gtf 1024 768 100 

die Modeline

# 1024x768 @ 100.00 Hz (GTF) hsync: 81.40 kHz; pclk: 113.31 MHz
Modeline "1024x768_100.00"  113.31  1024 1096 1208 1392  768 769 772 814  -HSync +Vsync

also bei einer Auflösung von 1024x768 und 100 Hz.

Möglichkeit 2: Ohne Modelinegenerator

Falls die genauen Monitordaten unbekannt sind oder die generierte Modeline nicht funktioniert, kann man einen Blick in die Datei /var/log/Xorg.0.log werfen. Wenn man dort nach dem Begriff Supported additional Video Mode sucht, bekommt man die gewünschten exakten Daten. Bei einem Samsung LE-40R51B und einer i810-Grafikkarte sieht dies beispielsweise so aus:

(II) I810(0): Supported additional Video Mode:
(II) I810(0): clock: 85.5 MHz   Image Size:  885 x 498 mm
(II) I810(0): h_active: 1360  h_sync: 1424  h_sync_end 1536 h_blank_end 1792 h_border: 0
(II) I810(0): v_active: 768  v_sync: 771  v_sync_end 777 v_blanking: 795 v_border: 0
(II) I810(0): Supported additional Video Mode:
(II) I810(0): clock: 65.0 MHz   Image Size:  885 x 498 mm
(II) I810(0): h_active: 1024  h_sync: 1048  h_sync_end 1184 h_blank_end 1344 h_border: 0
(II) I810(0): v_active: 768  v_sync: 771  v_sync_end 777 v_blanking: 806 v_border: 0

Demzufolge können zwei Modelines definiert werden. Eine mit der Auflösung von 1360x768 Pixeln und eine mit 1024x768 Pixeln. Nachdem die zweite standardmäßig ohne extra Modeline funktioniert, hier nur mal die erste:

ModeLine "1360x768@60" 85.5 1360 1424 1536 1792 768 771 777 795 -HSync +VSync

Nochmal das selbe mit den Bezeichnungen aus der Logdatei:

ModeLine "Bezeichnung" clock h_active h_sync h_sync_end h_blank_end v_active v_sync v_sync_end v_blanking OPTIONEN

Wie man sieht, kann man die Daten praktisch 1:1 übernehmen und braucht keinen weiteren Modelinegenerator verwenden.

Hinweis:

Aus diesen Daten lässt sich auch die Wiederholfrequenz berechnen, die in der Modelinebezeichnung nach dem @ stehen sollte. Dazu muss der Pixelclock durch das Produkt aus h_blank_end und v_blanking dividiert werden. In diesem Beispiel also: 85,5 * 10^6 Hz / (1792*795) = 60Hz

Möglichkeit 3: moninfo.exe (Windows)

Falls man den Monitor auch unter Windows betreiben kann, lohnt sich der Versuch, die Modeline mit Hilfe von moninfo.exe auszulesen. Das Programm Monitor Asset Manager {en} ist von EnTech Taiwan und kann für den privaten Gebrauch frei eingesetzt werden. In dem Ausgabefenster wird die Modeline direkt angezeigt. Eventuell muss ein Komma durch einen Punkt ersetzt werden.

Verwendung

Diese Modeline muss nun in die Konfigurationsdatei eingefügt werden. Dafür benötigt man einen Editor mit Root-Rechten [1] und öffnet die Datei /etc/X11/xorg.conf.

In der Sektion Monitor trägt man die Modeline einfach ein, was dann in etwa so aussieht:

Section "Monitor"
        Identifier      "SyncMaster"
        Option          "DPMS"
        HorizSync       30-96
        VertRefresh     50-160
        ModeLine        "1280x960@96" 165.88 1280 1336 1616 1728 960 962 974 1000
EndSection

Zusätzlich muss man noch angeben, dass dieser Modus auch verwendet wird. Dafür gibt es in der Sektion Screen einen Unterabschnitt Display. Bei der gewünschten Farbtiefe fügt man den Modus ("Modes") einfach hinzu. Darüber hinaus sollte man eine Zeile einfügen, in der man die virtuelle Auflösung (Virtual) einstellt, mit der Auflösung, die man für den größten Bildschirm (wichtig für Mehrmonitorbetrieb) einstellen möchte. Dies könnte dann so aussehen:

Section "Screen"
        Identifier      "Default Screen"
        Device          "ATI Technologies, Inc. Radeon X700 Pro (RV410)"
        Monitor         "SyncMaster"
        DefaultDepth    24
        SubSection "Display"
                Depth           24
                Modes           "1280x960@96" "1024x768" "800x600"
                Virtual              1920 1080
        EndSubSection
EndSection

Zum Schluss muss man die Änderungen nur speichern und den XServer neu starten, in dem man sich abmeldet oder

drückt.

Achtung!

Ein Neustart des XServers beendet die grafische Oberfläche und damit auch alle dort laufenden Programme.

Sollte man die Modeline nicht an die erste Stelle in der Modes-Liste eingefügt haben, muss man noch die gewünschte Auflösung auswählen. Dies geschieht in Ubuntu/GNOME unter "System -> Einstellungen -> Bildschirmauflösung" und in Kubuntu/KDE unter "Systemsettings -> Display".

Diese Revision wurde am 23. Januar 2012 um 11:11 Uhr von spectas erstellt.
Dieser Seite wurden folgende Begriffe zugeordnet: Hardware, System

Passwort vergessen?