Kapitel 11. Das X Window System und virtuelle Konsolen

11.1. Was ist das X Window System?
11.2. Welche X-Implementierungen sind für FreeBSD verfügbar?
11.3. Funktionieren meine Programme auch mit der Xorg-Implementierung noch?
11.4. Warum hat sich das X Project überhaupt aufgespalten?
11.5. Warum hat sich FreeBSD für Xorg als Standard-X-Server entschieden?
11.6. Ich möchte X benutzen, was muss ich tun?
11.7. Ich habe versucht, X zu starten, aber wenn ich startx eingebe, erhalte ich die Fehlermeldung “KDENABIO failed (Operation not permitted)”. Was soll ich jetzt machen?
11.8. Warum funktioniert meine Maus unter X nicht?
11.9. Kann ich meine Rad-Maus auch unter X benutzen?
11.10. X verbietet Verbindungen von entfernten Systemen!
11.11. Wieso funktionieren Menüs und Dialoge in X nicht richtig?
11.12. Was ist eine virtuelle Konsole und wie erstelle ich mehr?
11.13. Wie greife ich von X aus auf virtuelle Konsolen zu?
11.14. Wie starte ich XDM beim Booten?
11.15. Wieso erhalte ich die Meldung “Couldn't open console”, wenn ich xconsole benutze?
11.16. Früher konnte ich XFree86 als normaler User starten. Warum sagt mir das System jetzt, dass ich root sein muss?
11.17. Warum funktioniert meine PS/2-Maus nicht richtig?
11.18. Meine PS/2-Maus von MouseSystems scheint nicht zu funktionieren.
11.19. Wenn ich eine X-Anwendung erstellen will, kann imake die Datei Imake.tmpl nicht finden. Wo befindet sie sich?
11.20. Wie kann ich einen anderen X-Server installieren?
11.21. Wie vertausche ich die Maustasten?
11.22. Wie installiere ich einen Splash-Screen und wo finde ich sie?
11.23. Kann ich die Windows®-Tasten unter X benutzen?
11.24. Wird 3D Hardware Beschleunigung für OpenGL® unterstützt?

11.1. Was ist das X Window System?

Das X Window System ist das am häufigsten verwendete Window System für UNIX® oder ähnliche Systeme, zu denen auch FreeBSD gehört. Der X  Protokollstandard wird von der X.org Foundation definiert. Die aktuelle Version 11.6 dieser Spezifikation wird als X11R6 oder 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. Welche X-Implementierungen sind für FreeBSD verfügbar?

Früher war XFree86™, die X-Implementierung des XFree86 Projects, Inc., der Standard unter FreeBSD. Dieser X-Server wurde bis einschließlich FreeBSD Version 4.10 und 5.2 als Standard-X-Server installiert. Die von Xorg veröffentlichte Implementierung diente nur als Referenzplattform, weil der verwendete Code über die Jahre sehr ineffizient geworden war.

Anfang 2004 verließen einige Entwickler das XFree86 Project, um fortan Xorg direkt zu unterstützen. Der Grund dafür waren Meinungsverschiedenheiten über die Geschwindigkeit der Weiterentwicklung, die zukünftige Ausrichtung des Projekts sowie persönliche Differenzen. Zur gleichen Zeit aktualisierte Xorg ihren Quellcodebaum auf die XFree86-Version 4.3.99.903, brachte viele Änderungen, die bisher getrennt verwaltet worden waren, in das Projekt ein und veröffentlichte das Paket als X11R6.7.0, bevor XFree86 die Lizenz änderte. Ein seperates, aber mit Xorg verbundenes Projekt, freedesktop.org (oder fd.o), arbeitet an einer Überarbeitung des ursprünglichen XFree86-Codes, um einerseits mehr Rechenarbeit an die Grafikkarten zu übertragen (mit dem Ziel einer deutlich erhöhten Geschwindigkeit) und andererseits den Code zu modularisieren (mit dem Ziel einer verbesserten Wartung, einer schnelleren Entwicklung sowie einer vereinfachten Konfiguration). Xorg plant, die Weiterentwicklungen von freedesktop.org in seine zukünftigen Versionen zu integrieren.

