22.2X starten und beenden

Dieser Abschnitt fasst einige Informationen zum Starten und Stoppen von X zusammen. In der Regel müssen Sie sich darum nur kümmern, wenn der automatische Start von X beim Hochfahren des Rechners bzw. das Beenden von X beim Herunter- fahren nicht funktioniert bzw. wenn Sie in den Prozess manuell eingreifen möchten.

X manuell starten und beenden

Üblicherweise wird nicht X an sich gestartet, sondern ein sogenannter Display Manager. Dieses Programm kümmert sich um den Start von X, zeigt einen Login-Bildschirm an und startet nach dem Login das Desktop-System (z.B. Gnome oder KDE) bzw. einen Window Manager. Bei manchen Display Managern kann beim Login die gewünschte Sprache und das Desktop-System ausgewählt werden.

Je nach Distribution kommt als Display Manager die KDE-Variante kdm oder die Gnome-Variante gdm zum Einsatz, unter Raspbian und Ubuntu lightdm, unter aktuellen SUSE-Versionen sddm (Simple Desktop Display Manager) und unter Linux Mint mdm (Mint Display Manager). Nur noch von historischer Bedeutung ist das minimalistische Programm xdm, das ehemals der Display Manager des X Window Systems war.

Die Entwicklung unzähliger Display Manager hat primär optische Gründe und erlaubt es, das Aussehen des Display Managers an den Desktop anzupassen. Grundsätzlich ist aber jeder Display Manager in der Lage, jedes Desktop-System zu starten. Sie können also auch mit kdm Gnome starten oder mit gdm KDE!

Das Grafiksystem wird, während der Rechner hochfährt, durch das Init-System initialisiert (siehe Kapitel 25). Je nach Distribution kommen unterschiedliche Init-Systeme zum Einsatz:

Änderungen an der X-Konfiguration werden erst nach einem Neustart von X wirksam. Wie Sie X neu starten, ist aber stark distributionsabhängig.

root# service prefdm restart (CentOS 6, RHEL 6) root# systemctl restart gdm (CentOS 7, Fedora, RHEL 7) root# service gdm3 restart (Debian) root# service lightdm restart (Raspbian) root# systemctl restart display-manager (SUSE) root# service xdm restart (ältere SUSE-Versionen) root# service lightdm restart (Ubuntu)

Die obigen Kommandos sollten Sie in einer Textkonsole ausführen, nachdem Sie sich aus X ausgeloggt haben. Je nachdem, welchen Display Manager Sie einsetzen, müssen Sie in den obigen Kommandos gdm durch kdm oder xdm ersetzen. Wenn Sie X nicht neu starten, sondern beenden möchten, ersetzen Sie restart durch stop.

Manchmal ist es zweckmäßig, den automatischen X-Start zu deaktivieren – beispielsweise bei der Verwendung des Rechners als Server. Bei nahezu allen aktuellen Distributionen, die Systemd als Init-System verwenden, verändern Sie dazu einfach das Default-Target:

root# systemctl set-default multi-user.target (Grafiksystem deaktivieren) root# systemctl set-default graphical.target (Grafiksystem wieder aktivieren)

Die weiteren Ausführungen gelten nur für ältere Distributionen. Bei Debian 7 verhindern Sie mit insserv -r den automatischen Start des Display Managers durch das Init-V-System. Um X in Zukunft wieder automatisch zu starten, führen Sie insserv gdm3 aus. Anstelle von gdm3 müssen Sie je nach Desktop-System kdm oder xdm angeben, bei älteren Raspbian-Versionen lightdm.

root# insserv -r gdm3 (Grafiksystem deaktivieren, Debian 7) root# insserv gdm3 (Grafiksystem wieder aktivieren, Debian 7)

Ubuntu bis einschließlich Version 14.10 verwendet Upstart zum Start von X. Um den Start zu vermeiden, setzen Sie der mehrzeiligen Anweisung start on (...) in allen betroffenen Zeilen in der Datei /etc/init/lightdm.conf Kommentarzeichen voran.

Bei RHEL 6 und CentOS 6 sowie bei älteren SUSE-Distributionen müssen Sie in der Datei /etc/inittab den Default-Run-Level von 5 (mit Grafiksystem) auf 3 (ohne Grafiksystem) umstellen. Dazu suchen Sie nach der Zeile id:5:initdefault: und ersetzen die 5 durch eine 3.

Wenn X momentan nicht läuft und Sie rasch einige Arbeiten im Grafikmodus erledigen möchten, loggen Sie sich im Textmodus ein und führen dann das Kommando startx aus. Dabei erscheint keine Login-Box; viemehr ist derjenige Benutzer, der startx ausführt, auch der Benutzer unter X. startx ist auch das ideale Kommando, um eine geänderte X-Konfiguration unkompliziert auszuprobieren.

