ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

RandR

Artikel wird überarbeitet

Dieser Artikel wird momentan überarbeitet.

  • Geplante Fertigstellung: 7.1.2012

  • Derzeitig gültiger Artikel: RandR

  • Bearbeiter: quesst

Solltest du dir nicht sicher sein, ob an dieser Anleitung noch gearbeitet wird, kontrolliere das Datum der letzten Änderung und entscheide, wie du weiter vorgehst.


Achtung: Insbesondere heißt das, dass dieser Artikel noch nicht fertig ist und dass wichtige Teile fehlen oder sogar falsch sein können. Bitte diesen Artikel nicht als Anleitung für Problemlösungen benutzen!

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Wiki/Icons/Oxygen/X.png RandR steht für "Resize and Rotate" und ist ab Ubuntu 8.10 das Standardwerkzeug zur Konfiguration des X-Servers. RandR erkennt viele Monitore beim Anstecken an die Grafikkarte automatisch und passt die X-Konfiguration dynamisch an. Über RandR lässt sich auch die Auflösung mehrerer angeschlossener Monitore bzw. Beamer usw. sowie ein erweiterter Desktop recht einfach konfigurieren sowie die Pivot-Funktion eines Bildschirms nutzen.

RandR wird von den freien Grafiktreibern für den XServer in der Regel in vollem Umfang unterstützt. Der Closed-Source-Treiber von NVidia unterstützt jedoch zumeist nur einen älteren RandR-Standard (oder den neueren nur unvollständig). Wichtig wird dies bei mehreren Monitoren, da die Konfiguration eines erweiterten Desktops die vollständige Unterstützung von RandR 1.2 voraussetzt, wie sie der Hersteller-eigene Treiber von ATI/AMD seit geraumer Zeit bieten kann. Nvidia stellt daher als Alternative nvidia-settings und für einen erweiterten Desktop den Betriebsmodus TwinView zur Verfügung, der allerdings die RandR-Unterstützung komplett deaktiviert.

Konfiguration

Dynamische Konfiguration in der Konsole

Zuerst fragt man ab, ob alle Anschlüsse korrekt erkannt werden [1]:

xrandr 

Die Ausgabe sieht in etwa so aus:

Screen 0: minimum 320 x 200, current 1280 x 800, maximum 3200 x 1200
VGA-0 disconnected (normal left inverted right)
S-video disconnected (normal left inverted right)
DVI-0 disconnected (normal left inverted right)
LVDS connected 1280x800+0+0 (normal left inverted right) 0mm x 0mm
   1280x800       60.2*+   60.0
   1280x768       60.0
   1024x768       60.0
   800x600        60.3
   640x480        59.9

Beispiele
Bezeichnung Anschluss
VGA analoge VGA-Buchse (D-Sub)
DisplayPort digitale DisplayPort-Buchse
DVI oder TMDS digitale DVI-Buchse
HDMI digitale HDMI-Buchse
LVDS interner Monitor bei Notebooks
S-video, TV oder DIN TV-Ausgang

Hinweis:

Die konkrete Bezeichnung hängt von der verwendeten Grafikkarte ab. Beispiel: Intel verwendet VGA, der freie ATI-Treiber stattdessen VGA-0. Des Weiteren findet man auch default als Platzhalter für den aktuell genutzten Anschluss bzw. Bildschirm.

Sobald ein zweiter Monitor eingesteckt ist, kann man ihn mit folgendem Befehl aktivieren:

xrandr --auto 

Falls man damit nicht den gewünschten Effekt erzielt, kann man die Parameter von Hand eingeben, beispielsweise:

xrandr --output DVI-0 --auto --right-of LVDS 

./xrandr-kde.png Um den Befehl nicht jedesmal von Hand ausführen zu müssen, kann man auch ein Symbol anlegen. Unter KDE sieht das z.B. wie im rechten Bild aus. Falls die Verbindung zum Monitor getrennt wird, kann man damit auch den virtuellen Desktop wieder auf die Größe des primären Bildschirms bringen.

Falls man eine Fehlermeldung wie

xrandr: screen cannot be larger than 1920x1200 (desired size 3200x1200)

bekommt, muss man in der /etc/X11/xorg.conf folgendes ergänzen (in einem Editor mit Root-Rechten öffnen, [2]):

Section "Screen"
        ...
        SubSection "Display"
                Virtual 3200    1200
        EndSubSection
EndSection