Seit Juli 2004 ist Xorg der Standard-X-Server für FreeBSD-CURRENT. Die XFree86-Ports (x11/XFree86-4) verbleiben in der Ports-Sammlung und sind nach wie der Standard für FreeBSD-STABLE.

Anmerkung: Der letzte Absatz beschreibt nur die Standardeinstellung. Es ist nach wie vor möglich, beide Implementierung unter FreeBSD zu verwenden. Lesen Sie dazu die Anweisungen im Eintrag vom 23.07.2004 in der Datei /usr/ports/UPDATING.

Warnung: Beachten Sie, dass es derzeit nicht möglich ist, Teile aus beiden Implementierungen parallel zu verwenden. Sie müssen sich also für eine der beiden Implementierungen entscheiden.

Anmerkung: Die folgenden Abschnitte beziehen sich zwar auf die XFree86-Implementierung, sie sollten aber auch für die Xorg-Implementierung anwendbar sein. Die Standardkonfigurationsdatei von Xorg heißt xorg.conf. Ist diese nicht vorhanden, wird die Datei XF86Config verwendet.

11.3. Funktionieren meine Programme auch mit der Xorg-Implementierung noch?

Der Xorg-Server basiert auf der gleichen X11R6-Spezifikation, die auch XFree86 verwendet, daher sollte ein Großteil der Anwendungen problemlos funktionieren. Einige selten verwendete Protokolle werden allerdings nicht mehr unterstützt (XIE, PEX, sowie lbxproxy). Die beiden ersten Protokolle wurden allerdings auch vom XFree86-Port nicht unterstützt.

11.4. Warum hat sich das X Project überhaupt aufgespalten?

Diese Frage ist nicht FreeBSD-spezifisch. Es gibt zu diesem Thema umfangreiche Postings in diversen Mailinglist-Archiven. Suchen Sie daher über eine Suchmaschine danach, statt diese Frage auf einer FreeBSD-Mailingliste zu stellen.

11.5. Warum hat sich FreeBSD für Xorg als Standard-X-Server entschieden?

Die Entwickler von Xorg geben an, dass sie neue Versionen rascher veröffentlichen und neue Eigenschaften schneller implementieren wollen. Außerdem verwenden sie nach wie vor die traditionelle X-Lizenz, während XFree86 nun eine veränderte Version benutzt.

Anmerkung: Diese Entscheidung wird nach wie vor heftig diskutiert. Nur die Zeit wird zeigen, welche Implementierung technisch überlegen ist. Jeder FreeBSD-Benutzer hat aber die freie Wahl zwischen den beiden Implementierungen.

11.6. Ich möchte X benutzen, was muss ich tun?

Der einfachste Weg ist der, dass Sie während der Installation angeben, dass Sie X benutzen möchten.

Wenn Sie X auf einem existierenden System installieren wollen, sollten Sie den Meta-Port x11/xorg verwenden, der alle benötigen Komponenten baut und installiert.

Lesen Sie danach die Dokumentation zu xorgconfig(1), das Sie bei der Konfiguration des X-Servers für Ihre Grafikkarte, Maus usw. unterstützt. Bevorzugen Sie eine grafische Konfigurationsoberfläche, sollten Sie sich xorgcfg(1) ansehen.

Weitere Informationen finden sich im Abschnitt X11 des FreeBSD-Handbuchs.

Evtl. möchten Sie sich auch den Xaccel-Server ansehen. Nähere Details finden Sie in den Abschnitten über Xi Graphics oder Metro Link.

11.7. Ich habe versucht, X zu starten, aber wenn ich startx eingebe, erhalte ich die Fehlermeldung “KDENABIO failed (Operation not permitted)”. Was soll ich jetzt machen?

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

Die Frage ist also eigentlich, was Sie anders machen sollten. Sie haben zwei Möglichkeiten: Setzen Sie die Sicherheitsstufe wieder zurück auf 0 (die Einstellung erfolgt in der Regel in /etc/rc.conf) oder starten Sie xdm(1) während des Starts des Systems, bevor die Sicherheitsstufe erhöht wird.