Während des Starts von X werden die Script-Datei /etc/X11/Xsession sowie alle Scripts im Verzeichnis /etc/X11/Xsession.d ausgeführt. Dieses Verzeichnis ist der geeignete Ort, wenn Sie während des X-Starts irgendwelche Einstellungen verändern oder sonstige Konfigurationsarbeiten durchführen möchten.

In der Vergangenheit was es möglich, mit (Strg)+(Alt)+(_í) X zu beenden (»abzuschießen«). Dabei wurden alle unter X laufenden Programme sofort beendet. Um ein unbeabsichtigtes Ende von X samt einhergehender Datenverluste zu vermeiden, ist diese Tastenkombination heute standardmäßig deaktiviert.

Bei SUSE funktioniert die Tastenkombination weiterhin, wenn sie innerhalb von zwei Sekunden zweimal hintereinander gedrückt wird. Damit Sie die Tastenkombination unter Ubuntu verwenden können, suchen Sie im Modul Region und Sprache der Systemeinstellungen nach der Option Tastenkombination zum erzwungenen Beenden des X-Servers und aktivieren diese.

Bei anderen Distributionen müssen Sie in die Konfigurationsdatei /etc/X11/xorg.conf die folgenden Zeilen einbauen, um (Strg)+(Alt)+(_í) zu aktivieren. (Nichts ist unübersichtlicher als eine doppelte Verneinung ...)

Section "ServerFlags" Option "DontZap" "false" EndSection

Konfiguration des Display Managers

gdm ist der Display Manager des Gnome-Desktops. Die Konfigurationsdateien befinden sich in /etc/gdm oder /etc/gdm3. Sie steuern unter anderem, welche Programme, Kommandos und Scripts für verschiedene Funktionen des Display Managers genutzt werden sollen.

kdm ist das KDE-Gegenstück zu gdm. Die Konfiguration von kdm erfolgt je nach Distribution durch /etc/kde4/kdm/kdmrc oder durch /usr/share/kde4/config/kdm/kdmrc. Bei zukünftigen Distributionen werden Sie in den Pfaden voraussichtlich kde4 durch kde5 ersetzen müssen. Die meisten Einstellungen von kdmrc können Sie komfortabler im Systemeinstellungsmodul Anmeldebildschirm vornehmen.

Unter Ubuntu und Raspbian kommt als Display Manager lightdm zum Einsatz. Die Konfiguration erfolgt durch zwei minimalistische Dateien in /etc/lightdm. Änderungen an diesen Dateien sind nur selten erforderlich. Mit der Anweisung allow-guest=false in lightdm.conf können Sie unter Ubuntu Gast-Sitzungen deaktivieren.

Wenn Sie mehrere Desktop-Systeme installiert haben, können Sie beim Login im Display Manager in einem Menü auswählen, welcher Desktop bzw. Window Manager gestartet werden soll. Die Daten für dieses Menü befinden sich bei den meisten Distributionen in *.desktop-Dateien im Verzeichnis /usr/share/xsession (Schlüsselwort SessionDesktopDir in der gdm-Konfiguration). Beispielsweise enthält die Desktop-Datei zum Start von Gnome die folgenden Zeilen:

[Desktop Entry] Name=GNOME Comment=This session logs you into GNOME Exec=gnome-session ...

Auto-Login

Auf Desktop-Systemen ist es oft erwünscht, dass der Standardbenutzer beim Start des Rechners automatisch eingeloggt wird. Das ist zwar ein Sicherheitsrisiko, dafür aber bequem. Bei vielen Distributionen können Sie den Auto-Login in den Systemeinstellungen konfigurieren, bei Gnome-Systemen und unter Ubuntu in der Benutzerverwaltung. Die folgenden Absätze erklären die manuelle Konfiguration.

Wenn Ihre Distribution gmd als Display Manager verwendet, fügen Sie die folgenden Zeilen in den [daemon]-Abschnitt von custom.conf ein:

# Datei /etc/gdm[3]/custom.conf ... [daemon] AutomaticLoginEnable=true AutomaticLogin=loginname

Bei kdm fügen Sie die folgende Zeile in kdmrc ein:

# Datei /etc/kde4/kdm/kdmrc ... AutoLoginUser=loginname

Bei lightdm steuert die Variable autologin-user in lightdm.conf den Auto-Login:

# Datei /etc/lightdm/lightdm.conf [SeatDefaults] autologin-user=loginname ...

SUSE sieht eigene Konfigurationsdateien für den Auto-Login von KDE und Gnome vor. Direkte Veränderungen in KDE oder Gnome sind nicht zu empfehlen, weil SuSEconfig die Einstellungen bei der nächsten Gelegenheit überschreibt. Stattdessen verändern Sie die Datei /etc/sysconfig/displaymanager. Um den Auto-Login zu deaktivieren, weisen Sie der AUTOLOGIN-Variablen eine leere Zeichenkette zu. Die Änderungen werden erst gültig, wenn Sie das Kommando SuSEconfig ausführen.

