X

Aus wiki.archlinux.de

Installation

Xorg installieren wir durch

 pacman -Sy xorg

Jetzt sollte der Treiber für die Grafikkarte installiert werden. Es stehen folgende zur Verfügung:

xf86-video-apm
xf86-video-ark
xf86-video-ati
xf86-video-chips
xf86-video-cirrus
xf86-video-dummy
xf86-video-fbdev
xf86-video-glint
xf86-video-i128
xf86-video-i740
xf86-video-imstt
xf86-video-intel
xf86-video-mga
xf86-video-neomagic
xf86-video-nv
xf86-video-radeonhd
xf86-video-rendition
xf86-video-s3
xf86-video-s3virge
xf86-video-savage
xf86-video-siliconmotion
xf86-video-sis
xf86-video-sisusb
xf86-video-tdfx
xf86-video-trident
xf86-video-tseng
xf86-video-unichrome
xf86-video-v4l
xf86-video-vesa
xf86-video-vga
xf86-video-via
xf86-video-vmware
xf86-video-voodoo

Dieser wird mit

pacman -S xf86-video-<Treiberpaket>

installiert. Der "xf86-video-vesa" sollte im Regelfall immer funktioniern, er bietet allerdings nur wenige Funktionen.

Für NVIDIA bzw. ATI Grafikkarten gibt es properitäre Treiber, die volle 3D-Unterstützung bieten:

Konfiguration

X.org wird über die Datei /etc/X11/xorg.conf konfiguriert. Diese ist aber seit X.org 7.4 nicht mehr zwingend notwendig, falls keine proprietären Treiber verwendet werden sollen, da Bildschirm, Maus und Tastatur automatisch erkannt werden sollten. Als Treiber für Eingabegeräte wird dann evdev verwendet. Eingabegeräte können aber auch auf herkömmliche weise konfiguriert werden.

xorg.conf erstellen

Sollte die xorg.conf dennoch nötig sein (z.B. wenn man proprietäre Treiber verwenden möchte), einfach

 X -configure

als root ausführen und die Datei, die als Basis für weitere Einstellungen dienen kann, nach /etc/X11 kopieren.

 mv /root/xorg.conf.new /etc/X11/xorg.conf

Einstellungen

Monitor Sektion:

Horizontal Sync einstellen

 HorizSync       30,0 - 82,0

Refresh Rate

 VertRefresh     56,0 - 76,0

Screen Sektion:

Farbtiefe

 Depth 24

Auflösung

 Modes "1280x1024" "1024x768" "800x600"

Device Sektion:

Grafiktreiber

Driver "radeon"

Tastaturlayout

Ist die Autoerkennung der Eingabegeräte nicht gewünscht, kann diese deaktiviert werden.

Section "ServerFlags"
   Option "AutoAddDevices" "False"
   Option "AutoEnableDevices" "false"
EndSection

Das Tastaturlayout kann dann mittels xorg.conf konfiguriert werden. Dazu müssen in der xorg.conf die Einträge XkbLayout und XkbVariant angepasst werden.

Section "InputDevice"
Identifier     "Keyboard0"
Driver         "keyboard"
Option         "XkbLayout" "de"
Option         "XkbVariant" "nodeadkeys"
EndSection

Xorg starten

Gestartet wird der Xorg über /usr/bin/startx oder per Login-Manager. Bei der startx Methode gibt es mehrere Möglichkeiten:

  • Nach Login manuell ausführen

startx muss nach dem Login manuell ausgeführt werden.

$ startx
  • Nach Login automatisch ausführen

startx wird nach dem Login (auf der 1. Konsole) automatisch ausgeführt. Dazu folgendes am Ende der ~/.bash_profile eintragen:

if [ "$(tty)" = "/dev/vc/1" ]; then
   startx
fi

Soll der User beim Beenden von X automatisch wieder ausgeloggt werden, kann man noch logout hinzufügen:

if [ "$(tty)" = "/dev/vc/1" ]; then
   startx
   logout
fi  
  • Ohne Login automatisch ausführen