Der Abschnitt F: 11.14. enthält Informationen darüber, wie Sie xdm(1) beim Start des Systems starten können.

11.8. Warum funktioniert meine Maus unter X nicht?

Wenn Sie syscons (den Standard-Konsoltreiber) 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 ein virtuelles Gerät mit dem Namen /dev/sysmouse. Über dieses virtuelle Gerät können andere Programme alle Mausbewegungen und Mausclicks im MouseSystems-Format mitlesen. Falls Sie Ihre Maus auf einer oder mehreren virtuellen Konsolen und X benutzen wollen, sollten Sie zunächst F: 4.4.4. lesen und dann moused installieren.

Die Datei /etc/XF86Config sollte die folgenden Einträge enthalten:

Section        Pointer
Protocol       "SysMouse"
Device         "/dev/sysmouse"
.....
         

Diese Variante kann für XFree86 3.3.2 und neuer sowie für Xorg 6.7.0 benutzt werden. Wenn Sie eine ältere Versionen verwenden, muss als Protocol hingegen MouseSystems benutzt werden.

Einige Leute ziehen es vor, unter X /dev/mouse zu benutzen. Hierzu sollte /dev/mouse nach /dev/sysmouse gelinkt werden:

# cd /dev
# rm -f mouse
# ln -s sysmouse mouse

11.9. Kann ich meine Rad-Maus auch unter X benutzen?

Ja.

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” der Datei /etc/XF86Config ein. Das Beispiel zeigt, wie ein solcher Abschnitt aussehen könnte.

Beispiel 11-1. Abschnitt “InputDevice” für Rad-Mäuse in den Konfigurationsdateien von XFree86™ 4.X und Xorg

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

Beispiel 11-2. “.emacs” Beispiel für seitenweises Blättern mit einer Rad-Maus (optional)

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

11.10. X verbietet Verbindungen von entfernten Systemen!

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

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

% startx -listen_tcp

11.11. Wieso funktionieren Menüs und Dialoge in X nicht richtig?

Versuchen Sie, die Num Lock-Taste auszustellen.

Falls Ihre Num Lock-Taste beim Booten standardmäßig eingeschaltet ist, sollten Sie die folgende Zeile in den Abschnitt Keyboard der Datei XF86Config einfügen:

# Let the server do the NumLock processing.  This should only be
# required when using pre-R6 clients
    ServerNumLock
         

11.12. Was ist eine virtuelle Konsole und wie erstelle ich mehr?

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 (oder zu spielen!).

Gelegentlich möchten Sie möglicherweise eine weitere Sitzung starten wollen, 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 einfach Alt+F2 (halten Sie die Alt-Taste gedrückt und drücken Sie die Taste F2) 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 standard Installation von FreeBSD bietet drei aktivierte virtuelle Konsolen (acht ab der Version 3.3) und Alt+F1, Alt+F2, Alt+F3 wechseln zwischen diesen virtuellen Konsolen.

Um mehr von ihnen zu aktivieren, editieren Sie /etc/ttys und fügen Einträge für ttyv4 bis zu ttyvc nach dem Kommentar zu “virtuellen Terminals” ein:

# Edit the existing entry for ttyv3 in /etc/ttys and change
# "off" to "on".
ttyv3   "/usr/libexec/getty Pc"         cons25  on secure
ttyv4   "/usr/libexec/getty Pc"         cons25  on secure
ttyv5   "/usr/libexec/getty Pc"         cons25  on secure
ttyv6   "/usr/libexec/getty Pc"         cons25  on secure
ttyv7   "/usr/libexec/getty Pc"         cons25  on secure
ttyv8   "/usr/libexec/getty Pc"         cons25  on secure
ttyv9   "/usr/libexec/getty Pc"         cons25  on secure
ttyva   "/usr/libexec/getty Pc"         cons25  on secure
ttyvb   "/usr/libexec/getty Pc"         cons25  on secure
         

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

Wichtig: Wenn Sie einen X-Server benutzen möchten, müssen Sie mindestens ein virtuelles Terminal unbenutzt (oder ausgeschaltet) lassen damit der Server es benutzen kann. Das heißt, dass Sie Pech haben, wenn Sie für jede Ihrer 12 Alt-Funktionstasten eine Anmeldeaufforderung haben möchten - Sie können das nur für elf von ihnen tun, wenn Sie einen X-Server auf derselben Maschine laufen lassen möchten.

