ubuntuusers.de

Bildschirmauflösung

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/computer.png Nach der Installation von Ubuntu tritt eventuell das Problem auf, dass die Bildschirmauflösung nicht korrekt eingestellt ist. Die Hardwareerkennung von Linux ist zwar sehr gut, dennoch kann es manchmal vorkommen, dass die Auflösung nicht automatisch ermittelt werden kann. Während bei Flachbildschirmen (TFT) im Regelfall eine für den Monitor optimale Auflösung gewählt wird, kann es insbesondere bei älteren Röhrenbildschirmen (CRT) zu solchen Problemen kommen. Im Gegensatz zu TFTs kann der Bildschirm hier ohne Qualitätsverlust (Interpolation) in verschiedenen Auflösungen betrieben werden.

Eine wichtige Rolle spielt in diesem Zusammenhang der DDC, über den der Monitor (im Idealfall) die Auflösungen mitteilt, die er beherrscht. Falls nicht, dann müssen dem für die Ausgabe zuständigen XServer die richtigen Einstellungen mitgeteilt werden. Liegt das ursächliche Problem nicht am Grafiktreiber, gibt es dazu diverse Möglichkeiten.

Ubuntu verwendet inzwischen einen größtenteils selbst konfigurierenden XServer, der die früher berühmt-berüchtigte zentrale Datei /etc/X11/xorg.conf nicht mehr unbedingt benötigt. Daher sollte man bei Problemen immer zuerst die Lösung über die Möglichkeiten der installierten Desktop-Umgebung (siehe unten) bzw. mit Hilfe eines Kommandozeilen-Werkzeugs versuchen, bevor man diese Datei von Hand editiert (ist sie nicht vorhanden, erstellt man sie einfach). Darüber hinaus ist die direkte Konfiguration ein Thema für Fortgeschrittene und Profis.

Auflösung in der Konsole einstellen

Mit Hilfe des Programms XRandR 🇬🇧 kann man die Bildschirmauflösung via Kommandozeile ein- bzw. umstellen. Dieses empfehlenswerte Programm (inklusive der grafischen Oberfläche ARandR) wird im Artikel RandR ausführlich besprochen.

Auflösung erzwingen

Speziell bei älteren Röhrenmonitoren kann es sinnvoll sein, eine bestimmte Auflösung zu erzwingen. Der XServer steuert den Monitor normalerweise mit der höchstmöglichsten Auflösung an. Hat man eigene Vorlieben, ist dies nicht unbedingt hilfreich. In folgendem Beispiel wird der Befehl xrandr verwendet, der zudem in ein Shell-Skript eingebettet wird, um ihn bequemer nutzen zu können:

1
2
#!/bin/sh
xrandr --output VGA-0 --mode 1280x1024 --pos 0x0 --rotate normal

Als Dateiname für das Skript kann man beispielsweise /usr/local/bin/my_resolution.sh verwenden. Anschließend muss es noch ausführbar [3] gemacht werden. Ein weiterer Vorteil ist, dass sich ein solches Skript auch in den Autostart aufnehmen lässt, um es automatisch nach der grafischen Anmeldung auszuführen.

Allerdings ist ein solches Skript nicht die einzige Lösung. Tipps zur manuellen Konfiguration des XServers sind im nächsten Abschnitt zu finden.

Manuelle Einrichtung

Hinweis:

Wie in der Einleitung bereits erwähnt, konfiguriert sich der XServer inzwischen weitgehend selbst. Daher kann es sein, dass einige der unten genannten Änderungen keine Wirkung zeigen, da (falsche) Einträge ignoriert werden.

Alle Änderungen werden an der XServer-Konfigurationsdatei /etc/X11/xorg.conf vorgenommen. Zum Bearbeiten [1] dieser Datei werden Root-Rechte benötigt. Nach jeder Änderung muss der XServer mit Alt + Druck + K neu gestartet werden.

Achtung!

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

Alternativ kann der Rechner neu gestartet werden.

Oft ist es auch so, dass die gewünschte Auflösung unter der Ubuntu Live-CD richtig angezeigt wird. Falls dies der Fall sein sollte, kann man die xorg.conf der Live-CD z.B. auf einen USB-Stick sichern und die eigene xorg.conf damit überschreiben. Aber Achtung: Man sollte darauf achten, dass der Grafiktreiber derselbe ist!

Bildwiederholraten setzen

Oft reicht es, die korrekten Bildwiederholraten eines Röhrenmonitors in der xorg.conf einzutragen. Diese bestehen aus

  • einer horizontalen Angabe (HorizSync) in Kilohertz (kHz) und

  • einer vertikalen Frequenzangabe (VertRefresh) in Hertz (Hz)