startx wird beim Booten automatisch (ohne Login) ausgeführt. Dazu muss die /etc/inittab folgendermaßen angepasst werden:

aus

id:3:initdefault:
...
x:5:respawn:/usr/X11R6/bin/xdm -nodaemon

wird

id:5:initdefault:
... 
x:5:once:/bin/su USER -l -c "/bin/bash --login -c startx >/dev/null 2>&1"

Wobei USER durch den User der X starten soll ersetzt werden muss.

TCP Port 6000 schließen

Standardmäßig lauscht Xorg auf dem TCP Port 6000. Um dies zu unterbinden muss die Option "-nolisten tcp" in der Datei /usr/bin/startx zu der Variablen "defaultserverargs" hinzugefügt werden.

 defaultserverargs="-nolisten tcp"

Falls Xorg per kdm gestartet wird scheint das startx script nicht ausgeführt zu werden. In diesm Fall muss die Option "-nolisten tcp" in der Datei /opt/kde/share/config/kdm/kdmrc zu der Variablen "ServerCmd" hinzugefügt werden.

 ServerCmd=/usr/bin/X -br -nolisten tcp

Die -br Option bewirkt das X mit einem schwarzen root Fenster startet. Weitere Optionen des X Servers findet man auf der man page.

 $ man Xserver

Nutzt man keinen Login-Manager um X zu starten und will /usr/bin/startx nicht verändern, kann man die Option(en) auch als Parameter angeben.

 $ startx -- -nolisten tcp

Dies ist jedoch nur notwendig, wenn startx mit weiteren Optionen aufgerufen wird. Werden keine Optionen übergeben, so liest X die Datei /etc/X11/xinit/xserverrc bzw ~/.xserverrc. In der ersteren ist unter Archlinux bereits -nolisten tcp eingetragen.

Fehlersuche

Bei der Fehlersuche kann es hilfreich sein einen Blick in die Xorg Log Datei zu werfen. Zur besseren Übersicht ist es empfehlenswert nur die Warnungen (WW) und Fehler (EE) anzeigen zu lassen.

grep -e WW -e EE /var/log/Xorg.0.log

Bekannte Probleme

Update auf X.org 7.4

X startet nicht mehr

Fehlermeldung ist:

 (==) Using config file: "/etc/X11/xorg.conf"
 Parse error on line 13 of section Files in file /etc/X11/xorg.conf
         "RgbPath" is not a valid keyword in this section.
 (EE) Problem parsing the config file
 (EE) Error parsing the config file
 
 Fatal server error:
 no screens found

Die Option RgbPath gibt es in der neuen version nicht mehr. Deshalb diese Zeile

 RgbPath "/usr/share/X11/rgb"

aus der /etc/X11/xorg.conf entfernen.

Downgrade auf X.org 7.3

Sollten daraufhin immer noch Probleme auftauchen hilft noch das Downgrade. Also neue Pakete löschen

 pacman -Rd xorg-server
 pacman -Rd libgl
 pacman -Rd mesa

Bei Synaptics-Touchpads

 pacman -Rd xf86-input-synaptics

Bei Openchrome Graphiktreibern

 pacman -Rd xf86-video-openchrome
 pacman -Rd unichrome-dri

...und die alten Pakete aus dem Pacman-Cache installieren:

 cd /var/cache/pacman/pkg
 pacman -U xorg-server....{1.4.2}
 pacman -U libgl..........{7.0.3}
 pacman -U mesa...........{7.0.3}

Synaptics

 pacman -U synaptics

Openchrome

 pacman -U unichrome......{7.0.3}
 pacman -U openchrome.....{9.2.902}

Spezielles für Programme, Windowmanager

Record Extension

Die Record Extension ist im Gegensatz zu früheren Version nicht mehr im aktuellen Paket enthalten. Wer diese Erweiterung nutzen möchte sollte das Paket xorg-server mittels ABS neu bauen und dabei die Option:

--enable-record

zum configure-Aufruf der build() Funktion hinzufügen. Diese kann dann wieder wie gehabt in der xorg.conf aktiviert werden:

Section "Module"
    Load "record"
EndSection

Links