Der einfachste Weg, eine Konsole zu deaktivieren, ist, sie auszuschalten. Wenn Sie zum Beispiel die oben erwähnte volle Zuordnung aller 12 Terminals hätten, müssten Sie die Einstellung für das virtuelle Terminal 12 von:

ttyvb   "/usr/libexec/getty Pc"         cons25  on secure

in:

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

ändern.

Wenn Ihre Tastatur nur über zehn Funktionstasten verfügt, bedeutet das:

ttyv9   "/usr/libexec/getty Pc"         cons25  off secure
ttyva   "/usr/libexec/getty Pc"         cons25  off secure
ttyvb   "/usr/libexec/getty Pc"         cons25  off secure
         

(Sie können diese Zeilen auch einfach löschen.)

Nachdem Sie die Datei /etc/ttys geändert haben, besteht der nächste Schritt darin, sicherzustellen, dass Sie genügend Geräte für virtuelle Terminal haben. Der einfachste Weg, dies zu tun, ist:

# cd /dev
# sh MAKEDEV vty12

Anmerkung: Wenn Sie FreeBSD 5.X oder neuer mit DEVFS benutzen, brauchen Sie die Gerätedateien nicht manuell anzulegen, da sie automatisch in /dev erstellt werden.

Die einfachste (und sauberste) Möglichkeit, die virtuellen Konsolen zu aktivieren, ist, zu rebooten. Wenn Sie jedoch auf keinen Fall rebooten möchten, können Sie auch einfach das X Window System herunterfahren und als root

# kill -HUP 1

ausführen.

Es ist unbedingt erforderlich, dass Sie das X Window System vollständig herunterfahren, falls es läuft. Falls Sie es nicht tun, könnte es sein, dass sich ihr System nach der Eingabe des kill-Befehls aufhängt.

11.13. Wie greife ich von X aus auf virtuelle Konsolen zu?

Benutzen Sie Ctrl+Alt+Fn um auf eine virtuelle Konsole umzuschalten. Mit Ctrl+Alt+F1 würden Sie zur ersten virtuellen Konsole umschalten.

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

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

11.14. 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 (ttys(5)) gestartet, während beim zweiten Ansatz rc.local (rc(8)) oder das Skript X.sh im Verzeichnis /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-Methode hat den Vorteil, dass dokumentiert ist, auf welchem vty X gestartet wird und der Neustart des X-Servers beim Abmelden an init übergeben wird. Die rc.local-Methode erleichtert ein Killen von xdm, falls Probleme beim Start des X-Servers auftreten sollten.

Beim Laden von rc.local sollte xdm ohne irgendwelche Argumente (das heißt als Daemon) gestartet werden. xdm muss gestartet werden NACHDEM getty 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 die Datei /usr/X11R6/lib/X11/xdm/Xservers eintragen.

:0 local /usr/X11R6/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.15. Wieso erhalte ich die Meldung “Couldn't open console”, wenn ich xconsole benutze?

Wenn Sie X mit startx starten, werden die Zugriffsrechte für /dev/console leider 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 eine nicht auskommentierte Zeile der Form

/dev/ttyv0 0600 /dev/console

in der Datei /etc/fbtab befindet. Das sorgt dafür, dass wer auch immer sich auf /dev/ttyv0 anmeldet, auch die Konsole besitzt.

11.16. Früher konnte ich XFree86 als normaler User starten. Warum sagt mir das System jetzt, dass ich root sein muss?

Alle X-Server müssen mit der ID root laufen, um direkt auf die Videohardware zuzugreifen. Die älteren Versionen von XFree86 (bis einschließlich 3.3.6) installierten alle mitgelieferten Server so, dass sie automatisch unter ID root ausgeführt werden (setuid to root). Dies stellt natürlich eine Gefahrenquelle dar, da die X-Server große, komplexe Programme sind. Alle neueren Versionen von XFree86 installieren die Server aus genau diesem Grund nicht mehr "setuid root".

