Kapitel 11. Das X Window System und virtuelle Konsolen

11.1. Was ist das X Window System?
11.2. Ich möchte Xorg benutzen, was muss ich tun?
11.3. Ich habe versucht, X zu starten, aber wenn ich startx eingebe, erhalte ich die Fehlermeldung No devices detected.. Was soll ich jetzt machen?
11.4. Warum funktioniert meine Maus unter X nicht?
11.5. Kann ich meine Rad-Maus auch unter X benutzen?
11.6. Mein Laptop hat ein Synaptics Touchpad. Kann ich das unter X benutzen?
11.7. Wie verwende ich entfernte X-Displays?
11.8. Was ist eine virtuelle Konsole und wie erstelle ich mehr davon?
11.9. Wie greife ich von X aus auf virtuelle Konsolen zu?
11.10. Wie starte ich XDM beim Booten?
11.11. Wieso erhalte ich die Meldung Couldn't open console, wenn ich xconsole starte?
11.12. Warum funktioniert meine PS/2-Maus nicht richtig?
11.13. Wie vertausche ich die Maustasten?
11.14. Wie installiere ich einen Splash-Screen und wo finde ich sie?
11.15. Kann ich die Windows-Tasten unter X benutzen?
11.16. Wird 3D Hardware Beschleunigung für OpenGL® unterstützt?

11.1.

Was ist das X Window System?

Das X Window System (oder auch nur X11) ist das am häufigsten verwendete Window System für UNIX®- und UNIX®-ähnliche Systeme, zu denen auch FreeBSD gehört. Der X Protokollstandard wird von der X.Org Foundation definiert und liegt aktuell in Version 11 Release 7.7 vor und wird häufig auch nur als X11 bezeichnet.

Das X Window System wurde für viele verschiedene Architekturen und Betriebssysteme implementiert. Eine serverseitige Implementierung wird dabei als X-Server bezeichnet.

11.2.

Ich möchte Xorg benutzen, was muss ich tun?

Sie können Xorg wie folgt installieren:

Benutzen Sie den Meta-Port x11/xorg, der sämtliche Xorg Komponenten installiert.

Benutzen Sie x11/xorg-minimal, der nur die benötigten Komponenten installiert.

Sie können Xorg auch als Paket installieren:

# pkg install xorg

Lesen Sie nach erfolgreicher Installation von Xorg den Abschnitt X11 konfigurieren im FreeBSD Handbuch.

11.3.

Ich habe versucht, X zu starten, aber wenn ich startx eingebe, erhalte ich die Fehlermeldung No devices detected.. Was soll ich jetzt machen?

Das System läuft wahrscheinlich auf einer erhöhten Sicherheitsstufe (securelevel). X kann auf einer erhöhten Sicherheitsstufe nicht gestartet werden, weil X dazu Schreibzugriff auf io(4) benötigt. Lesen Sie dazu auch die Manualpage init(8).

Es gibt zwei Lösungen für dieses Problem: Setzen Sie die Sicherheitsstufe wieder zurück auf 0 oder starten Sie xdm(1) (oder einen alternativen Display Manager) während des Bootens, bevor die Sicherheitsstufe erhöht wird.

Der Abschnitt F: 11.10 enthält Informationen darüber, wie Sie xdm(1) beim Systemstart aktivieren können.

11.4.

Warum funktioniert meine Maus unter X nicht?

Wenn Sie den Standard-Konsolentreiber syscons(4) benutzen, können Sie FreeBSD so konfigurieren, dass auf jedem virtuellen Bildschirm ein Mauszeiger unterstützt wird. Um Konflikte mit X zu vermeiden, unterstützt syscons(4) ein virtuelles Gerät namens /dev/sysmouse. Alle Mausbewegungen und Mausklicks werden über moused(8) in das sysmouse(4) Gerät. Falls Sie die Maus auf einer oder mehreren virtuellen Konsolen und unter X benutzen wollen, sollten Sie zunächst F: 4.4.1 lesen und moused(8) konfigurieren.

Stellen Sie anschließend sicher, dass die folgenden Einträge in etc/X11/xorg.conf enthalten sind:

Section "InputDevice"
   Option          "Protocol" "SysMouse"
   Option          "Device" "/dev/sysmouse"
.....

Beginnend mit Xorg 7.4 werden Angaben im Abschnitt InputDevice von xorg.conf ignoriert. Stattdessen wird auf die automatisch ermittelten Werte zurückgegriffen. Um das alte Verhalten zu reaktivieren, fügen Sie die folgende Zeile entweder in den Abschnitt ServerLayout oder ServerFlags ein:

Option "AutoAddDevices" "false"