# /etc/sysconfig/displaymanager ... DISPLAYMANAGER_AUTOLOGIN="benutzername"

X-Protokolldatei

Beim Start von X werden zahlreiche Meldungen, Warnungen und eventuell auch Fehlermeldungen in der Datei /var/log/Xorg.0.log gespeichert. Dieses Startprotokoll enthält ausführliche Informationen darüber, welche Konfigurationsdatei verwendet wurde, welche Module geladen wurden, welche Probleme dabei aufgetreten sind, welche Grafikmodi aus welchen Gründen verworfen wurden etc. Einträge innerhalb der Logging-Datei sind durch folgende Codes gekennzeichnet:

(**)

Einstellung aus der Konfigurationsdatei

(++)

Einstellung aus der Kommandozeile

(==)

X-Standardeinstellung

(--)

Einstellung, die sich aus erkannter Hardware ergibt

(!!)

Hinweis

(II)

Hinweis

(WW)

Warnung

(EE)

Fehler

Falls es in /var/log/ mehrere X-Logging-Dateien gibt, halten Sie Ausschau nach der aktuellsten Datei. Aufgrund der Fülle der Informationen in Xorg.0.log gleicht die Suche nach wirklich relevanten Daten leider der sprichwörtlichen Suche nach der Nadel im Heuhaufen. Gegebenenfalls senden Sie einfach die gesamte Logging-Datei jemandem, der sich besser damit auskennt, bzw. posten sie in ein Support-Forum.

Wenn die Datei Xorg.0.log fehlt, kann dies daran liegen, dass gar nicht X selbst für die Grafik verantwortlich ist, sondern Wayland oder Mir.

X-Version feststellen

Wenn Sie wissen möchten, welche Version des X-Servers auf Ihrem Rechner verwendet wird, führen Sie das folgende Kommando aus. Auf dem Beispielrechner läuft der X.org-Server in Version 1.17.2.

user$ X -showconfig X.Org X Server 1.17.2 Release Date: 2015-06-16 X Protocol Version 11, Revision 0

Eine alternative Vorgehensweise bietet das Kommando xdpyinfo:

user$ xdpyinfo | grep release vendor release number: 11702000

Je nach Hersteller der Grafikkarte können unterschiedliche Treiber aktiv sein. Wenn Sie sich vergewissern möchten, welcher Treiber tatsächlich verwendet wird, führen Sie das Programm glxinfo aus. Vorher müssen Sie herausfinden, in welchem Paket dieses Programm versteckt ist und es installieren. Fündig werden Sie z.B. bei Fedora in glx-utils, bei SUSE in Mesa-demo-x bzw. bei Ubuntu in mesa-utils.

user$ glxinfo | grep -i vendor (in einer virtuellen Maschine) server glx vendor string: SGI client glx vendor string: Mesa Projet and SGI OpenGL vendor string: VMware, Inc. user$ glxinfo | grep -i vendor (NVIDIA-Grafikkarte, proprietärer NVIDIA-Treiber) server glx vendor string: NVIDIA Corporation client glx vendor string: NVIDIA Corporation OpenGL vendor string: NVIDIA Corporation user$ glxinfo | grep -i vendor (Intel-Chipset, Open-Source-Treiber) server glx vendor string: SGI client glx vendor string: Mesa Projet and SGI OpenGL vendor string: Intel Open Source Technology Center

Auch ein Blick in /var/log/Xorg.0.log ist oft aufschlussreich:

user$ grep drivers /var/log/Xorg.0.log (II) Loading /usr/lib64/xorg/modules/drivers/vboxvideo_drv.so (II) Loading /usr/lib64/xorg/modules/drivers/modesetting_drv.so (II) Loading /usr/lib64/xorg/modules/drivers/fbdev_drv.so (II) Loading /usr/lib64/xorg/modules/drivers/vesa_drv.so

Allerdings werden wie im obigen Beispiel oft mehrere Treiber geladen. Welcher wirklich für die Kommunikation mit der Grafikkarte verantwortlich ist, erschließt sich erst aus einem genaueren Blick in die Logging-Datei. Die folgenden Daten stammen von einer SUSE-Installation, die innerhalb von VirtualBox ausgeführt wurde, wobei der VirtualBox-eigene Treiber aus den sogenannten »Guest Additions« aktiv war:

user$ less /var/log/Xorg.0.log ... (II) VBoxVideo(0): Creating default Display subsection ... (==) VBoxVideo(0): Depth 24, (--) framebuffer bpp 32 (--) VBoxVideo(0): Virtual size is 32766x32766 (pitch 32766) (**) VBoxVideo(0): Built-in mode "800x600": 29.3 MHz ...