Es ist natürlich nicht tragbar, den X-Server immer mit der ID root laufen zu lassen; auch aus Gründen der Sicherheit ist es keine gute Idee. Es gibt zwei Möglichkeiten, um X auch als normaler Benutzer starten zu können. Die erste ist die Verwendung von xdm oder eines ähnlichen Programms; die zweite ist die Benutzer von Xwrapper.

xdm ist ein ständig laufendes Programm, mit dem Logins über eine graphische Benutzeroberfläche sind. Es wird normalerweise beim Systemstart initialisiert und für die Authentifizierung der Benutzer und den Start ihrer Sitzungen verantwortlich. Es ist also die graphische Entsprechung von getty(8) und login(1). Weitere Informationen zum Thema xdm finden Sie in der XFree86 Dokumentation und dem entsprechenden FAQ-Eintrag.

Xwrapper ist eine “Hülle” für den X-Server. Mit diesem kleinen Utility ist es möglich, manuell den X-Server zu starten und weiterhin eine annehmbare Sicherheit zu haben. Das Tools prüft, ob die per Kommandozeile übergebenen Argumente halbwegs sinnvoll sind. Wenn dies der Fall ist, startet es den entsprechenden X-Server. Wenn Sie (aus welchem Grund auch immer) keine graphische Anmeldung wollen, ist Xwrapper die optimale Lösung. Wenn Sie die vollständige Ports-Sammlung installiert haben, finden Sie das Tool im Verzeichnis /usr/ports/x11/wrapper.

11.17. Warum funktioniert meine PS/2-Maus nicht richtig?

Ihre Maus und der Maustreiber sind etwas aus der Synchronisation geraten.

In seltenen Fällen kann es jedoch sein, dass der Treiber fälschlicherweise Synchronisationsprobleme meldet und Sie in den Kernelmeldungen folgendes sehen:

psmintr: out of sync (xxxx != yyyy)

und Ihre Maus nicht richtig zu funktionieren scheint.

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. Rufen Sie UserConfig durch Angabe der Option -c am Boot-Prompt auf:

boot: -c

Geben sie dann in der Kommandozeile von UserConfig folgendes ein:

UserConfig> flags psm0 0x100
UserConfig> quit

11.18. Meine PS/2-Maus von MouseSystems scheint nicht zu funktionieren.

Es wurde berichtet, dass einige Modelle der PS/2-Mäuse von MouseSystems nur funktionieren, wenn sie im “hochauflösenden” Modus betrieben werden. Andernfalls springt der Mauszeiger sehr oft in die linke obere Ecke des Bildschirms.

Das Flag 0x04 des Maustreibers bringt die Maus in den hochauflösenden Modus. Rufen Sie UserConfig durch Angabe der Option -c am Boot-Prompt auf:

boot: -c

Geben sie dann in der Kommandozeile von UserConfig folgendes ein:

UserConfig> flags psm0 0x04
UserConfig> quit

Lesen Sie den vorigen Abschnitt über eine andere mögliche Ursache für Probleme mit der Maus.

11.19. Wenn ich eine X-Anwendung erstellen will, kann imake die Datei Imake.tmpl nicht finden. Wo befindet sie sich?

Imake.tmpl ist Teil des Imake-Paketes, ein Standardwerkzeug zur Erstellung von X-Anwendungen. Imake.tmpl ist ebenso, wie viele Header-Dateien, die zur Erstellung von X-Anwendungen benötigt werden, in der Distribution xprog enthalten. Sie können Sie per sysinstall oder aber manuell mit den X Distributionsdateien installieren.

11.20. Wie kann ich einen anderen X-Server installieren?

FreeBSD-Versionen vor 5.3 verwendeten XFree86 4.X als Standard-X-Server. Seither wird Xorg als Standard-X-Server verwendet. Wenn Sie einen anderen X-Server installieren wollen, müssen Sie die folgende Zeile in Ihre /etc/make.conf einfügen. (Existiert die Datei nicht, müssen Sie sie zuvor anlegen.)

X_WINDOW_SYSTEM=        xorg