Einige Leute ziehen es vor, unter X /dev/mouse zu benutzen. Hierzu sollte /dev/mouse nach /dev/sysmouse (siehe sysmouse(4)) gelinkt werden, indem Sie die folgende Zeile in /etc/devfs.conf (siehe devfs.conf(5)) hinzufügen:

link    sysmouse    mouse

Die Verknüpfung kann durch Neustart von devfs(5) über das folgende Kommando (als root) erzeugt werden:

# service devfs restart

11.5.

Kann ich meine Rad-Maus auch unter X benutzen?

Dazu müssen Sie X nur mitteilen, dass Sie eine Maus mit 5 Tasten haben. Dazu fügen Sie die Zeilen Buttons 5 sowie ZAxisMapping 4 5 in den Abschnitt InputDevice von /etc/X11/xorg.conf ein. Das Beispiel zeigt, wie ein solcher Abschnitt aussehen könnte.

Section "InputDevice"
   Identifier      "Mouse1"
   Driver          "mouse"
   Option          "Protocol" "auto"
   Option          "Device" "/dev/sysmouse"
   Option          "Buttons" "5"
   Option          "ZAxisMapping" "4 5"
EndSection

Wenn Sie die Maus in Emacs benutzen wollen, fügen Sie auch die folgenden Zeilen in ~/.emacs ein:

;; wheel mouse
(global-set-key [mouse-4] 'scroll-down)
(global-set-key [mouse-5] 'scroll-up)

11.6.

Mein Laptop hat ein Synaptics Touchpad. Kann ich das unter X benutzen?

Ja, aber damit es funktioniert, müssen Sie ein paar Dinge konfigurieren.

Damit Sie den Xorg synaptics Treiber benutzen können, müssen Sie zuerst moused_enable aus /etc/rc.conf entfernen.

Um synaptics zu aktivieren, fügen Sie die folgende Zeile in /boot/loader.conf ein:

hw.psm.synaptics_support="1"

Fügen Sie die folgende Zeile in /etc/X11/xorg.conf ein:

Section "InputDevice"
Identifier  "Touchpad0"
Driver      "synaptics"
Option      "Protocol" "psm"
Option      "Device" "/dev/psm0"
EndSection

Und fügen Sie die folgende Zeile in den Abschnitt ServerLayout hinzu:

InputDevice    "Touchpad0" "SendCoreEvents"

11.7.

Wie verwende ich entfernte X-Displays?

Aus Sicherheitsgründen verbietet der X-Server in der Voreinstellung Verbindungen von entfernten Systemen.

Starten Sie den X mit der Option -listen_tcp, wenn Sie Verbindungen von entfernten Systemen erlauben wollen:

% startx -listen_tcp

11.8.

Was ist eine virtuelle Konsole und wie erstelle ich mehr davon?

Mit virtuellen Konsolen können Sie mehrere simultane Sitzungen auf einer Maschine laufen lassen, ohne so komplizierte Dinge wie die Einrichtung eines Netzwerkes oder die Benutzung von X zu benötigen.

Wenn das System startet, wird es nach der Anzeige aller Bootmeldungen eine Eingabeaufforderung auf dem Bildschirm anzeigen. Sie können dann auf der ersten virtuellen Konsole Ihren Benutzernamen und das Passwort eingeben und anfangen, zu arbeiten.

Um eine weitere Sitzung zu starten, vielleicht, um die Dokumentation zu einem Programm, das Sie gerade benutzen, einzusehen, oder, um Ihre Mails zu lesen, während Sie auf das Ende einer FTP-Übertragung warten. Drücken Sie AltF2 und Sie gelangen zur Anmelde-Aufforderung auf der zweiten virtuellen Konsole. Wenn Sie zurück zur ersten Sitzung möchten, drücken Sie Alt+F1.

Die Standardinstallation von FreeBSD bietet acht aktivierte virtuelle Konsolen. Mit Alt+F1, Alt+F2, Alt+F3 und so weiter wechseln Sie zwischen diesen virtuellen Konsolen.

Um weitere virtuelle Konsolen zu aktivieren, editieren Sie /etc/ttys (ttys(5)) und fügen Einträge für ttyv8 bis zu ttyvc nach dem Kommentar zu Virtual terminals ein:

# Edit the existing entry for ttyv8 in /etc/ttys and change
# "off" to "on".
ttyv8   "/usr/libexec/getty Pc"         xterm  on secure
ttyv9   "/usr/libexec/getty Pc"         xterm  on secure
ttyva   "/usr/libexec/getty Pc"         xterm  on secure
ttyvb   "/usr/libexec/getty Pc"         xterm  on secure

Benutzen Sie so wenig oder so viele, wie Sie möchten. Je mehr virtuelle Terminals Sie benutzen, desto mehr Ressourcen werden gebraucht; das kann wichtig sein, wenn Sie 8 MB RAM oder weniger besitzen. Sie können auch secure in insecure ändern.

Anmerkung:

FreeBSD 9.0 und ältere Versionen verwenden den Terminaltyp cons25 und nicht xterm. Benutzen Sie beim Hinzufügen von neuen Einträgen in /etc/ttys das Format der bereits bestehenden Einträge.

Wichtig:

Wenn Sie einen X-Server benutzen möchten, müssen Sie mindestens ein virtuelles Terminal ausgeschaltet (off) lassen damit der Server es benutzen kann. Das heißt, dass Ihnen nur 11 Alt-Funktionstasten für virtuelle Konsolen zur Verfügung stehen, die letzte ist für den X-Server bestimmt.

Um beispielsweise X und elf virtuelle Konsolen auszuführen, sollte die Einstellung für das virtuelle Terminal 12 wie folgt sein:

ttyvb   "/usr/libexec/getty Pc"         xterm  off secure

Sie können das System neu starten, um die virtuellen Konsolen zu aktivieren.

11.9.

Wie greife ich von X aus auf virtuelle Konsolen zu?

Benutzen Sie Strg+Alt+Fn um auf eine virtuelle Konsole umzuschalten. Mit Strg+Alt+F1 schalten Sie zur ersten virtuellen Konsole.

Sobald Sie auf eine virtuelle Konsole umgeschaltet haben, können Sie Alt+Fn benutzen, um zwischen den einzelnen virtuellen Konsolen umzuschalten.

Um zur X-Sitzung zurückzukehren, müssen Sie auf die virtuelle Konsole umschalten, auf der X läuft. Wenn Sie X über der Eingabeaufforderung mit startx gestartet haben, benutzt X die nächste freie virtuelle Konsole und nicht die Konsole, von der es gestartet wurde. Wenn Sie acht aktive virtuelle Konsolen haben, dann wird X die neunte benutzen und Sie können mit Alt+F9 umschalten.

11.10.

Wie starte ich XDM beim Booten?

Es gibt zwei Denkansätze, wie xdm(1) zu starten ist. Bei dem einen wird xdm unter Nutzung des mitgelieferten Beispiels über /etc/ttys (siehe ttys(5)) gestartet, während beim zweiten Ansatz rc.local (siehe rc(8)) oder das Skript X aus /usr/local/etc/rc.d verwendet wird. Beide Ansätze sind gleichwertig und der eine wird in Situationen funktionieren, in denen der andere es nicht tut. In beiden Fällen ist das Ergebnis das gleiche: X liefert eine graphische Anmeldeaufforderung.

Die ttys(5)-Methode hat den Vorteil, dass dokumentiert ist, auf welchem vty X gestartet wird und der Neustart des X-Servers beim Abmelden an init(8) übergeben wird. Die rc(8)-Methode erleichtert den Aufruf von kill xdm, falls Probleme beim Start des X-Servers auftreten sollten.

Beim Laden von rc(8), sollte xdm ohne irgendwelche Argumente (das heißt als Daemon) gestartet werden. xdm muss gestartet werden nachdem getty(8) läuft, andernfalls entsteht ein Konflikt zwischen getty und xdm und die Konsole bleibt gesperrt. Der beste Weg, um dies zu vermeiden, ist, das Skript für etwa zehn Sekunden anzuhalten und dann xdm zu starten.

Wenn Sie xdm durch einen Eintrag in /etc/ttys starten lassen, kann es zu einem Konflikt zwischen xdm und getty(8) kommen. Um dieses Problem zu vermeiden, sollten Sie die Nummer des vt in /usr/local/lib/X11/xdm/Xservers eintragen:

:0 local /usr/local/bin/X vt4

Diese Zeile führt dazu, dass der X Server /dev/ttyv3 nutzt. Die beiden Zahlen weichen voneinander ab: Der X-Server beginnt die Zählung der vty bei 1, während der FreeBSD-Kernel bei 0 beginnt.

11.11.

Wieso erhalte ich die Meldung Couldn't open console, wenn ich xconsole starte?

Wenn X mit startx gestartet wird, werden die Zugriffsrechte für /dev/console nicht geändert, was dazu führt, dass Dinge wie xterm -C und xconsole nicht funktionieren.

Das hängt damit zusammen, wie die Zugriffsrechte für die Konsole standardmäßig gesetzt sind. Auf einem Mehrbenutzersystem möchte man nicht unbedingt, dass jeder Benutzer einfach auf die Systemkonsole schreiben kann. Für Benutzer, die sich auf einer Maschine direkt mit einem VTY anmelden, existiert die Datei fbtab(5), um derartige Probleme zu lösen.

In Kürze: sorgen Sie dafür, dass sich in der Datei /etc/fbtab (siehe fbtab(5)) eine nicht auskommentierte Zeile der folgenden Art befindet:

/dev/ttyv0 0600 /dev/console

Das sorgt dafür, dass wer auch immer sich auf /dev/ttyv0 anmeldet, auch die Konsole besitzt.

11.12.

Warum funktioniert meine PS/2-Maus nicht richtig?

Ihre Maus und der Maustreiber sind vielleicht aus der Synchronisation geraten. In seltenen Fällen kann auch der Treiber irrtümlicherweise Synchronisationsprobleme melden:

psmintr: out of sync (xxxx != yyyy)

Falls das passiert, deaktivieren Sie den Code zur Überprüfung der Synchronisation, indem Sie die Treiberangaben für den PS/2-Maustreiber auf 0x100 setzen. Dazu fügen Sie einfach hint.psm.0.flags="0x100" in /boot/loader.conf ein und starten das System anschließend neu.

11.13.

Wie vertausche ich die Maustasten?

Geben Sie xmodmap -e "pointer = 3 2 1" ein. Fügen Sie dieses Kommando in ~/.xinitrc oder ~/.xsession hinzu, damit dies automatisch geschieht.

11.14.

Wie installiere ich einen Splash-Screen und wo finde ich sie?

Die detaillierte Antwort auf diese Frage finden Sie im Abschnitt Willkommensbildschirme während des Bootvorgangs konfigurieren des FreeBSD Handbuchs.

11.15.

Kann ich die Windows-Tasten unter X benutzen?

Ja, Sie müssen lediglich mit xmodmap(1) festlegen, welche Aktion diese Tasten auslösen sollen.

Unter der Annahme, dass alle Windows-Tastaturen dem Standard entsprechen, lauten die Keycodes für die drei Tasten wie folgt:

  • 115 - Windows-Taste zwischen den Strg- und Alt-Tasten auf der linken Seite

  • 116 - Windows-Taste rechts von der AltGr-Taste

  • 117 - Menü-Taste, links von der rechten Strg-Taste

Nach der folgenden Anweisung erzeugt die linke Windows-Taste ein Komma.

# xmodmap -e "keycode 115 = comma"

Um die neue Belegung der Windows-Tasten automatisch bei jedem Start von X zu erhalten, könnten entsprechende xmodmap Anweisungen in ~/.xinitrc einfügt werden. Die bevorzugte Variante ist aber, eine Datei mit dem Namen ~/.xmodmaprc zu erzeugen, die nur die Parameter für den Aufruf von xmodmap enthält. Wenn Sie mehrere Tasten umdefinieren wollen, muss jede Definition in eine eigene Zeile gesetzt werden. Weiterhin müssen Sie in ~/.xinitrc die folgende Zeile einfügen:

xmodmap $HOME/.xmodmaprc

Sie könnten die drei Tasten zum Beispiel mit den Funktionen F13, F14, und F15 belegen. Dadurch ist es sehr einfach, diese Tasten mit nützlichen Funktionen eines Programmes oder Desktops zu verknüpfen.

Um dies zu tun, fügen Sie die folgenden Zeilen in ~/.xmodmaprc ein.

keycode 115 = F13
keycode 116 = F14
keycode 117 = F15

Falls Sie zum Beispiel x11-wm/fvwm2 benutzen, können Sie ihn so einstellen, dass F13 das Fenster unter dem Mauszeiger minimiert bzw. maximiert. F14 holt das Fenster unter dem Mauszeiger in den Vordergrund bzw. ganz nach hinten, wenn es bereits im Vordergrund ist. F15 öffnet das Arbeitsplatz-Menü, auch wenn der Cursor nicht auf den Hintergrund zeigt. Dies ist extrem praktisch, wenn der gesamte Bildschirm von Fenster belegt wird.

Dieses Verhalten erhält man mit den folgenden Einträgen in ~/.fvwmrc:

Key F13        FTIWS    A        Iconify
Key F14        FTIWS    A        RaiseLower
Key F15        A        A        Menu Workplace Nop

11.16.

Wird 3D Hardware Beschleunigung für OpenGL® unterstützt?

Dies hängt davon ab, welche Version von Xorg und welche Grafikkarte Sie verwenden. Wenn Sie eine Karte mit nVidia-Chipsatz besitzen, benutzen Sie die binären Treiber für FreeBSD, indem Sie einen der folgenden Ports installieren:

Die aktuelle Version von nVidia-Karten wird durch den Port x11/nvidia-driver unterstützt.

Unterstützung für ältere Treiber finden Sie in x11/nvidia-driver-###

nVidia liefert detaillierte Informationen darüber, welche Karte von welchem Treiber unterstützt wird. Diese Information finden Sie auf der Website http://www.nvidia.com/object/IO_32667.html.

Für Matrox G200/400 können Sie den Port x11-servers/mga_hal benutzen.

Bei ATI Rage 128 und Radeon lesen Sie ati(4), r128(4) und radeon(4).

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.

Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.