Diese Angaben können ermittelt werden:

  • aus dem Handbuch des Monitors

  • auf der Webseite des Herstellers

  • auf der Rückseite des Monitors

  • aus einer Windows-Treiberdatei (die man ggf. auf der Webseite des Herstellers bekommt)

Diese Daten sind in der Form

Section "Monitor"
    Identifier     "Standardmonitor"
    Option         "DPMS"
    HorizSync       30.0 - 96.0
    VertRefresh     50.0 - 160.0
EndSection

im Abschnitt "Monitor" einzutragen. Damit der Monitor die Frequenzraten auch benutzt und nicht intern eigene weitergibt, hilft es oft, die Option "UseEdidFreqs" in der Sektion für die Grafikkarte zu setzen:

Section "Device"
    Identifier     "Meine Grafikkarte"
    Driver         "nvidia"
    ...
    Option         "UseEdidFreqs" "no"
EndSection

Bei Nvidia-Grafikkarten in Kombination mit dem Kernelmodul nvidia kann außerdem das Problem auftreten, dass in den GNOME-Einstellungen keine korrekte Bildwiederholrate angezeigt wird. Hier hilft die Option "DynamicTwinView" "0" in der oben genannten "Device" Sektion. Leider verliert man hierdurch auch die Möglichkeit, eine einzelne Ausgabe ("X Screen") beliebig auf mehrere Bildschirme zu verteilen.

Section "Device"
    Identifier     "Nvidia 7600GS"
    Driver         "nvidia"
    ...
    Option         "DynamicTwinView" "0"
EndSection

Alternativ lässt sich bei Verwendung von "DynamicTwinView" die tatsächliche Bildwiederholrate auch direkt über den proprietären Treiber ermitteln und ausgeben:

nvidia-settings -q RefreshRate 

Hinweis:

DynamicTwinView bietet die Möglichkeit, eine einzelne Ausgabe ("X Screen") auf mehrere Bildschirme zu verteilen. Die Bildwiederholrate wird unter X meist mithilfe der RandR-Erweiterung des XServers ermittelt. Gegenwärtig ist RandR noch nicht in der Lage, einzelne "X Screens" zu handhaben, die auf mehrere Bildschirme verteilt sind. Nvidia umgeht diese Einschränkung durch Verwendung eines "MetaModus", die Ermittlung der Bildwiederholrate mittels RandR schlägt daraufhin jedoch fehl.

Modi hinzufügen

Hilft dies auch noch nicht, sollte man darauf achten, ob man den zugehörigen Modus auch im Unterabschnitt Display in der xorg.conf eingetragen hat. Beispiel:

Section "Screen"
        Identifier      "Default Screen"
        Device          "NVIDIA Corporation NV34 [GeForce FX 5200]"
        Monitor         "S19-1"
        DefaultDepth    16
        SubSection "Display"
                Depth           16
                Modes           "1280x1024" "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           24
                Modes           "1280x1024" "1024x768" "800x600" "640x480"
        EndSubSection
EndSection

Modi entfernen

Das genaue Gegenteil: man entfernt alle anderen, nicht erwünschten Modi aus dem Unterabschnitt Display. Diese können einfach entfernt werden. Beispiel:

        SubSection "Display"
                Depth           16
                Modes           "1280x1024"
        EndSubSection
        SubSection "Display"
                Depth           24
                Modes           "1280x1024"
        EndSubSection

Modelines benutzen

Die letzte Möglichkeit ist das Erzwingen einer Auflösung bzw. Bildwiederholrate mit den Archiv/XServer Modelines. Die konkreten Parameter können mit dem Befehl cvt ermittelt werden. Die Angaben im Beispiel sind durch die eigenen Werte zu ersetzen. Die Syntax für die Auflösung 1024x768 bei 60Hz:

cvt 1024 768 60 

Die Ausgabe sieht dann so aus:

# 1024x768 59.92 Hz (CVT 0.79M3) hsync: 47.82 kHz; pclk: 63.50 MHz
Modeline "1024x768_60.00"   63.50  1024 1072 1176 1328  768 771 775 798 -hsync +vsync

In der zweiten Zeile befindet sich nach dem Wort Modeline die gesuchte Zeichenfolge, die man in die Datei /etc/X11/xorg.conf an passender Stelle der "Section "Monitor" einfügen muss. Zur Sicherheit sollte vorher eine gegebenenfalls bestehende /etc/X11/xorg.conf gesichert werden. Dann kann die Datei bearbeitet werden. Ein Beispiel, das auf die persönlichen Bedürfnisse angepasst werden muss:

# xserver-xorg-video-radeon
# native Aufloesung 1920x1080, 24 bit, 60 Hz
# 2013-01-09

Section "Device"
	Identifier	"X1200"
	Driver		"radeon"
	Screen		0
EndSection

Section "Monitor"
	Modeline	"1024x768_60.00"   63.50  1024 1072 1176 1328  768 771 775 798 -hsync +vsync
	Identifier	"1080p"
	Gamma		1
EndSection

Section "Screen"
	Identifier	"Default Screen"
	Device		"X1200"
	Monitor		"1080p"
	DefaultDepth	24
	SubSection	"Display"
		Virtual 1920	1080
		Depth	24
		Modes	"1920x1080@60"	"1024x768@60"
	EndSubSection
EndSection

Nach einem Neustart des XServers (oder auch des Rechners) sollte die gewünschte Bildschirmauflösung zur Verfügung stehen. Eine weitere Anleitung ist im Blogbeitrag Hinzufügen einer Auflösung über cvt und xrandr 🇩🇪 zu finden.

Grafische Anmeldung

Startet keine Desktop-Umgebung nach Start des XServers, bleibt die anfangs von ihm gewählte Auflösung erhalten. Deshalb muss man diese Auflösung anpassen, wenn man z.B. IceWM oder GDM in einer bestimmten Auflösung starten will. Um dies zu erreichen, setzt man die Option PreferredMode im Monitorabschnitt der /etc/X11/xorg.conf:

Section "Monitor"
   Identifier  "Configured Monitor"
   ...
   Option      "PreferredMode" "1280x1024"
EndSection

Betrieb ohne Monitor

Bei PCs ohne Monitor, die ausschließlich über VNC betrieben werden, ist die Bildschirmauflösung auf 800x600 Pixeln eingestellt. Das System wählt diese Einstellung, da beim Bootvorgang kein Monitor gefunden wurde. Hier kann es helfen, eine xorg.conf mit folgendem Inhalt zu benutzen:

Section "Device"
   Identifier "VNC Device"
   Driver "vesa"
EndSection

Section "Monitor"
   Identifier "VNC Monitor"
   HorizSync 30-70
   VertRefresh 50-75
   EndSection

Section "Screen"
   Identifier "VNC Screen"
   Device "VNC Device"
   Monitor "VNC Monitor"
   SubSection "Display"
      Modes "1024x768"
   EndSubSection
EndSection

Sonstiges

Mehrere Bildschirme

Der Betrieb mit zwei oder mehr Bildschirmen unterscheidet sich grundsätzlich nicht vom Einsatz eines einzelnen Monitors. Empfehlenswert sind zuerst die grafischen Werkzeuge der jeweiligen Desktop-Umgebung. Dann kann der Befehl xrandr verwendet werden. Am aufwendigsten ist die Konfiguration über die Datei /etc/X11/xorg.conf (siehe oben).

Unter GNOME kann man innerhalb der Einstellung "Anzeigegeräte" nicht nur die Position der Bildschirme verschieben, sondern auch einstellen, auf welchem das Menü dargestellt wird: Hierzu einfach den kleinen schwarzen Balken auf den gewünschten Monitor ziehen.

Grafiktreiber installieren

Manchmal ist der voreingestellte Grafiktreiber nicht in der Lage, eine große Auflösung oder hohe Frequenzen zu unterstützen. Hier kann es helfen, einen anderen (z.B. 3D-beschleunigten oder proprietären) Grafiktreiber für die Grafikkarte zu installieren.

  • AMD - AMDGPU-PRO installieren

  • Nvidia - nvidia installieren

  • Intel - 915resolution installieren

Weitere Anleitungen findet man auf der Übersichtsseite Grafikkarten.

Bootloader konfigurieren

Ubuntu verwendet ab 10.04 GRUB 2 und Plymouth, um einen grafischen Startbildschirm anzuzeigen. Zur Einstellung der Auflösung während des Startvorgangs helfen die Artikel Bootoptionen und GRUB 2/Aussehen (Abschnitt „Aufloesung“). Nach einer Änderung (bei GRUB 2) nicht vergessen, den Bootmanager zu aktualisieren. Danach führt man einen Neustart aus und erfreut sich an einer angepassten Auflösung.

Diese Revision wurde am 21. Dezember 2020 17:41 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Hardware, System, XServer, Grafikkarten