{{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] [:XServer: Grundlagen zur Konfiguration des XServers] [:Editor: Einen Editor öffnen] [:sudo: Root-Rechte erlangen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/Oxygen/X.png, 48, align=left)]] Es kommt vor, dass bei der Installation von Ubuntu die Grafikkarte oder der Monitor nicht automatisch erkannt und passend konfiguriert werden. In diesem Fall kann z.B. die richtige Auflösung oder Bildwiederholrate nicht eingestellt werden. Um dies zu korrigieren, muss der [:XServer:] neu konfiguriert werden. Dazu gibt es generell zwei Wege: 1. eine dynamische Konfiguration über das Programm '''xrandr''' 1. eine statische Konfiguration durch Bearbeiten der Datei '''/etc/X11/xorg.conf''' von Hand Beide Möglichkeiten haben ihre Vor- und Nachteile. Daher hängt es vom Einzelfall ab, für welchen Weg man sich entscheiden sollte. Generell gilt, dass man sich für den in diesem Artikel beschriebenen zweiten Weg nur dann entscheiden sollte, wenn * [:RandR:] bzw. das Programm xrandr nicht weiterhelfen * und man eine systemweite Lösung braucht Zuerst sollte man aber immer ausprobieren, ob nicht eine Lösung mit den prinzipiell in allen Desktop-Umgebungen verfügbaren grafischen Werkzeugen möglich ist. = Sicherung der aktuellen Konfiguration = Prinzipiell sollte man vor dem Ändern von Konfigurationen immer eine Sicherheitskopie der entsprechenden Dateien machen. Wenn man die Situation verschlimmbessert hat, kopiert man die Sicherungskopie zurück und hat wieder einen funktionierenden XServer. Im Terminal [1] kann man eine Sicherheitskopie mit dem Befehl: {{{#!vorlage Befehl sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak }}} erzeugen. Die '''/etc/X11/xorg.conf.bak''' ist also eine garantiert funktionierende Datei, die man bei Bedarf mittels {{{#!vorlage Befehl sudo cp /etc/X11/xorg.conf.bak /etc/X11/xorg.conf }}} wieder zurückkopieren kann. {{{#!vorlage Hinweis Der XServer funktioniert heutzutage auch ohne eine xorg.conf. Daher kann es sinnvoll sein, eine eigene Konfiguration mit dem Befehl: {{{#!vorlage Befehl sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.bak \}}} zu verschieben und damit aus dem Weg zu räumen, damit sich der XServer wieder automatisch einstellen kann. }}} = XServer konfigurieren = Als zwingend nötiges Vorwissen sei an dieser Stelle auf die Grundlagen [2] und [:xorg.conf.d:] (für Eingabegeräte!) verwiesen. Dort findet man auch ein Beispiel bzw. Grundgerüst, dass als Vorlage für eigene Erweiterungen dienen kann. Zum Bearbeiten der Datei '''/etc/X11/xorg.conf''' kann ein beliebiger Editor [3] verwendet werden, der allerdings immer mit Root-Rechten [4] gestartet werden muss. Hat man die Konfiguration abgeschlossen, muss der XServer [:XServer#XServer-neu-starten:neu gestartet] werden. Gibt es beim Start Probleme, so kann man unter '''/var/log/Xorg.0.log''' das automatisch erstellte [:Logdateien:Protokoll] einsehen. == Zwei Monitore == Im Abschnitt `Section "Device"` werden die Bezeichnungen (`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. Hier ein Beispiel für ein Notebook, an das ein externer Monitor angeschlossen ist. `LVDS` ist der interne Anschluss, `VGA` der analoge Anschluss für einen externen Monitor, der über einen [wikipedia:D-Sub: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) wird so konfiguriert, dass er den Desktop erweitert (`RightOf`). === Virtuelle Auflösung === Da ein erweiterter Desktop wie ein einziger großer (virtueller) Bildschirm behandelt wird, wird zusätzlich die "gemeinsame" Auflösung über `Virtual x y` angegeben. Diese [http://www.thinkwiki.org/wiki/Xorg_RandR_1.2#the_Virtual_screen Grafik] {en} erläutert diesen Zusammenhang. Beispiele: * `Virtual 2560 1024`: zwei Monitore mit der Auflösung 1280x1024 nebeneinander (1280+1280x1024) * `Virtual 1280 2048`: zwei Monitore mit der Auflösung 1280x1024 übereinander (1280x1024+1024) In der Praxis darf man auch höhere (als die errechneten) Werte verwenden - falls die Grafikkarte deswegen aussteigt, erfolgt eine entsprechende Rückmeldung. == Zwei Grafikkarten, zwei Monitore == Diese Kombination kann sehr schwierig zu konfigurieren sein (Stichworte: Xinerama, MultiSeat). Einfacher ist es, eine Grafikkarte mit mehreren Monitor-Ausgängen zu verwenden. == Keine EDID-Informationen == Stellt ein Bildschirm keine oder falsche [wikipedia:Extended_Display_Identification_Data:EDID]-Informationen zur Verfügung, muss jeder Automatismus zur Erkennung und automatischen Konfiguration des Monitors scheitern. Dies wird in der Protokolldatei '''/var/log/kern.log''' wie folgt vermerkt: {{{ [ 0.298125] BIOS EDD facility v0.16 2004-Jun-25, 0 devices found [ 0.298127] EDD information not available. }}} Es gibt zwei Varianten, um die erforderlichen Bildschirmparameter anzugeben: * [:RandR#Aufloesung:] (im laufenden Betrieb bzw. dynamisch) * [:Bildschirmauflösung#Bildwiederholraten-setzen:] (statisch) === Beispiel === [[Bild(./edid_fehler.jpg, align=right)]] Die Schrift (im Anmeldebildschirm) ist viel zu groß/klein, obwohl die Einstellungen unter ''"Einstellungen -> Erscheinungsbild -> Schriftarten"'' in Ordnung sind. Weiterhin liefert der Befehl {{{#!vorlage Befehl xdpyinfo | grep resolution }}} völlig absurde Werte. Anschließend öffnet man sie mit Root-Rechten zum Bearbeiten und sucht die Sektion `Device` der Grafikkarte heraus. Hier fügt man die Option `"UseEdidFreqs" "no"` (früher wurde auch `"NoDDC" "1"` verwendet) ein, so dass es am Ende so aussieht: {{{ Section "Device" ... Option "UseEdidFreqs" "no" EndSection }}} Um die Änderungen zu testen, muss man den X-Server neu starten. Da mit der Option verhindert wird, dass die Grafikkarte Informationen über den angeschlossenen Monitor automatisch ermittelt, muss man die Auflösung und andere Parameter des Bildschirms von Hand einstellen (siehe oben). == Framebuffer zu klein == Falls man einen zweiten Monitor im laufenden Betrieb anschließt, kann es passieren, dass [:RandR:xrandr] nicht die richtige Auflösung erkennen kann. Das liegt daran, dass der [wikipedia: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 Auflösung von 1024x768 angeschlossen und schließt einen zweiten Monitor mit einer 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 manuell eintragen. Um eine maximale Auflösung von 2304x1024 (1024+1280x1024) anzeigen zu können, muss der Eintrag `Virtual` ergänzt werden. 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 [mark]X Y[/mark] EndSubSection EndSection }}} {{{#!vorlage Hinweis Bei bestimmten virtuellen Auflösungen läuft [:Compiz:] nicht mehr richtig und sollte dann deaktiviert werden. }}} == Rotation funktioniert nicht == Um den Bildschirm mittels [:RandR:xrandr] bei NVidia-Karten mit dem proprietären Treiber `nvidia` rotieren zu können, muss die Option ''"RandRRotation"'' aktiviert werden: {{{ Section "Device" (...) Driver "nvidia" Option "RandRRotation" "True" (...) EndSection }}} Nach einem Neustart des XServers oder des Rechners kann man nun den Bildschirm mittels {{{#!vorlage Befehl xrandr -o Orientierung }}} rotieren. = Problembehebung = == xorg.conf == Probleme im Zusammenhang mit [:RandR:] kann unter Umständen eine bereits bestehende '''/etc/X11/xorg.conf''' bereiten. Einstellungen, die RandR selbst ermitteln kann, sollten nicht (mehr) eingetragen werden. Beispiele: * doppelte Einträge für "Device" und "Screen" * Auflösungen (Modes) in der "Display"-Subsection * HorizSync- und VertRefresh-Einstellungen * "MonitorLayout"-Sections ##aasche: noch notwendig? ##Hier ein Auszug aus einer funktionierenden '''xorg.conf''' unter Verwendung einer [:Grafikkarten/ATI: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 ##}}} = Links = * [http://en.gentoo-wiki.com/wiki/X.Org/Dual_Monitors Dual Monitors] {en} - Gentoo Wiki * [:XServer:] {Übersicht} Übersichtsartikel # tag: Hardware, XServer