X: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Hbekel (Diskussion | Beiträge)
→‎TCP Port 6000 schließen: Hinweis auf /etc/X11/xinit/xserverrc hinzugefügt
KKeine Bearbeitungszusammenfassung
 
(102 dazwischenliegende Versionen von 21 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
==Xorg installieren==
{{righttoc}}
Das ''X window system'', auch ''X'' oder ''X11'' genannt, stellt unter Linux und anderen UNIX-artigen Betriebssystemen die grafische Oberfläche bereit. Die unter Linux wohl am meist genutzte Implementierung ist ''X.org''.


'''Hinweis:'''
{{installation
Vorher sollte unbedingt das System auf den neusten Stand gebracht werden
|paket=xorg-server
|repo=extra
|name=X.org
|zusatz=xorg-xinit
|zusatzinfo=Zum einfachen starten des Servers}}


  pacman -Syu
Anschließend sollte der Treiber für die Grafikkarte installiert werden. Die folgenden Artikel der drei gängigen Systeme bieten hierzu detaillierte Informationen.


Xorg installieren wir durch
* [[ATI]]
* [[Intel]]
* [[Nvidia]]


  pacman -S xorg
Weitere Treiber lassen sich mittels der Suche nach {{ic|xf86-video}} über [[Pacman]] finden.


Wenn keiner der Treiber funktioniert, kann man {{Paket|xf86-video-vesa}} benutzen. Dieser Treiber ist sehr robust und sollte immer ein Bild ausgeben können, man muss allerdings auf viele Funktionen verzichten und relativ starke Performanceeinbußen hinnehmen. Er ist also eher eine Notlösung, falls der eigentliche Treiber nicht funktioniert.


Jetzt sollte der Treiber für die Grafikkarte installiert werden. Es stehen folgende zur Verfügung:
==Konfiguration==
  xf86-video-apm
''X.org'' wird über die Dateien in
xf86-video-ark
  /etc/X11/xorg.conf.d/
xf86-video-ati
konfiguriert.
xf86-video-chips
xf86-video-cirrus
xf86-video-dummy
xf86-video-fbdev
xf86-video-glint
xf86-video-i128
xf86-video-i740
xf86-video-i810
xf86-video-imstt
xf86-video-intel
xf86-video-mga
xf86-video-neomagic
xf86-video-nv
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
xf86-video-radeonhd


Dieser wird mit
Eine komplette Konfigurationsdatei wie bis zum X-Server 1.7 unter ''/etc/X11/xorg.conf'' ist nicht mehr notwendig.  
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:
Jetzt können unter ''/etc/X11/xorg.conf.d/'' verschiedene Dateien mit der Endung ''*.conf'' angelegt werden z.B. für die Maus und Tastatur. Die Konfigurationsdateien werden alphabetisch eingelesen, was ermöglicht eine Einstellung mit einer später folgenden Datei zu überschreiben.
* [[Nvidia|Nvidia-Grafikkartentreiber installieren]]
* [[ATI|ATI-Grafikkartentreiber installieren]]


Wer einen der folgenden Intelgrafikchipsätze besitzt sollte anstelle des "xf86-video-i810" den neuren "xf86-video-intel" Treiber installieren der u.a auch Hardwarebeschleunigung bietet.
===Eingabegeräte===
i810
Eingabegeräte lassen sich mittels ''InputClasses'' konfigurieren. Sie beziehen sich nicht auf ein einzelnes Gerät sondern auf eine ganze Klasse von Geräten. Dazu wird eine ''Section "InputClass"'' angelegt, in der mittels ''matches'' festgelegt wird, auf welche Geräte die nachfolgenden Einstellungen zutreffen sollen.
i810-dc100
i810e
i815
i830
i845
i852
i855
i915
i945
i965


Dies reicht eigentlich schon, aber da wir ein kompletteres Xorg haben wollen installieren wir auch noch
Soll lediglich ein deutsches Tastaturlayout eingestellt werden, befinden sich im Beitrag [[Arch_Linux_auf_Deutsch_stellen|Arch Linux auf deutsch stellen]] weitere Informationen dazu.


  pacman -S xorg-xdm xorg-utils xorg-fonts-misc xorg-fonts-encodings
Dieses Beispiel weist allen Tastaturen ein deutsches Tastaturlayout zu:
  xorg-fonts-alias xorg-fonts-75dpi xorg-fonts-100dpi xorg-font-utils
Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "de"
        Option "XkbVariant" "deadgraveacute"
EndSection


==Xorg konfigurieren==
Und wird z.B. unter ''/etc/X11/xorg.conf.d/00-keyboard.conf'' abgespeichert.


Xorg wird über die Datei /etc/X11/xorg.conf konfiguriert. Es gibt mehrere Möglichkeiten, diese zu erstellen.
Es lassen sich auch mehrere ''Match*'' Option verwenden, um die Geräteklasse genauer anzugeben. Folgende Optionen sind verfügbar:


===Xorg -configure===
{| {{prettytable}}
|style="width:30%;background-color:#E5E5E5"|'''Option'''
|style="width:70%;background-color:#E5E5E5"|'''Beschreibung'''
|-
|MatchIsPointer, MatchIsKeyboard, MatchIsTouchpad, MatchIsTouchscreen, MatchIsJoystick
|trifft auf die jeweiligen Geräte zu
|-
|MatchProduct "foo<nowiki>|</nowiki>bar"
|trifft auf alle Geräte zu, deren Name ''foo'' oder ''bar'' enthält
|-
|MatchVendor "foo<nowiki>|</nowiki>bar"
|trifft auf alle Geräte zu, deren Herstellername ''foo'' oder ''bar'' enthält
|-
|MatchDevicePath "/dev/input/event*"
|trifft auf alle Geräte zu, deren Pfad mit ''/dev/input/event'' beginnen
|-
|}


Einfach
Die Optionen für die jeweiligen Treiber finden sich in den Manpages.
  Xorg -configure
als root ausführen. Nun
  X -config /root/xorg.conf.new
ausführen, um zu testen, ob es geht (beenden mit Strg+Alt+Backspace). Treten keine Probleme auf:
  mv /root/xorg.conf.new /etc/X11/xorg.conf


===hwd===
z.B.
man xorg.conf


Alternativ kann man auch mittels [[hwd]] seine xorg.conf erstellen lassen.
Eine Möglichkeit um die ''MatchProduct'' und ''MatchVendor'' anzuzeigen ist
  udevadm info --export-db | grep  -Ew "(NAME|ID_VENDOR)"


==xorg.conf editieren==
===TCP Port 6000 schließen===
Standardmäßig startet X 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"


Die xorg.conf  befindet sich unter /etc/X11/xorg.conf .
Falls X per kdm gestartet wird, scheint das ''startx'' Script nicht ausgeführt zu werden.
Zum editieren also einfach den Editor der Wahl, z.B. nano benutzen


  nano /etc/X11/xorg.conf
In diesm Fall muss die Option ''-nolisten tcp'' in der Datei ''/usr/share/config/kdm/kdmrc'' zu der Variablen ''ServerCmd'' hinzugefügt werden.
ServerCmd=/usr/bin/X -br -nolisten tcp


Hier kann man nun verschiedene Einstellungen tätigen.
Die -br Option bewirkt, dass X mit einem schwarzen root-Fenster startet. Weitere Optionen des X Servers findet man auf der man page.
man Xserver


===Beispiele===
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


'''''Monitor Sektion:'''''  
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''.


'''Horizontal Sync einstellen'''
Der erste Abschnitt ''-nolisten tcp'' ist unter Archlinux bereits eingetragen.
 
  HorizSync      30,0 - 82,0
 
'''Refresh Rate'''
 
  VertRefresh    56,0 - 76,0
 
'''''Screen Sektion:'''''
 
'''Farbequalität (BIT)'''
 
  Depth 24
 
'''Auflösung'''
 
  Modes "1280x1024" "1024x768" "800x600"
 
'''Deutsches Tastaturlayout setzen'''
 
Unter "InputDevice" folgendes hinzufügen
  Option        "XkbLayout" "de"
  Option        "XkbVariant" "nodeadkeys"
  Option        "XkbModel" "pc105"
 
'''''Device Sektion:'''''
 
'''Intel Grafikkarten mit ''xf86-video-intel-Treiber'''''
 
Bei diesem Treiber kann es passieren, dass die Performance schlechter ist als mit dem vorher eingesetzten ''xf86-video-i810''-Treiber. Dies ist besonders beim scrollen durch Webseiten oder Dateien zu bemerken.
Abhilfe sollte hier ein eingefügtes
  Option      "AccelMethod"  "xaa"
schaffen.
 
'''Openchrome-Treiber'''
 
Bei Verwendungen des openchrome-Treiber für diverse VIA-Chipsätze sollte beim Auftreten von Artefakten und 'zerpflückten' Fenstern die
  Option    "EnableAGPDMA"              "false"
gesetzt werden. Bitte auch bei Verwendung dieses Treibers nicht den KDEmod-Fancy oder KDEmod-FancyGL Splash verwenden, der Rechner könnte u. U. einfrieren.


==Xorg starten==
==Xorg starten==
Gestartet wird der ''X.org'' über ''/usr/bin/startx'' oder per [[Login-Manager]]. Bei der startx-Methode gibt es mehrere Möglichkeiten:


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 manuell ausführen'''
startx muss nach dem Login manuell ausgeführt werden
 
  $ startx
 


*'''Nach Login automatisch ausführen'''
===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:
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
  if [ "$(tty)" = "/dev/tty1" ]; then
     startx
     startx
  fi
  fi
Zeile 163: Zeile 106:
Soll der User beim Beenden von X automatisch wieder ausgeloggt werden, kann man noch ''logout'' hinzufügen:
Soll der User beim Beenden von X automatisch wieder ausgeloggt werden, kann man noch ''logout'' hinzufügen:


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


===Mittels automatischem Login ausführen===
Nebst dem vorherigen Punkt ist folgendes durchzuführen:


*'''Ohne Login automatisch ausführen'''
cp /usr/lib/systemd/system/getty@.service /etc/systemd/system/autologin@tty1.service
startx wird beim Booten automatisch (ohne Login) ausgeführt.
Dazu muss die /etc/inittab folgendermaßen angepasst werden:


aus
In der kopierten Datei folgende Zeile suchen und ändern:
von
ExecStart=-/sbin/agetty --noclear %I
nach
ExecStart=-/sbin/agetty --noclear -a <username> %I 38400


id:3:initdefault:
Wobei ''<username>'' durch den Namen des Benutzers, welcher automatisch angemeldet (und ergo in dessen Benutzerkontext der Xserver gestartet) werden soll, ersetzt werden muss.<br>
  ...
Den normalen getty Service deaktivieren:
  x:5:respawn:/usr/X11R6/bin/xdm -nodaemon
  systemctl disable getty@tty1
Den neuen Service aktivieren:
  systemctl enable autologin@tty1


wird
Beim nächsten Neustart wird der Rechner den Benutzer ''<username>'' automatisch auf ''tty1'' anmelden.<br>
Da dabei die <code>~/.bash_profile</code> (s.o.) ausgeführt wird, wird im folgenden der Xserver gestartet.


id:5:initdefault:
===Ohne Benutzerlogin starten===
...
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.
Um den Xserver gänzlich ohne Benutzerlogin zu starten, muss der Xserver als Systemd.service als ''root'' gestartet werden, da die ''rootless'' Funktion des Xservers nur mit einer Login Session (s.o.) funktioniert.


==TCP Port 6000 schließen==
{{hc|1=/etc/systemd/system/xorg-server.service|2=
[Unit]
Description=Plain X.org server
Conflicts=getty@tty7.service display-manager.service


Standardmäßig lauscht Xorg auf dem TCP Port 6000. Um dies zu unterbinden muss die Option "-nolisten tcp" in der Datei
[Service]
/usr/bin/startx zu der Variablen "defaultserverargs" hinzugefügt werden.
Type=simple
ExecStart=/usr/bin/Xorg vt7 -nolisten tcp -noreset
Restart=on-failure


  defaultserverargs="-nolisten tcp"
[Install]
WantedBy=graphical.target}}
Dieses Unit startet den Xserver als ''root'' auf dem virtuellen Terminal Nr. 7 (''vt7'', [Strg]+[Alt]+[F7]).<br>
Entsprechend konfligiert er daher mit ''getty@tty7'' da nur einer der beiden Dienste auf dem entsprechenden Terminal gestartet werden kann.<br>
Sebstredend kann ''vt7'' durch ein anderes Terminal oder ein virtuelles Display ersetzt werden.


Falls Xorg per kdm gestartet wird scheint das startx script nicht ausgeführt zu werden.
==Fehlersuche==
In diesm Fall muss die Option "-nolisten tcp" in der Datei /opt/kde/share/config/kdm/kdmrc zu der Variablen "ServerCmd" hinzugefügt werden.
Bei der Fehlersuche kann es hilfreich sein einen Blick in die Xorg Log Datei zu werfen.  


  ServerCmd=/usr/bin/X -br -nolisten tcp
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
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.
==Bekannte Probleme==
===X kann ACPI nicht laden===
Steht in /var/log/Xorg.0.log
(WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)


  $ startx -- -nolisten tcp
so liegt das wahrscheinlich daran, dass kein acpid-Daemon läuft.


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.
Damit ACPI läuft muss das Paket installiert werden, mit
pacman -S acpid
Anschließend noch den acpid Daemon aktivieren
systemctl enable acpid


==Fehlersuche==
===Strg+Alt+Backspace beendet X nicht===
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.  
Die Tastenkombination Strg+Alt+Backspace zum sofortigen beenden von X ist standardmäßig deaktiviert.


  grep -e WW -e EE /var/log/Xorg.0.log
Um das gewünschte Verhalten zu erhalten, muss
  Option "XkbOptions" "terminate:ctrl_alt_bksp"
in der Datei /etc/X11/xorg.conf.d/00-keyboard.conf hinzugefügt werden.<br>
Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "de"
        Option "XkbVariant" "deadgraveacute"
        Option "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection


==Links==
==Siehe auch==
*[http://www.x.org Xorg Homepage]
* [[Synaptics Touchpad Treiber|Synaptics Touchpad Treiber]]
*[[:Kategorie: Window / Desktop -Manager| Window / Desktop -Manager]]
* [[Arch_Linux_auf_Deutsch_stellen|Deutsches Tastaturlayout]]
*[[Nvidia|Nvidia-Grafikkartentreiber installieren]]
* [[Schriftarten]]
*[[ATI|ATI-Grafikkartentreiber installieren]]
* [[Login-Manager]]
*[[Schriftarten]]
*[[Login-Manager]]


==Weblinks==
* [http://www.x.org Xorg Homepage] {{sprache|en}}


[[Kategorie: Installation]]
[[Kategorie: X11]]
[[Kategorie: Konfiguration]]
[[en:Xorg]]

Aktuelle Version vom 7. Januar 2022, 10:16 Uhr

Das X window system, auch X oder X11 genannt, stellt unter Linux und anderen UNIX-artigen Betriebssystemen die grafische Oberfläche bereit. Die unter Linux wohl am meist genutzte Implementierung ist X.org.

Installation

X.org ist als xorg-server in extra verfügbar, und kann von dort mittels Pacman installiert werden.

# X.org an sich
pacman -S xorg-server

# Zum einfachen starten des Servers
pacman -S xorg-xinit

Anschließend sollte der Treiber für die Grafikkarte installiert werden. Die folgenden Artikel der drei gängigen Systeme bieten hierzu detaillierte Informationen.

Weitere Treiber lassen sich mittels der Suche nach xf86-video über Pacman finden.

Wenn keiner der Treiber funktioniert, kann man xf86-video-vesa benutzen. Dieser Treiber ist sehr robust und sollte immer ein Bild ausgeben können, man muss allerdings auf viele Funktionen verzichten und relativ starke Performanceeinbußen hinnehmen. Er ist also eher eine Notlösung, falls der eigentliche Treiber nicht funktioniert.

Konfiguration

X.org wird über die Dateien in

/etc/X11/xorg.conf.d/

konfiguriert.

Eine komplette Konfigurationsdatei wie bis zum X-Server 1.7 unter /etc/X11/xorg.conf ist nicht mehr notwendig.

Jetzt können unter /etc/X11/xorg.conf.d/ verschiedene Dateien mit der Endung *.conf angelegt werden z.B. für die Maus und Tastatur. Die Konfigurationsdateien werden alphabetisch eingelesen, was ermöglicht eine Einstellung mit einer später folgenden Datei zu überschreiben.

Eingabegeräte

Eingabegeräte lassen sich mittels InputClasses konfigurieren. Sie beziehen sich nicht auf ein einzelnes Gerät sondern auf eine ganze Klasse von Geräten. Dazu wird eine Section "InputClass" angelegt, in der mittels matches festgelegt wird, auf welche Geräte die nachfolgenden Einstellungen zutreffen sollen.

Soll lediglich ein deutsches Tastaturlayout eingestellt werden, befinden sich im Beitrag Arch Linux auf deutsch stellen weitere Informationen dazu.

Dieses Beispiel weist allen Tastaturen ein deutsches Tastaturlayout zu:

Section "InputClass"
       Identifier "system-keyboard"
       MatchIsKeyboard "on"
       Option "XkbLayout" "de"
       Option "XkbVariant" "deadgraveacute"
EndSection

Und wird z.B. unter /etc/X11/xorg.conf.d/00-keyboard.conf abgespeichert.

Es lassen sich auch mehrere Match* Option verwenden, um die Geräteklasse genauer anzugeben. Folgende Optionen sind verfügbar:

Option Beschreibung
MatchIsPointer, MatchIsKeyboard, MatchIsTouchpad, MatchIsTouchscreen, MatchIsJoystick trifft auf die jeweiligen Geräte zu
MatchProduct "foo|bar" trifft auf alle Geräte zu, deren Name foo oder bar enthält
MatchVendor "foo|bar" trifft auf alle Geräte zu, deren Herstellername foo oder bar enthält
MatchDevicePath "/dev/input/event*" trifft auf alle Geräte zu, deren Pfad mit /dev/input/event beginnen

Die Optionen für die jeweiligen Treiber finden sich in den Manpages.

z.B.

man xorg.conf

Eine Möglichkeit um die MatchProduct und MatchVendor anzuzeigen ist

 udevadm info --export-db | grep  -Ew "(NAME|ID_VENDOR)"

TCP Port 6000 schließen

Standardmäßig startet X 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 X per kdm gestartet wird, scheint das startx Script nicht ausgeführt zu werden.

In diesm Fall muss die Option -nolisten tcp in der Datei /usr/share/config/kdm/kdmrc zu der Variablen ServerCmd hinzugefügt werden.

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

Die -br Option bewirkt, dass 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.

Der erste Abschnitt -nolisten tcp ist unter Archlinux bereits eingetragen.

Xorg starten

Gestartet wird der X.org ü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/tty1" ]; then
   startx
fi

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

if [ "$(tty)" = "/dev/tty1" ]; then
   startx
   logout
fi  

Mittels automatischem Login ausführen

Nebst dem vorherigen Punkt ist folgendes durchzuführen:

cp /usr/lib/systemd/system/getty@.service /etc/systemd/system/autologin@tty1.service

In der kopierten Datei folgende Zeile suchen und ändern: von

ExecStart=-/sbin/agetty --noclear %I

nach

ExecStart=-/sbin/agetty --noclear -a <username> %I 38400

Wobei <username> durch den Namen des Benutzers, welcher automatisch angemeldet (und ergo in dessen Benutzerkontext der Xserver gestartet) werden soll, ersetzt werden muss.
Den normalen getty Service deaktivieren:

systemctl disable getty@tty1

Den neuen Service aktivieren:

systemctl enable autologin@tty1

Beim nächsten Neustart wird der Rechner den Benutzer <username> automatisch auf tty1 anmelden.
Da dabei die ~/.bash_profile (s.o.) ausgeführt wird, wird im folgenden der Xserver gestartet.

Ohne Benutzerlogin starten

Um den Xserver gänzlich ohne Benutzerlogin zu starten, muss der Xserver als Systemd.service als root gestartet werden, da die rootless Funktion des Xservers nur mit einer Login Session (s.o.) funktioniert.

/etc/systemd/system/xorg-server.service
[Unit]
Description=Plain X.org server
Conflicts=getty@tty7.service display-manager.service

[Service]
Type=simple
ExecStart=/usr/bin/Xorg vt7 -nolisten tcp -noreset
Restart=on-failure

[Install]
WantedBy=graphical.target

Dieses Unit startet den Xserver als root auf dem virtuellen Terminal Nr. 7 (vt7, [Strg]+[Alt]+[F7]).
Entsprechend konfligiert er daher mit getty@tty7 da nur einer der beiden Dienste auf dem entsprechenden Terminal gestartet werden kann.
Sebstredend kann vt7 durch ein anderes Terminal oder ein virtuelles Display ersetzt werden.

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

X kann ACPI nicht laden

Steht in /var/log/Xorg.0.log

(WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)

so liegt das wahrscheinlich daran, dass kein acpid-Daemon läuft.

Damit ACPI läuft muss das Paket installiert werden, mit

pacman -S acpid

Anschließend noch den acpid Daemon aktivieren

systemctl enable acpid

Strg+Alt+Backspace beendet X nicht

Die Tastenkombination Strg+Alt+Backspace zum sofortigen beenden von X ist standardmäßig deaktiviert.

Um das gewünschte Verhalten zu erhalten, muss

Option "XkbOptions" "terminate:ctrl_alt_bksp"

in der Datei /etc/X11/xorg.conf.d/00-keyboard.conf hinzugefügt werden.

Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "de"
        Option "XkbVariant" "deadgraveacute"
        Option "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection

Siehe auch

Weblinks