Diese Variable kann die Werte xorg, xfree86-4, oder xfree86-3 annehmen.

11.21. Wie vertausche ich die Maustasten?

Benutzen Sie den Befehl xmodmap -e "pointer = 3 2 1" in Ihrer .xinitrc oder .xsession.

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

FreeBSD erlaubt die Anzeige von “Splash-Screens” während des Bootvorganges. Die Splash-Screens dürfen Bitmaps mit 256 Farben (*.BMP) oder ZSoft-PCX-Dateien *.PCX) sein. Damit sie mit normalen VGA-Karten dargestellt werden können, darf die Größe 320x200 Bildpunkte nicht überschreiten. Wenn Sie in ihrem Kernel die VESA-Unterstützung eingebunden haben, beträgt die maximale Größe 1024x768 Pixel. Die derzeitige VESA-Unterstützung kann entweder direkt durch die Kernelkonfigurationsoption VESA in den Kernel eingebunden werden, oder durch das Laden des VESA-kld-Moduls während des Bootens.

Um einen Splash-Screen zu benutzen, müssen Sie die Startdateien, die den Bootprozess von FreeBSD kontrollieren, modifizieren.

Dazu müssen Sie die Datei /boot/loader.rc erstellen, die die folgenden Zeilen enthält:

include /boot/loader.4th
start

Außerdem benötigen Sie die Datei /boot/loader.conf, die die folgenden Zeilen enthält:

splash_bmp_load="YES"
bitmap_load="YES"

Dies setzt voraus, dass Sie /boot/splash.bmp als Ihren Splash-Screen benutzen. Wenn Sie lieber eine PCX-Datei benutzen wollen, dann kopieren Sie sie nach /boot/splash.pcx, erstellen Sie eine Datei /boot/loader.rc, wie oben beschrieben und eine Datei /boot/loader.conf, die folgendes enthält:

splash_pcx_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.pcx"

Alles, was Sie nun brauchen, ist ein Splash-Screen. Hierzu können Sie durch die Gallerie bei http://www.baldwin.cx/splash/ surfen.

11.23. 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

  • 115 - Windows-Taste zwischen den Alt- und Strg-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"

Sie werden Ihren Window Manager wahrscheinlich neu starten müssen, damit diese Einstellung wirksam wird.

Um die neue Belegung der Windows-Tasten automatisch beim Start von X zu erhalten, könnten Sie entsprechende xmodmap Anweisungen in ihre ~/.xinitrc einfügen. 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 Ihrer ~/.xinitrc noch 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.

Falls Sie das auch tun wollen, sollten in Ihrer ~/.xmodmaprc die folgenden Anweisungen stehen.

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

Falls Sie zum Beispiel 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 (Programme) Menü, auch wenn der Cursor nicht auf den Hintergrund zeigt. Dies ist extrem praktisch, wenn der gesamte Bildschirm von Fenster belegt wird; als kleiner Bonus gibt es sogar einen Zusammenhang zwischen dem Symbol auf der Taste und der durchgeführten Aktion.

Dieses Verhalten kann man mit den folgenden Einträgen in der Datei ~/.fvwmrc erhalten:

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

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

Dies hängt davon ab, welche Version von XFree86 oder Xorg und welche Grafikkarte Sie verwenden. Wenn Sie eine Karte mit NVIDIA-Chipsatz besitzen, benutzen Sie die binären Treiber für FreeBSD, die Sie auf der Drivers-Seite von NVIDEA finden. Wenn Sie XFree86-4 oder Xorg mit Grafikkarten wie der Matrox G200/G400, ATI Rage 128/Radeon, oder 3dfx Voodoo 3, 4, 5, und Banshee einsetzen, erhalten Sie weitere Informationen auf der Webseite XFree86-4 Direct Rendering on FreeBSD. Wenn Sie XFree86 in der Version 3.3 einsetzen, erhalten Sie eingeschränkte Unterstützung von die Hardware-Beschleunigung bei OpenGL für die Matrox Gx00, ATI Rage Pro, SiS 6326, i810, Savage, und Karten, die auf älteren NVIDIA Chipsätzen beruhen, wenn Sie den Port graphics/utah-glx installieren.

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>.