Das Einrichten von XFree86 ist in den meisten Fällen unproblematisch. Bei der Verwendung von Hardware, deren Treiber sich noch in der Entwicklung befinden oder beim Wunsch, die beste Leistung bzw. Auflösung mit einer beschleunigten Grafikkarte zu erzielen, kann sich die Konfiguration von XFree86 als sehr zeitaufwendig gestalten.
Dieses Kapitel beschreibt die Erstellung und Bearbeitung der Datei
XF86Config
, die den XFree86-Server konfiguriert. In den meisten Fällen
hat es sich bewährt, mit einer Basiskonfiguration für XFree86 zu starten, die
eine Standardauflösung von 640x480 Bildpunkten einstellt und von fast allen
Grafikkarten und Monitoren unterstützt wird. Arbeitet XFree86 erst einmal mit
einer Standardauflösung, so kann nun die Konfiguration erweitert werden, um
sämtliche Fähigkeiten der Videohardware auszunutzen. Die Idee, die sich dahinter
verbirgt, ist die, daß man wissen möchte, ob XFree86 überhaupt auf dem System
funktioniert und ob die Installation auch nicht fehlerhaft ist, bevor die manchmal
etwas schwierige Arbeit versucht wird, XFree86 für die eigentliche Nutzung
einzurichten.
Zusätzlich zu den hier angegebenen Informationen sollten die folgenden Dokumente gelesen werden:
XFree86-3.1-doc
und liegt in dem
Verzeichnis /usr/X11R6/lib/X11/doc
.README.Config
.README-Dateien
, wie z. B.:
README.Cirrus
und README.S3
), die sich in dem oben genannten
Verzeichnis befinden. XFree86
.XF86Config
.XF86_SVGA
oder XF86_S3
). Die Haupt-
Konfigurationsdatei ist /usr/X11R6/lib/X11/XF86Config
.
Sie enthält Informationen über die Maus, die Grafikkarte, den Monitor usw. Die
mit der XFree86-Distribution bereitgestellte Datei XF86Config.eg
enthält eine Beispielskonfiguration, die als Ausgangspunkt für die eigene
Konfiguration benutzt werden kann. Dazu wird sie nach XF86Config
kopiert.
Die XF86Config-
Manual-Seite erläutert das Format dieser Datei im
Detail. Bevor mit diesem Dokument fortgefahren wird, sollte die Manual-Seite
gelesen werden.
Nachfolgend wird eine Muster-XF86Config-
Datei schrittweise
vorgestellt. Diese Datei kann sich von der Beispielsdatei, die in der
XFree86-Distribution enthalten ist, unterscheiden, aber ihre Struktur ist dieselbe.
Man beachte, daß das Dateiformat von XF86Config
mit jeder Version von
XFree86 wechseln kann. Diese Angaben beziehen sich auf die XFree86-Version 3.1.
Ferner sollte auch der Versuch unterbleiben, die hier aufgelistete
Konfigurationsdatei auf sein System zu kopieren und anschließend zu benutzen.
Eine Konfigurationsdatei, die nicht mit der verwendeten Hardware
korrespondiert, kann Schaden an ihr anrichten. Berichten zufolge sind Monitore
(besonders Festfrequenz-Monitore) bei der Benutzung einer unkorrekt
konfigurierten XF86Config-Datei beschädigt bzw. zerstört worden. Der Grundsatz
lautet also: "Vor der Benutzung einer XF86Config-Datei
sollte absolut
sichergestellt werden, daß sie mit der verwendeten Hardware korrespondiert".
Jeder Abschnitt einer XF86Config-
Datei wird von dem folgenden
Zeilenpaar umgeben:
Section "section-name"
...
EndSection
Der erste Abschnitt der XF86Config-
Datei ist Files
, der wie
folgt aussieht:
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
EndSection
Die RgbPath-
Zeile setzt den Pfad zu der X11R6-RGB-Farbdatenbank, und
jede FontPath-
Zeile zeigt auf das jeweilige Verzeichnis mit den
entsprechenden X11-Schriftarten. Im allgemeinen besteht kein Grund, diese
Zeilen zu ändern. Es sollte sichergestellt sein, daß für jeden installierten
Schrifttyp ein FontPath-
Eintrag existiert. Das bedeutet, daß für jedes
Verzeichnis in /usr/X11R6/lib/X11/fonts
ein Eintrag in der Sektion
Files
steht.
Der nächste Abschnitt lautet ServerFlags
, der verschiedene globale
Flags des Servers spezifiziert. Er enthält im allgemeinen keinen Eintrag.
Section "ServerFlags"
# Uncomment this to cause a core dump at the spot where a signal is
# received. This may leave the console in an unusable state, but may
# provide a better stack trace in the core dump to aid in debugging
# NoTrapSignals
# Uncomment this to disable the <Crtl><Alt><BS> server abort sequence
# DontZap
EndSection
Alle Zeilen innerhalb der Sektion sind daher mit Hilfe des Nummernzeichen #
auskommentiert.
Der folgende Abschnitt Keyboard
beschreibt die Standardeinstellungen
für die Tastatur.
Section "Keyboard"
Protocol "Standard"
AutoRepeat 500 5
ServerNumLock
EndSection
Für eine Modifizierung der Tastatureinstellungen mit Hilfe zusätzlicher
Optionen wird auf die Datei XF86Config
hingewiesen. Die oben
angegebenen Werte sollten auf den meisten Systemen funktionieren.
Die Parameter für die Maus werden im nächsten Abschnitt spezifiziert.
Section "Pointer"
Protocol "MouseSystems"
Device "/dev/mouse"
# Baudrate and SampleRate are only for some Logitech mice
# BaudRate 9600
# SampleRate 150
# Emulate3Buttons is an option for 2-button Microsoft mice
# Emulate3Buttons
# ChordMiddle is an option for some 3-button Logitech mice
# ChordMiddle
EndSection
Von anfänglicher Bedeutung sind hier die beiden Optionen: Protocol
und
Device
. Protocol
spezifiziert das von der Maus verwendete
Protokoll, nicht aber die Marke der Maus. Gültige Protokolltypen sind:
BusMouse
Logitech
Microsoft
MMSeries
Mouseman
MouseSystems
PS/2
MMHitTab
BusMouse
sollte bei der Logitech-Busmaus
verwendet werden. Ferner sollte man beachten, daß ältere Logitech-Mäuse
das Logitech-
, dagegen neuere Modelle entweder das Microsoft-
oder das Mouseman-
Protokoll benutzen. Dies ist ein Grund, warum das
Protokoll nichts mit der Mausmarke zu tun hat.
Die Auswahl Device
beschreibt die Schnittstelle, an der die Maus
angeschlossen ist. Bei den meisten Linux-Systemen ist dies /dev/mouse
.
Gewöhnlich ist /dev/mouse
ein Link auf die passende serielle
Schnittstelle /dev/cua0
für serielle Mäuse bzw. die passende
Schnittstelle für Busmäuse. Auf jeden Fall sollte man sich überzeugen, daß die
im Device-
Abschnitt angegebene Gerätedatei existiert.
Der nächste Abschnitt lautet Monitor
und beschreibt die Kenndaten des
Monitors. Er kann, wie andere Sektionen in der XF86Config-
Datei auch,
mehrmals auftreten. Dies ist nützlich, falls mehrere Monitore an ein System
angeschlossen sind oder die gleiche XF86Config-
Datei unter verschiedenen
Hardware-Konfigurationen benutzt werden soll. Gewöhnlich wird nur ein einzelner
Monitor-
Abschnitt verwendet.
Section "Monitor"
Identifier "CTX 5468 NI"
# These values are for a CTX 5468NI only! Don't attempt to use
# them with your monitor (unless you have this model)
Bandwidth 60
HorizSync 30-38,47-50
VertRefresh 50-90
# Modes: Name dotclock horiz vert
ModeLine "640x480" 25 640 664 760 800 480 491 493 525
ModeLine "800x600" 36 800 824 896 1024 600 601 603 625
ModeLine "1024x768" 65 1024 1088 1200 1328 768 783 789 818
EndSection
Der Identifier-
Eintrag kennzeichnet den Monitor mit einem Namen. Er ist frei
wählbar (jede gültige Zeichenkette) und wird in einer späteren Sektion der
XF86Config-
Datei als Verweis auf den Monitor-
Abschnitt verwendet.
HorizSync
spezifiziert die gültigen horizontalen Synchronisationsfrequenzen
des Monitors in kHz. Bei Multisync-Monitoren können dies ein oder mehrere, durch
Komma getrennte Intervalle sein. Bei Festfrequenz-Monitoren ist es eine Reihe
von festen Werten, wie z. B.:
HorizSync 31.5, 35.2, 37.9, 35.5, 48.95
Das Monitorhandbuch sollte im Abschnitt "Technische Spezifikationen"
die entsprechenden Werte auflisten. Falls dies nicht der Fall ist, kann man
versuchen, die benötigten Informationen beim Monitorhersteller mittels WWW
oder beim Händler sebst zu bekommen.
VertRefresh
gibt die gültigen vertikalen Refresh-Raten oder vertikalen
Synchronisationsfrequenzen des Monitors in Hz an. Dies kann, wie schon bei
HorizSync,
ein Intervall oder eine Liste fester Werte sein. Auch hier sollte das
Handbuch die entsprechenden Angaben aufweisen.
Mit Hilfe der HorizSync-
und VertRefresh-
Einträge wird überprüft, ob die
angegebenen Bildschirmauflösungen sich in einem gültigen Bereich befinden. Dadurch
wird die Möglichkeit reduziert, den Monitor beim Betreiben einer unzulässigen
bzw. zu hohen Frequenz, für die er nicht ausgelegt ist, zu zerstören.
Die ModeLine-
Zeile wird zur Spezifizierung der einzelnen Auflösungen des
Monitors benutzt. Das Format von Modeline
ist:
ModeLine name clock horiz-values vert-values
Name
ist eine willkürliche Zeichenkette. Sie dient in der Datei zur
Referenzierung auf den jeweiligen Auflösungsmodus. Dot-clock
bezeichnet die
benutzte Bildpunkt-Taktfrequenz.
Die Frequenz wird gewöhnlich in MHz angegeben und gibt die Anzahl der von einer
Grafikkarte an den Monitor ausgesendeten Bildpunkte je Sekunde bei dieser
Auflösung an. Je vier Werte für horiz
und vier Werte für vert
spezifizieren
den Bildschirmaufbau, d. h., sie geben die Anzahl der Bildpunkte an, bei dem der
Elektronenstrahl eine Zeile anzeigt, eine Beruhigungsphase und den
Synchronisationsimpuls durchläuft.
Zur Bestimmung der ModeLine-
Werte für den entsprechenden Monitor sei auf die
Datei VideoModes.doc
verwiesen, die zum Umfang der XFree86-Distribution gehört.
Das Dokument beschreibt detailiert, wie diese Werte für jede vom Monitor
unterstützte Auflösung ermittelt werden können. Zu allererst muß
sichergestellt sein, daß der angegebene dot-clock-
Wert auch mit einer von der
Grafikkarte verwendeten Bildpunkt-Taktfrequenz korrespondiert. Man beachte, daß
nur solche Videomodi verwendet werden können, deren Bildpunkt-Taktfrequenz von
der Grafikkarte unterstützt wird. Im weiteren Verlauf der XF86Config-
Datei
werden die Bildpunkt-Taktfrequenzen weiter spezifiziert.
Zwei Dateien der XFree86-Distribution enthalten Daten für die ModeLine-
Zeilen
des zu verwendenden Monitors. Diese Dateien heißen: modeDB.txt
bzw. Monitors
und
befinden sich beide im Verzeichnis /usr/X11R6/lib/X11/doc
.
Anfänglich ist es empfehlenswert, mit Modeline-
Werten des VESA-Standards zu
beginnen, da die meisten Monitore ihn unterstützen. Die Datei modeDB.txt
enthält Werte für die verschiedenen VESA-Standardauflösungen, und ihre
Einträge sehen z. B. wie folgt aus:
# 640x480@60Hz Non-Interlaced mode
# Horizontal Sync = 31.5kHz
# Timing: H=(0.95us, 3.81us, 1.59us), V=(0.35ms, 0.064ms, 1.02ms)
#
# name clock horizontal timing vertical timing flags
"640x480" 25.175 640 664 760 800 480 491 493 525
Dies ist der VESA-Standard für den 640x480-Videomodus. Er benutzt eine
Bildpunkt-Taktfrequenz von 25.175, die die Grafikkarte unterstützen muß, um
diesen Modus zu benutzen (später mehr dazu). Um diesen Eintrag in der
XF86Config-
Datei zu benutzen, muß die nachfolgende Zeile eingefügt werden:
ModeLine "640x480" 25.175 640 664 760 800 480 491 493 525
Man beachte, daß der Name
der Zeile "640x480" eine frei wählbare Zeichenkette
darstellt. Nach Konvention sollte er die verwendete Auflösung bezeichnen. Für
Name
kann theoretisch auch jede andere Zeichenkette gewählt werden, die den
Modus beschreibt.
Für jede benutzte ModeLine-
Zeile überprüft der Server, ob die Angaben des Modus
innerhalb des Gültigkeitsbereichs von Bandwidth
(Bandbreite), HorizSync
und
VertRefresh
liegen. Falls sie nicht im gültigen Bereich liegen, wird der Server
beim Versuch, X zu starten, abbrechen (später auch hierzu mehr). Die vom Modus
verwendete Bildpunkt-Taktfrequenz sollte nicht größer sein als die Bandbreite.
Wie auch immer, in manchen Fällen kann ein Modus eine etwas größere Bandbreite,
als vom Monitor unterstützt, betreiben.
Stellt sich heraus, daß die Werte für die VESA-Standardmodi nicht
funktionieren, so enthalten die Dateien: modeDB.txt
und Monitors
spezifische
Einträge für viele verschiedene Monitortypen. Auf Basis dieser Einträge aus
den beiden Dateien können eigene Werte kreiert werden. Man sollte jedoch nur
dem Monitormodell entsprechende Werte benutzen. Man beachte, daß viele 14-
und 15-Zoll-Monitore eine hohe Auflösung nicht darstellen können und oftmals,
bei einer Auflösung von 1024x768 Bildpunkten, nur mit einer niedrigen
Bildpunkt-Taktfrequenz. Dies bedeutet, daß der Monitor, falls keine hohen
Auflösungsmodi in den beiden Dateien gefunden werden, sie möglicherweise nicht
unterstützt.
Sind an dieser Stelle immer noch keine gültigen Werte für den Monitor gefunden,
kann man den Instruktionen aus der der XFree86-Distribution beigefügten Datei
VideoModes.doc
folgen, um ModeLine-
Werte aus den im Monitor-Handbuch
aufgelisteten Spezifikationen selber zu generieren. Die Datei VideoModes.doc
beschreibt außerdem sehr ausführlich das Format einer ModeLine-
Direktive sowie
andere Aspekte des XFree86-Servers.
Sind die übernommenen oder selber generierten ModeLine-
Werte noch nicht ganz
perfekt, so ist es möglich, durch ein geringes Modifizieren der Werte das
gewünschte, perfekte Resultat zu erhalten. Ist z. B. während des
XFree86-Betriebes das Monitorbild ein wenig verschoben oder scheint es zu laufen, so
kann man gemäß der Anleitung in der Datei VideoModes.doc
versuchen, diese Werte
zu verbessern. Auch sollten die Einstellregler des Monitors überprüft werden.
In vielen Fällen ist es nur notwendig, die horizontale oder vertikale
Bildschirmgröße nach dem Start von XFree86 zu ändern, um das Bild zu zentrieren
und auf eine passende Größe anzuordnen. Das Vorhandensein der Kontrollregler an
der Frontseite des Monitors macht das "Leben" sicherlich leichter.
Man sollte weder Monitor-Frequenzen noch ModeLine-
Werte von Monitoren benutzen,
die nicht dem zu verwendenden Modell entsprechen. Versucht man dennoch, den
Monitor mit einer Frequenz anzusteuern, für die er nicht konzipiert ist, so
besteht die Gefahr, ihn zu beschädigen oder ihn gar zu zerstören.
Der nächste Abschnitt der Konfigurationsdatei XF86Config
ist Device
, der die
Parameter der Grafikkarte kennzeichnet. Hier ein Beispiel:
Section "Device"
Identifier "#9 GXE 64"
# Nothing yet; we fill in these values later.
EndSection
Die Sektion definiert die Eigenschaften für eine bestimmte Grafikkarte.
Identifier
ist wieder eine frei wählbare Zeichenkette, die die Karte
beschreibt. Auch hier wird der Name für einen späteren Verweis benutzt.
Anfänglich braucht außer Identifier
nichts in diesen Abschnitt eingetragen zu
werden. Das liegt daran, daß der X-Server dazu benutzt wird, die Eigenschaften
der Grafikkarte selber zu ermitteln. Anschließend können die so gefundenen
Werte in die Device-
Sektion eingetragen werden. Der X-Server ist nämlich in der
Lage, den Videochipsatz, die Bildpunkt-Taktfrequenzen, die RAMDAC sowie die
Größe des Videospeichers auf der Grafikkarte festzustellen.
Bevor diese Werte jedoch zu ermitteln sind, muß die XF86Config-
Datei durch den
letzten Abschnitt komplettiert werden. Er lautet Screen
und spezifiziert die
Kombination von Monitor und Grafikkarte für die Benutzung eines bestimmten
Servers.
Section "Screen"
Driver "Accel"
Device "#9 GXE 64"
Monitor "CTX 5468 NI"
Subsection "Display"
Depth 16
Modes "1024x768" "800x600" "640x480"
ViewPort 0 0
Virtual 1024 768
EndSubsection
EndSection
Die Zeile Driver
beschreibt den zu benutzenden X-Server. Gültige Angaben für
Driver
sind:
Accel
: Für die XF86_S3-
, XF86_Mach32-
,
XF86_Mach8-
, XF86_8514-
, XF86_P9000-
,
XF86_AGX-
und XF86_W32-
Server.SVGA
: Für den XF86_SVGA-
Server.VGA16
: Für den XF86_VGA16-
Server.VGA2
: Für den XF86_Mono-
Server.Mono
: Für die Nicht-VGA-Monochrom-Treiber der XF86_Mono-
und XF86_VGA16-
Server.Es sollte sichergestellt sein, daß ein symbolischer Link von
/usr/X11R6/bin/X
auf den zu benutzenden Server zeigt.
Die Device-
Zeile spezifiziert den Identifier
der Device-
Sektion, der mit der
verwendeten Grafikkarte korrespondiert. In dem oben angegebenen
Device-
Abschnitt ist die Zeile:
Identifier "#9 GXE 64"
eingetragen worden. Daher wird in dieser Sektion die Zeichenkette
#9 GXE 64
in die Device-
Zeile gestellt.
Ähnliches geschieht mit der Zeile Monitor
. Sie verweist auf den
Identifier
"CTX 5468 NI"
aus der oben beschriebenen
Monitor-
Sektion.
Der Unterabschnitt Display
definiert verschiedene Eigenschaften des
XFree86-Servers mit der Kombination aus Monitor und Grafikkarte. Die XF86Config-
Datei
beschreibt diese Optionen sehr detailiert. Die meisten davon sind jedoch wie
der "Zuckerguß auf einem Kuchen" und daher nicht notwendig, um ein System zum
Laufen zu bekommen.
Die wichtigsten Optionen sind:
Depth
. Definiert die Farbtiefe, d. h. die Anzahl Bits je
Bildpunkt. Der Standardwert beträgt 8. Ein VGA-Server benutzt eine Farbtiefe
von 4 und ein Monochrom-Server von 1. Bei der Benutzung einer beschleunigten
Grafikkarte mit genügend Speicher, um mehr Bits je Bildpunkt zu unterstützen,
kann der Wert auf 16, 24 oder 32 gesetzt werden. Falls dabei Probleme
auftreten, sollte der Wert auf 8 zurückgesetzt werden. Später kann man dann
versuchen, das Problem zu beheben.
Modes
. Dies ist die Liste mit Namen der verschiedenen
Videomodi, die durch die Verwendung der ModeLine-
Direktive in der
Monitor-
Sektion definiert worden sind. In dem oben aufgeführten Abschnitt sind
ModeLine-
Zeilen "1024x768"
, "800x600"
und "640x480"
benannt. Deswegen stellt sich die Zeile
Modes
wie folgt dar:
Modes "1024x768" "800x600" "640x480"
Der zuerst angegebene Modus in dieser Zeile wird standardmäßig nach dem Start
von XFree86 eingestellt. Während des Betriebes von XFree86 kann mit Hilfe der
Tastenkombination Strg-Alt-numerisch +
und
Strg-Alt-numerisch -
zwischen den angegebenen Modi gewechselt werden.
Es hat sich bei der Erstkonfiguration von XFree86 vorteilhaft erwiesen, einen
Videomodus mit einer niedrigen Auflösung, wie z. B. 640x480, zu benutzen, da
sich diese Auflösung auf den meisten Systemen problemlos darstellen läßt.
Ausgehend von dieser Basiskonfiguration kann anschließend die Datei XF86Config
modifiziert werden, um auch höhere Auflösungen zu erzielen.
Virtual
. Kennzeichnet die Größe des virtuellen Desktops. XFree86
besitzt die Fähigkeit, zusätzlichen Speicher der Grafikkarte für die
Vergrößerung der Oberfläche zu benutzen. Bewegt sich der Mauszeiger über den
Bildschirmrand hinaus, so verschiebt sich der Ausschnitt, und der zusätzliche
Bereich wird sichtbar. Bei einer Bildschirmauflösung von z. B. 800x600
Bildpunkten kann Virtual
auf die von der Grafikkarte maximal unterstützten
Auflösung gesetzt werden. Eine Grafikkarte mit 1 MB RAM unterstützt 1024x768
Bildpunkte mit einer Farbtiefe von 8 Bits je Bildpunkt, eine Karte mit 2 MB
RAM dagegen 1280x1024 Bildpunkte bei einer Farbtiefe von 8 Bits je Bildpunkt
oder 1024x768 Bildpunkte bei einer Farbtiefe von 16 Bits je Bildpunkt.
Selbstverständlich kann der gesamte virtuelle Desktop nicht auf einmal
dargestellt werden, dennoch kann man ihn insgesamt benutzen.
Die Virtual-
Option stellt eine gute Möglichkeit dar, um den Speicher der
Grafikkarte nutzbar zu machen. Dennoch ist sie ziemlich begrenzt und bietet
kaum Bedienungsmöglichkeiten. Zur Nutzung eines wahren virtuellen Desktop sollte
stattdesen fvwm
oder ein ähnlicher Fenstermanager benutzt werden. Fvwm
bietet
die Möglichkeit zur Darstellung beliebig vieler, virtueller Bildschirme,
zwischen denen mit Hilfe des Desktopmanagers umgeschaltet werden kann. So
braucht nur der aktuelle Bildschirm und nicht der gesamte Desktop in den Speicher
der Grafikkarte gestellt zu werden. Für weitere Details sollte die
Manual-Seite über fvwm
herangezogen werden. Die meisten Linux-Systeme setzen
standardmäßig fvwm
als Fenstermanager ein.
ViewPort
. Setzt bei Benutzung der oben beschriebenen
Virtual-
Option die Koordinaten der linken, oberen Ecke des virtuellen Desktops
beim Start von XFree86. Standardkoordinaten für Virtual
sind oft 0 0. Werden
für Virtual
keine Angaben gemacht, erhält man einen zum virtuellen Desktop
zentrierten Bildschirmausschnitt.Für diese Sektion existieren noch viele andere Optionen. Eine komplette
Beschreibung enthält die Manual-Seite zu XF86Config
. Für die anfängliche
Konfiguration von XFree86 sind diese Optionen aber nicht notwendig.