wobei die "Virtual"-Sektion natürlich den eigenen Anforderungen angepasst werden muss. Um den Monitor zu deaktivieren, führt man folgenden Befehl aus (Anschluss anpassen):

xrandr --output DVI-0 --off 

Statische Konfiguration über xorg.conf

Für Benutzer, die dies nicht jedes Mal neu einstellen möchten, empfiehlt sich doch eine Bearbeitung der /etc/X11/xorg.conf [2]. Dabei werden in die Device-Section die Identifier der angeschlossenen Monitore eingetragen. Dabei muss jeder Monitor einem Anschluss der Grafikkarte zugewiesen werden. Die Namen dieser Anschlüsse können mit dem Befehl xrandr ermittelt werden (siehe oben).

Hier ein Beispiel für ein Laptop, an das ein externer Monitor angeschlossen ist. LVDS ist der interne Anschluss bei Laptops, VGA der Anschluss für einen externen Monitor, der über einen RGB(DSUB)-Stecker angeschlossen ist. Die Identifier Internes Display und Externer Monitor können frei gewählt werden und beziehen sich auf die Monitor-Sections, die so aussehen kann:

  Section "Device"
    Identifier "Meine Grafikkarte"
    ...
    Option "Monitor-LVDS" "Internes Display"
    Option "Monitor-VGA" "Externer Monitor"
  EndSection
  Section "Monitor"
    Identifier "Internes Display"
  EndSection
  Section "Monitor"
    Identifier "Externer Monitor"
    Option "RightOf" "Internes Display"
  EndSection
  Section "Screen"
    Identifier      "Default Screen"
    Monitor         "Internes Display"
    ...
    SubSection "Display"
        Virtual    3200 1200
    EndSubSection
  EndSection

In den Monitor-Sections lassen sich weitere Konfigurationen für die Monitore vornehmen. Einer der beiden Monitore (in diesem Fall der externe) kann so konfiguriert werden, dass er den Desktop erweitert (RightOf bzw. LeftOf).

Statische Konfiguration ohne xorg.conf

Seit Ubuntu 9.04 übernimmt XRandR die gesamte Verwaltung des X-Servers. Will man XRandR diese Kontrolle nicht wieder entziehen, aber trotzdem eine statische Konfiguration eines externen Monitors anlegen, empfiehlt es sich, ein Startskript für XRandR zu erstellen. Hierzu legt man mit Root-Rechten die Datei /etc/X11/Xsession.d/45custom_xrandr-settings [2] mit folgendem Inhalt an:

#Erweiterter Desktop bei X-Server Start

# Hier die Bezeichner der Anschlüsse eintragen
EXTERNAL_OUTPUT="VGA"
INTERNAL_OUTPUT="LVDS"
# EXTERNAL_LOCATION kann sein: left, right, above, oder below
EXTERNAL_LOCATION="right"
 
case "$EXTERNAL_LOCATION" in
       left|LEFT)
               EXTERNAL_LOCATION="--left-of $INTERNAL_OUTPUT"
               ;;
       right|RIGHT)
               EXTERNAL_LOCATION="--right-of $INTERNAL_OUTPUT"
               ;;
       top|TOP|above|ABOVE)
               EXTERNAL_LOCATION="--above $INTERNAL_OUTPUT"
               ;;
       bottom|BOTTOM|below|BELOW)
               EXTERNAL_LOCATION="--below $INTERNAL_OUTPUT"
               ;;
       *)
               EXTERNAL_LOCATION="--left-of $INTERNAL_OUTPUT"
               ;;
esac
 
xrandr |grep $EXTERNAL_OUTPUT | grep " connected "
if [ $? -eq 0 ]; then
    xrandr --output $INTERNAL_OUTPUT --auto --output $EXTERNAL_OUTPUT --auto $EXTERNAL_LOCATION
else
    xrandr --output $INTERNAL_OUTPUT --auto --output $EXTERNAL_OUTPUT --off
fi

Anschließend diese Datei ausführbar machen [3], und XRandR steuert den externen Monitor automatisch korrekt an - falls dieser beim Start des X-Servers angeschlossen ist. Eventuell muss das Skript noch um den Eintrag

xrandr --dpi xxx

erweitert werden, falls die Schriftgrößen nicht passen.

In der Datei /etc/X11/Xsession.d/45custom_xrandr-settings können auch nicht erkannte Auflösungen dauerhaft gespeichert werden. Hier das Beispiel für eine Auflösung von 1280x960 und 85 Hz Bildwiederholfrequenz:

xrandr --newmode "1280x960_85.00"  148.25  1280 1368 1504 1728  960 963 967 1011 -hsync +vsync
xrandr --addmode DVI-0 "1280x960_85.00"
xrandr --output DVI-0 --mode "1280x960_85.00"

Die "Modeline" hinter xrandr --newmode wurde mit dem Kommandozeilenprogramm cvt ermittelt:

cvt 1280 960 85 

Die Bezeichnung des Ausgabegerätes, hier DVI-0, wird mit dem Befehl "xrandr" in der Zeile connected angezeigt. Sollten mehrere Monitore angeschlossen sein, muss das Ausgabegerät gewählt werden, für das die Auflösung eingerichtet werden soll.

Um einfach nur die Bildwiederholfrequenz einzustellen, folgende Befehlszeile in die Datei einfügen:

xrandr --output DVI-0 --mode "1280x960_85.00" --rate 75

Statische Konfiguration für nur einen Nutzer

Man legt in seinem Homeverzeichnis die Datei .xprofile an und kann nun dieselben Befehle wie in der oben genannten Variante eintragen.

Grafische Einrichtung unter GNOME

GRandR ist die grafische Oberfläche für RandR, mit der die Konfiguration sehr einfach ist. Allerdings muss diese Einrichtung nach jedem Neustart erneut erfolgen. Es ist folgendes Paket notwendig [4]:

  • grandr (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install grandr 

Oder mit apturl installieren, Link: apt://grandr

Teilweise funktioniert GRandR trotzdem nicht einwandfrei. Externe Monitore können beispielsweise nicht geklont, sondern nur erweiternd angeschlossen werden. Hier kann das Programm ARandR 🇬🇧 weiterhelfen, das ebenfalls über die offiziellen Paketquellen verfügbar ist:

  • arandr (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install arandr 

Oder mit apturl installieren, Link: apt://arandr

Aber auch hier gibt es das Problem, dass die Einstellungen mit der Abmeldung bzw. dem Herunterfahren verloren geht. Allerdings lassen sich die Einstellungen speichern und mit dem Befehl:

arandr Pfad/zur/Datei 

wiederherstellen. Man kann das Programm daher auch via Autostart ausführen.

Da beide der genannten Programme auf GTK+ basieren, kann man sie auch unter Xubuntu und Lubuntu verwenden (falls man die dort vorgesehenen Werkzeuge nicht nutzen mag).

Grafische Einrichtung unter KDE4

Für KDE gibt es das kleine Programm myKrandr 🇬🇧 zur Einrichtung mehrerer Monitore. Wie bei GrandR muss die Einrichtung nach jedem Neustart erneut erfolgen.

Achtung!

Dieses Programm ist eine frühe Entwicklerversion.

Benutzung

Grundsätzlich gibt es bei xrandr zwei verschiedene Arten von Optionen: allgemeine und monitorspezifische. Letztere beziehen sich auf den Monitor, welcher durch das vorausgehende --output DEVICE bezeichnet ist. Dabei können mehrere monitorspezifische Optionen hintereinander geschaltet werden, ohne jedesmal den --output Befehl wiederholen zu müssen. Ein komplexer Befehl sieht z. B. so aus:

xrandr --output LVDS1 --auto --scale 1x1 --output VGA1 --scale 1x1 --below LVDS1 --auto 

Die unten stehende Liste geht kurz auf die wichtigsten Befehle ein, eine vollständige Beschreibung findet sich in der manpage.

allgemeine Kommandos
-q Zeige Statusinformationen (dasselbe passiert bei Aufruf ohne Parameter)
--dryrunTestlauf ohne Änderungen
--fb BREITExHÖHEDie Größe des dargestellten Screens, in Pixeln (das ist nicht die Bildschirmauflösung, siehe unten)
--auto xrandr aktiviert alle angeschlossenen Monitore und versucht eine Auflösung zu finden, die auf alle Monitore passt
monitorspezifische Kommandos
--mode MODUShier kann jetzt die Auflösung angegeben werden, meist kann auf diesen Befehl verzichtet werden weil --auto gute Ergebnisse erzielt
--panning BREITExHÖHEEs wird die Umgebung der Maus dargestellt (Die BREITExHÖHE bestimmt den Bereich in dem die Maus verfolgt wird. Hier sollte meist das gleiche wie bei --fb stehen).
--scale XxYVergrößert den Bildschirm um die Faktoren X und Y, siehe unten
--autoDer Bildschirm wird mit einer automatisch gewählten Auflösung aktiviert. Wenn ein Bildschirm nicht aktiviert wird hilft es, diese Option zur Kommandozeile hinzuzufügen.
--offSchaltet den Bildschirm aus
--above DEVICEBildschirm über Bildschirm DEVICE anordnen
--below DEVICEBildschirm unter Bildschirm DEVICE anordnen
--left-of DEVICEBildschirm links von Bildschirm DEVICE anordnen
--right-of DEVICEBildschirm rechts von Bildschirm DEVICE anordnen

Scale und Panning

Wenn man einen virtuellen Bildschirm ("Screen") darstellen will, der größer als die Auflösung des darstellenden Bildschirms ist, gibt es drei Möglichkeiten. Ein solcher Fall tritt etwa auf, wenn ein Bild der Größe 1024x768 auf einem Projektor ausgegeben wird, man selbst jedoch auch noch etwas auf dem 800x480-Bildschirm eines Netbooks sehen will.

  1. Man kann man sich mit einem 800x480-Ausschnitt des größeren Bildes begnügen.

  2. Die Option --panning 1024x768 stellt den kleineren Bildschirm in eine Art Verfolgungsmodus. Dieser stellt jetzt die Umgebung des Mauszeigers dar.

  3. Mit --scale 1.28x1.6 wird der 800x480-Bildschirm so vergrößert, dass er 1024x768 Pixel darstellen kann. Die Faktoren berechnen sich aus gewünschter Auflösung, geteilt durch die Auflösung, die im Bildschirm eingestellt ist (in diesem Fall 1024/800=1,28 und 768/480=1,6). Da die beiden Faktoren (einer für die X- der andere für die Y-Achse) nicht identisch sind, wird die Anzeige in diesem Fall verzerrt. Es reicht jedoch, um zu erkennen, was auf der Folie steht.

Falls bei alledem der sichtbare Ausschnitt ungünstig verschoben ist, kann man ihn mittels der Option --pos XxY verschieben, also z.B. --pos 0x0 für die linke obere Ecke.

Probleme und Lösungen

Allgemeine Probleme

Probleme kann eine bereits bestehende /etc/X11/xorg.conf bereiten. Einstellungen, die RandR selbst ermitteln kann, brauchen nicht mehr eingetragen zu werden. Beispiele:

  • doppelte Einträge für "Device" und "Screen"

  • Auflösungen (Modes) in der "Display"-Subsection

  • HorizSync- und VertRefresh-Einstellungen

  • "MonitorLayout"-Sections

Hinweis:

Auf jeden Fall sollte man eine Kopie der alten xorg.conf als Sicherung aufheben.

Falls man die /etc/X11/xorg.conf nicht von Hand anpassen will, kann man sich bis Ubuntu 9.04 mit

sudo dpkg-reconfigure -phigh xserver-xorg 

eine neue Konfiguration erstellen lassen. Wer erfahren ist, kann auch einfach die vorhandenen xorg.conf löschen und den X-Server neu starten, wodurch automatisch eine neue xorg.conf erstellt wird.

Hier ein Auszug aus einer funktionierenden xorg.conf unter Verwendung einer ATI-Karte:

Section "Device"
        Identifier      "ATI Technologies Inc Radeon Mobility X700 (PCIE)"
        Driver          "ati"
        BusID           "PCI:3:0:0"
EndSection
Section "Monitor"
        Identifier      "Default Display"
EndSection
Section "Screen"
        Identifier      "Default Screen"
        Device          "ATI Technologies Inc Radeon Mobility X700 (PCIE)"
        Monitor         "Default Display"
EndSection
Section "ServerLayout"
        Identifier      "Default Layout"
        Screen          "Default Screen"
        InputDevice     "Generic Keyboard"
        InputDevice     "Configured Mouse"
        InputDevice     "Synaptics Touchpad"
EndSection

xrandr erkennt Auflösung nicht richtig

Sind keine EDID Informationen des Bildschirms verfügbar, wird dies in /var/log/kernel.log wie folgt protokolliert:

[    0.298125] BIOS EDD facility v0.16 2004-Jun-25, 0 devices found
[    0.298127] EDD information not available.

Für weitere Hinweise, wie in der xorg.conf die Bildschirmparameter für horizonale und vertikale Frequenzen anzugeben sind, sollte man hier weiterlesen: Bildschirmauflösung (Abschnitt „Bildwiederholraten-setzen“)

Falls man einen zweiten Monitor im laufenden Betrieb anschließt, kann es passieren, dass "xrandr" nicht die richtige Auflösung erkennen kann. Das liegt daran, dass der Framebuffer, der beim Start von X initialisiert wird, nur die Größe hat, die alle in diesem Moment angeschlossenen Monitore benötigen.

Hat man z.B. beim Rechnerstart nur einen Monitor mit einer maximalen Auflösung von 1024x768 angeschlossen und schließt einen zweiten Monitor mit einer maximalen Auflösung von 1280x1024 an, kann "xrandr" nur maximal eine Auflösung von 1024x768 einstellen (für beide Monitore!). Wenn man weiß, was für eine Auflösung man maximal benötigt, kann man diese in die /etc/X11/xorg.conf eintragen. Um eine maximale Auflösung von 2304x1792 (1024+1280 x 768x1024) anzeigen zu können, muss der Eintrag Virtual ergänzt werden. In der Praxis darf man auch höhere Werte verwenden - falls die Grafikkarte deswegen aussteigt, erfolgt eine entsprechende Rückmeldung. Beispiel:

Section "Screen"
	(...)
	SubSection "Display"
		(...)
		Virtual 2304 2048
	EndSubSection
EndSection

Wenn vom System keine xorg.conf angelegt wurde (weil sie nicht mehr zwingend notwendig ist), dann kann man sie mit folgender Grundkonfiguration anlegen:

Section "Device"
    Identifier  "Configured Video Device"
EndSection

Section "Monitor"
    Identifier  "Configured Monitor"
EndSection

Section "Screen"
    Identifier  "Default Screen"
    Monitor     "Configured Monitor"
    Device      "Configured Video Device"
    SubSection "Display"
        Virtual 1920 1200
    EndSubSection
EndSection

Hinweis:

Bei bestimmten virtuellen Auflösungen läuft Compiz nicht mehr richtig und sollte dann deaktiviert werden.

Rotation funktioniert nicht (Karten von NVIDIA)

Um den Bildschirm mittels "xrandr" rotieren zu können, muss in der /etc/X11/xorg.conf die Option RandRRotation aktiviert werden:

Section "Device"
   (...)
   Driver         "nvidia"
   Option         "RandRRotation"  "True"
   (...)
EndSection

Nach einem Neustart des X-Servers kann man nun dann den Bildschirm mittels

xrandr -o Orientierung 

rotieren.

Grandr deaktiviert Umschalttaste

Es ist möglich, dass sich die Umschalttaste nicht mehr betätigen lässt, wenn man die Tastenkombinationen aktiviert ("Hot Keys → enable Hot Keys"). Dann lassen sich keine Großbuchstaben und Umlaute mehr erzeugen. Oft wird vermutet, dass dieser Fehler an Compiz liegt (weil der Fehler nicht mehr auftritt, wenn dieses deaktiviert wird). Deaktiviert man jedoch die Tastenkombinationen bei "grandr", kann Compiz aktiv bleiben und es funktioniert wieder normal.

4:3 Auflösung auf Breitbild-Laptops

4:3 skalierte Auflösungen auf 16:9 Bildschirmen werden nicht mehr mit zwei schwarzen Bereichen rechts und links der Anzeige dargestellt, sondern werden über die verfügbare Breite gedehnt. Abhilfe schafft der Befehl:

xrandr --output LVDS1 --set "scaling mode" "Full aspect" 

Wer dies permanent einstellen will, erstellt eine Datei /etc/xdg/autostart/4-3Auflösung.desktop mit folgendem Inhalt:

[Desktop Entry]
Type=Application
Name=4-3Auflösung
Exec=xrandr --output LVDS1 --set "scaling mode" "Full aspect"

Der korrekte Anzeigename (--output xxx) muss gegebenenfalls angepasst werden und kann über den Befehl

xrandr 

ermittelt werden. Um die Änderungen nur für einen Benutzer auszuführen, genügt der Eintrag des Befehls in "System > Einstellungen > Startprogramme".

Diese Revision wurde am 4. Dezember 2011 21:23 von noisefloor erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: System, Multimedia, XServer, Hardware, Beamer