Linux XFree86 HOWTO

von Matt Welsh (mdw@sunsite.unc.edu) und Dirk Knabe (knabe@fh-dortmund.de) v1.0, 13. Dezember 1996

Dieses Dokument beschreibt den Bezug, die Installation und die Konfiguration von XFree86 in der Version 3.1.1, ein X-Window-System für Linux-Rechner. Es stellt eine schrittweise Einführung in die Konfiguration von XFree86 dar.

Inhalt

1 Vorwort 1

2 Einleitung 2

3 Hardwarevoraussetzungen 2

4 Installation von XFree86 4

5 Konfiguration von XFree86 6

6 Spezifikation der Grafikkarte 13

7 Starten von XFree86 16

8 Problemlösungen 17

9 Copyright 18

1 Vorwort

Dieses HOWTO stellt die deutsche Übersetzung des englischsprachigen Dokuments: The Linux XFree86 HOWTO, Version 3.0 vom 15. März 1995 von Matt Welsh dar.

Zur Zeit der Übersetzung war bereits die Version 3.1.2 von XFree86 für Linux-Systeme aktuell, jedoch bezieht sich die deutsche Ausgabe auf den Originaltext von Matt Welsh und somit auf die Version 3.1.1 von XFree86. Die Neuerungen, die die aktuelle Version von XFree86 mit sich bringt, beziehen sich jedoch nicht auf die zu erstellende Konfigurationsdatei XF86Config des X-Window-Systems, so daß die Anleitungen und Beispiele aus diesem Dokument auch für die neuere Version 3.1.2 gültig sind.

Bei der Übersetzung sind anstelle der englischen Fachausdrücke die entsprechenden deutschen Begriffe gewählt worden, wie z. B. Bildpunkt für pixel. Bei den Beispielen zur Konfiguration in diesem Dokument ist dagegen auf eine Übersetzung verzichtet worden, um der Forderung Nachdruck zu verleihen, daß in der Konfigurationsdatei zu XFree86 nur englische Begriffe für die Spezifikation der zu benutzenden Hardware verwendet werden dürfen und nicht deren deutsche Pendants, wie z. B. Section "Files" und nicht Sektion "Dateien". Bei Begriffen, die mittlerweile "eingedeutscht" sind oder sich "verselbständigt" haben, ist der englische Fachausdruck beibehalten worden, wie z. B. bei Server.

Fragen, Bemerkungen und/oder Anregungen zu diesem HOWTO richten Sie bitte per Email an:

knabe@fh-dortmund.de

2 Einleitung

Das X-Window-System ist eine große und mächtige, manchmal auch komplexe, graphische Benutzeroberfläche für UNIX-Systeme. Ursprünglich ist es am MIT (Massachusetts Institute of Technology) entwickelt worden. Kommerzielle Interessen haben es zum Indutriestandard für UNIX-Plattformen gemacht. Praktisch läuft weltweit auf jeder UNIX-Workstation irgendeine Variante des X-Window-Systems.

Eine freie Implementierung des MIT-X-Window-Systems in der Version 11, Release 6 (kurz: X11R6 genannt) für 80386/80486/Pentium-Rechner ist von einer Reihe von Programmierern, ursprünglich geleitet von David Wexelblat (dwex@XFree86.org), entwickelt worden. Eine Version, bekannt als XFree86, ist für das System V/386, 386BSD und andere x86-UNIX-Implementationen, einschließlich Linux, verfügbar. Es enthält alle erforderlichen Programme, Konfigurationsdateien, Bibliotheken sowie diverse Hilfsprogramme.

Dieses Dokument gibt eine schrittweise Anleitung, wie XFree86 für Linux installiert und konfiguriert wird. Zusätzlich sollte die jeweilige Dokumentation der entsprechenden XFree86-Version zu Rate gezogen werden. Sie wird im weiteren Verlauf des Textes an den entsprechenden Stellen benannt. Dieses HOWTO versteht sich nicht als Benutzeranleitung und auch nicht als Anleitung für die individuelle Gestaltung des X-Window-Systems. Zu diesem Zweck sollte man auf eines der vielen guten X-Window-Benutzerhandbücher zurückgreifen.

3 Hardwarevoraussetzungen

Die XFree86-Version 3.1.1, erschienen im Februar 1995, unterstützt die weiter unten aufgeführten Videochipsätze. Die der Grafikkarte beiliegende Dokumentation sollte Informationen über den verwendeten Chipsatz enthalten. Beim Kauf einer neuen Grafikkarte bzw. eines neuen Rechners sollte man den Händler nach dem exakten Namen, Modell und Chipsatz der Karte fragen. Falls er sich mit der Antwort ”rettet”, es handle sich um eine ”Standard-SVGA-Karte”, erkläre man ihm, daß die zu verwendende Software nicht alle Videochipsätze unterstütze und man daher detailierte Informationen benötige. Dies macht es eventuell erforderlich, daß der Händler den technischen Support des Herstellers der entsprechenden Grafikkarte kontaktiert - im allgemeinen wird er sich ”freuen”, dies zu tun.

Mit Hilfe des Programms SuperProbe, Bestandteil der XFree86 Distribution, läßt sich der Chipsatz der Grafikkarte bestimmen. Dieser Vorgang wird weiter unten behandelt.

Folgende Standard-SVGA-Chipsätze werden unterstützt:

• Tseng ET3000, ET4000AX, ET4000/W32

• Western Digital/Paradise PVGA1

• Western Digital WD90C00, WD90C10, WD90C11, WD90C24, WD90C30, WD90C31, WD90C33

• Genoa GVGA

• Trident TVGA8800CS, TVGA8900B, TVGA8900C, TVGA8900CL, TVGA9000, TVGA9000i, TVGA9100B, TVGA9200CX, TVGA9320, TVGA9400CX, TVGA9420

• ATI 18800, 18800-1, 28800-2, 28800-4, 28800-5, 28800-6, 68800-3, 68800-6, 68800AX, 68800LX, 88800

• NCR 77C22, 77C22E, 77C22E+

• Cirrus Logic CLGD5420, CLGD5422, CLGD5424, CLGD5426, CLGD5428, CLGD5429, CLGD5430, CLGD5434, CLGD6205, CLGD6215, CLGD6225, CLGD6235, CLGD6420

• Compaq AVGA

• OAK OTI067, OTI077 • Avance Logic AL2101

• MX MX68000, MX680010

• Video 7/Headland Technologies HT216-32

XFree86 unterstützt die nachfolgend aufgeführten, beschleunigten SVGA-Grafikkarten:

• 8514/A (und Kompatible)

• ATI Mach8, Mach32

• Cirrus CLGD5420, CLGD5422, CLGD5424, CLGD5426, CLGD5428, CLGD5429, CLGD5430, CLGD5434, CLGD6205, CLGD6215, CLGD6225, CLGD6235

• S3 86C911, 86C924, 86C801, 86C805, 86C805i, 86C928, 86C864, 86C964

• Western Digital WD90C31, WD90C33

• Weitek P9000

• IIT AGX-014, AGX-015, AGX-016

• Tseng ET4000/W32, ET4000/W32i, ET4000/W32p

Grafikkarten mit den oben aufgeführten Chipsätzen werden von allen gängigen Bustypen unterstützt, einschließlich VLB und PCI.

Die Grafikkarten unterstützen sowohl den 256-Farb- als auch den Monochrom-Modus. Ausnahme bilden hier die Avance Logic-, MX- und Video7-Chipsätze, die nur im 256-Farb-Modus betrieben werden können. Viele der oben genannten Grafikkarten können, falls sie mit genügend DRAM ausgestattet sind, 16 und 32 Bits je Bildpunkt unterstützen (insbesondere einige Mach32-, P9000-, S3- und Cirrus- Karten). Die Standardkonfiguration beträgt 8 Bits je Bildpunkt. Das entspricht dem 256-Farb-Modus.

Der Monochrom-Server unterstützt auch generische VGA-Grafikkarten, die Hercules-Monochromkarte, die Hyundai HGC1280, die Sigma Laserview und die Apollo-Monochromkarte. Nur 64 kB Videospeicher werden bei der Compaq AVGA unterstützt, und die FVGA ist noch nicht mit mehr als 64 kB getestet worden.

Diese Liste wird zweifellos im Laufe der Zeit anwachsen. Die Dokumentation der gegenwärtig aktuellen Version von XFree86 sollte jeweils die komplette Liste aller unterstützten Videochipsätze enthalten.

Ein Problem, dem die XFree-Entwickler gegenüberstehen, ist, daß einige Grafikkartenhersteller keine Standardmechanismen zur Bestimmung der Bildpunkt-Taktfrequenz, mit der die Grafikkarte betrieben wird, benutzen. Einige dieser Firmen geben die Spezifikationen für die Programmierung der Grafikkarte nicht frei, oder sie belegen die Karte mit einem besonderen Schutz, der verhindert, daß diese Informationen ausgelesen werden können. Dies steht dem Gedanken der freien Verteilung bzw. Verbreitung der XFree86-Software offensichtlich entgegen, und das XFree86-Entwicklerteam ist daher nicht bereit, diesen Zustand zu unterstützen. Die Firma Diamond, zum Beispiel, begann erst mit der Version 3.1 von XFree86 die Zusammenarbeit mit dem Entwicklerteam für die Erstellung von frei verfügbaren Treibern für ihre Grafikkarten.

Eine empfohlene Hardwareausstattung, um XFree86 unter Linux zu betreiben, ist ein 486-PC mit mindestens 8 MB RAM und eine Grafikkarte mit einem der oben aufgeführten Chipsätze. Für eine optimale Leistung ist eine beschleunigte Grafikkarte erforderlich, wie z. B. eine Karte mit einem S3-Chipsatz. Bevor eine teure Grafikkarte gekauft wird, sollte man sich in der XFree86-Dokumentation davon überzeugen, ob sie auch unterstützt wird. Benchmark-Tests zu den verschiedenen Grafikkarten unter XFree86 finden sich regeläßig

in den Newsgruppen: comp.windows.x.i386unix und de.comp.os.linux.x.

Nebenbei bemerkt, mein Linux-System besteht aus einem PC 486DX2-66, bestückt mit 20 MB RAM und einer Grafikkarte mit S3-864-Chipsatz und 2 MB DRAM. X-Benchmark-Tests sind sowohl auf dieser Maschine als auch auf einer Sun Sparc-IPX-Workstation durchgeführt worden. Das Linux-System ist ungefähr um den Faktor 7 schneller als der Sun-Rechner. Merkwürdigerweise läuft XFree86-3.1 unter Linux bei der oben genannten Grafikkarte mit ungefähr 171.000 xstones, die Sun Sparc-IPX-Workstation mit ungefähr 24.000 xstones. Im allgemeinen ist XFree86 auf einem Linux-Rechner mit einer beschleunigten SVGA-Karte leistungsfähiger als eine kommerzielle UNIX-Workstation.

Mindestens 4 MB physikalischer Speicher und 16 MB virtueller Speicher (z. B. 8 MB für den physikalischen Bereich und 8 MB für den Swapbereich) werden zum Betreiben von XFree86 benötigt. Man beachte, daß mehr physikalischer Speicher ein Ein- und Auslagern von Speicherbereichen auf die bzw. von der Festplatte verhindern, wenn der Hauptspeicher des Systems knapp wird. Da der mit dem Swappen verbundene Zugriff auf die Festplatte deutlich langsamer ist als der Zugriff auf den Hauptspeicher, werden für ein komfortables Arbeiten mit XFree86 mindestens 8 MB oder mehr RAM empfohlen. Ein System mit nur 4 MB RAM kann bis zu dem Faktor 10 langsamer sein als eines mit 8 MB oder mehr.

4 Installation von XFree86

Die Linux-Distribution von XFree86 kann von diversen FTP-Servern bezogen werden. Auf dem Server sunsite.unc.edu befindet sich die Distribution in dem Verzeichnis /pub/Linux/X11. Zur Zeit der Erstellung dieses Dokuments (von Matt Welsh) lautet die aktuelle Version von XFree86 3.1.1; neuere Versionen werden regelmäßig folgen.

Bei den gängigen Linux-Distributionen ist XFree86 bereits mit enthalten, so daß der Bezug von einem FTP-Server entfällt.

Falls XFree86 doch direkt von einem FTP-Server geladen werden soll, listet die nachfolgende Tabelle alle in der XFree86-Distribution enthaltenen Dateien auf.

Einer der folgenden Server ist erforderlich:

XF86-3.1.1-8514.tar.gz Server für die 8514-Grafikkarte.

XF86-3.1.1-AGX.tar.gz Server für die AGX-Grafikkarte.

XF86-3.1.1-Mach32.tar.gz Server für die Mach32-Grafikkarte.

XF86-3.1.1-Mach8.tar.gz Server für die Mach8-Grafikkarte.

XF86-3.1.1-Mono.tar.gz Server für die Monochrom-Grafikkarte.

XF86-3.1.1-P9000.tar.gz Server für die P9000-Grafikkarte.

XF86-3.1.1-S3.tar.gz Server für die S3-Grafikkarte.

XF86-3.1.1-SVGA.tar.gz Server für die Super-VGA-Grafikkarte.

XF86-3.1.1-VGA16.tar.gz Server für die VGA/EGA-Grafikkarte.

XF86-3.1.1-W32.tar.gz Server für die ET4000/W32-Grafikkarte.

Alle nachfolgenden Dateien sind erforderlich:

XF86-3.1.1-bin.tar.gz

Rest der XFree86-Programme. XF86-3.1.1-cfg.tar.gz

Konfigurationsdateien für xdm, xinit und fs. XF86-3.1.1-doc.tar.gz

Dokumentation und Manual-Seiten. XF86-3.1.1-inc.tar.gz

Include-Dateien. XF86-3.1.1-lib.tar.gz

Shared-X-Bibliotheken und Support-Dateien. XF86-3.1-fnt.tar.gz

Basis-Schriftarten.

Die folgenden Dateien sind wahlfrei:

XF86-3.1-ctrb.tar.gz

Ausgewählte Contrib-Dateien. XF86-3.1-extra.tar.gz

Extra XFree86-Server und Programme. XF86-3.1-lkit.tar.gz

Server-Werkzeug für benutzerdefinierte Einstellungen. XF86-3.1-fnt75.tar.gz

75-dpi-Bildschirmschriftarten. XF86-3.1-fnt100.tar.gz

100-dpi-Bildschirmschriftarten. XF86-3.1-fntbig.tar.gz

Große Kanji- und andere Schriftarten. XF86-3.1-fntscl.tar.gz

Skalierte Schriftarten (Speedo, Type1). XF86-3.1-man.tar.gz

Manual-Seiten. XF86-3.1-pex.tar.gz

PEX-Programme, Include-Dateien und Bibliotheken. XF86-3.1-slib.tar.gz

Statische X-Bibliotheken und Support-Dateien.

XF86-3.1-usrbin.tar.gz Dämonen in /usr/bin.

XF86-3.1-xdmshdw.tar.gz Shadow-Paßwort-Version von xdm.

Das XFree86-Verzeichnis enthält README-Dateien und Installationshinweise der jeweiligen aktuellen Version.

Für die Installation von XFree86 muß das Verzeichnis /usr/X11R6 unter dem Benutzer root erstellt und anschließend müssen alle oben ausgewählten Dateien von dem Katalog /usr/X11R6 mit dem Kommando:

     gzip -dc XF86-3.1.1-bin.tar.gz | tar xfB -

ausgepackt (entkomprimiert und -archiviert) werden.

Man beachte, daß alle Archive (Tar-Dateien) relativ zum Verzeichnis /usr/X11R6 gepackt sind. Daher ist es erforderlich, sie aus diesem Verzeichnis heraus auszupacken.

Nach dem Entpacken der Dateien muß ein Link von der Datei /usr/X11R6/bin/X zu dem verwendeten Server erstellt werden. Soll z. B. der SVGA-Server benutzt werden, so wird /usr/bin/X11/X an /usr/X11R6/bin/XF86 SVGA gelinkt. Falls dagegen der Monochrom-Server verwendet werden soll, muß die Datei mit dem Kommando:

     ln -sf /usr/X11R6/bin/XF86_MONO /usr/X11R6/bin/X

an XF86 MONO gelinkt werden.

Entsprechendes gilt bei der Verwendung eines anderen Servers.

Falls Unklarheit über den verwendeten Server bzw. über den Chipsatz der Grafikkarte besteht, kann hier das Programm SuperProbe weiterhelfen. Es befindet sich in dem Verzeichnis /usr/X11R6/bin und bestimmt den Chipsatz der Grafikkarte und andere wichtige Informationen, die für eine spätere Referenz notiert werden sollten.

Als nächster Schritt muß /usr/X11R6/bin im Pfad enthalten sein. Dazu kann, je nach der verwendeten Shell, die Systemdatei /etc/profile oder /etc/csh.login ediert werden, oder es wird einfach das Verzeichnis dem persönlichen Pfad beigefügt, indem die Datei /etc/.bashrc bei Benutzung der Bash-Shell oder /etc/.cshrc bei der Benutzung der C-Shell modifiziert wird.

Weiterhin muß sichergestellt werden, daß der Laufzeit-Binder ld.so das Verzeichnis /usr/X11R6/lib lokalisieren kann. Hierzu wird die Zeile:

     /usr/X11R6/lib

der Datei /etc/ld.so.conf hinzugefügt und anschließend als Benutzer root das Programm /sbin/ldconfig gestartet.

5 Konfiguration von XFree86

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:

• Die XFree86-Dokumentation. Sie befindet sich in dem Paket XFree86-3.1-doc und liegt in dem

     Verzeichnis /usr/X11R6/lib/X11/doc.

• Das XFree86-Tutorial. Es befindet sich in der Datei README.Config.

• Videochipsatz-Informationen. Zu mehreren Chipsätzen existieren eigene README-Dateien, wie z. B.: README.Cirrus und README.S3), die sich in dem oben genannten Verzeichnis befinden.

• Die Manual-Seiten von XFree86.

• Die Manual-Seiten von XF86Config.

• Die Manual-Seiten über den benutzten Server, wie z. B. 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

Man beachte, daß unter Linux zusätzliche Typangaben für andere Betriebssysteme verfügbar sind. Die Auswahl 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.

6 Spezifikation der Grafikkarte

Die XF86Config-Datei ist bis auf die kompletten Informationen über die Grafikkarte soweit fertiggestellt. Zur Ermittlung dieser restlichen Informationen wird der X-Server selber herangezogen. Die so gewonnenen Spezifikationen der Grafikkarte werden anschließend in die XF86Config-Datei eingetragen.

Anstelle den X-Server zur Ermittlung der Informationen zu starten, können auch die Dateien: modeDB.txt, AccelCards sowie Devices benutzt werden. Sie enthalten die entsprechenden XF86Config-Werte für eine Vielzahl von Grafikkarten und befinden sich in dem Verzeichnis /usr/X11R6/lib/X11/doc. Zusätzlich existieren verschiedene README-Dateien für bestimmte Chipsätze. Die in diesen Dateien gefundenen Informationen über die zu verwendende Grafikkarte mit Bildpunkt- Taktfrequenzen, Chipsatz usw. können in der Konfigurationsdatei XF86Config natürlich benutzt werden. Fehlende Spezifikationen sind mit der nun nachfolgend beschriebenen Methode zu ermitteln.

Als Beispiel dient die Konfiguration einer #9 GXE 64-Grafikkarte, die einen XF86 S3-Chipsatz benutzt. Die hier beschriebene Methode kann auch auf jede andere Karte angewendet werden.

Zuerst muß der von der Grafikkarte benutzte Chipsatz bestimmt werden. Dazu kann man das Programm SuperProbe verwenden, das sich im Verzeichnis /usr/X11R6/bin befindet. Man beachte, daß der Name des Chipsatzes, so wie er von dem X-Server verwendet wird, erforderlich ist. Um ihn zu ermitteln, wird das Kommando:

     X -showconfig

eingegeben, das sämtliche dem X-Server bekannten Chipsatznamen auflistet. Die Manual-Seiten für den entsprechenden X-Server enthalten auch diese Namen. Für den beschleunigten XF86 S3-Server erhält man z. B. mit Hilfe von X -showconfig folgende Informationen:

     XFree86 Version 3.1 / X Window System
     (protocol Version 11, revision 0, vendor release 6000)
     Operating System: Linux
     Configured drivers:
       S3: accelerated server for S3 graphics adaptors (Patchlevel 0)
           mmio_928, s3_generic

Die gültigen Chipsatznamen für diesen Server lauten mmio 928 und s3 generic. Die XF86 S3-Manual-Seite beschreibt diese Chipsätze und welche Grafikkarten sie benutzen. Im Fall der #9 GXE 64-Grafikkarte wird mmio 928 verwendet.

Falls der Chipsatzname noch unbekannt ist oder Zweifel bestehen, welcher auszuwählen ist, kann wiederum der X-Server benutzt werden, um ihn zu ermitteln. Bei der Verwendung der Bash-Shell wird das Kommando durch:

     X -probeonly > /tmp/x.out 2>&1

gestartet. Wird dagegen die C-Shell benutzt, so muß

     X -probeonly &> /tmp/x.out

eingegeben werden.

Das Kommando sollte abgesetzt werden, solange das System noch nicht geladen ist, d. h., solange sich keine andere Aktivität im System ereignet. Da der Befehl auch die Bildpunkt-Taktfrequenzen der Grafikkarte ermittelt, können zusätzliche Systembelastungen das Ergebnis verfälschen.

Die von dem oben angegebenen Kommando erzeugte Ausgabe, die sich in der Datei /tmp/x.out befindet, enthält z. B. die folgenden Zeilen:

     XFree86 Version 3.1 / X Window System
     (protocol Version 11, revision 0, vendor release 6000)
     Operating System: Linux
     Configured drivers:
       S3: accelerated server for S3 graphics adaptors (Patchlevel 0)
           mmio_928, s3_generic
        ...
     (--) S3: card type: 386/486 localbus
     (--) S3: chipset:   864 rev. 0
     (--) S3: chipset driver: mmio_928

Der Server, in diesem Fall der XF86 S3, kennt demnach zwei gültige Chipsatznamen: mmio 928 und s3 generic, wobei er speziell für die verwendete Grafikkarte den mmio 928-Chipsatz ermittelt hat.

Der so gefundene Name des Chipsatzes wird anschließend in die Zeile Chipset des Device-Abschnitts der XF86Config-Datei eingetragen. Zum Beispiel:

     Section "Device"
             # We already had Identifier here...
             Identifier "#9 GXE 64"
             # Add this line:
             Chipset "mmio_928"
     EndSection

Als nächstes sind die von der Grafikkarte benutzten Bildpunkt-Taktfrequenzen zu bestimmen. Die Bildpunkt-Taktfrequenz (dot-clock) gibt die Anzahl der Bildpunkte an, die die Grafikkarte je Zeiteinheit zum Monitor senden kann. Wie bereits an oberer Stelle gezeigt, besitzt jede Bildschirmauflösung ihre eigene Bildpunkt-Taktfrequenz. Die von der Grafikkarte unterstützen Werte gilt es nun im folgenden zu bestimmen.

Zuerst sollte man aber die bereits erwähnten Dateien modeDB.txt usw. überprüfen, ob dort die benötigten Bildpunkt-Taktfrequenzen für die zu benutzende Grafikkarte aufgelistet sind. Sie werden gewöhnlich in einer Liste mit 8 oder 16 Werten angegeben. Die Einheit ist MHz. Die Datei modeDB.txt gibt z. B. für die Grafikkarte Cardinal ET4000 folgende Zeilen aus:

     # chip    ram   virtual   clocks                           default-mode  flags
      ET4000   1024  1024 768   25  28  38  36  40  45  32   0  "1024x768"

Wie das Beispiel zeigt, sind die Bildpunkt-Taktfrequenzen für diese Karte: 25, 28, 38, 36, 40, 45, 32 und 0 MHz.

In dem Device-Abschnitt der XF86Config-Datei wird demnach eine Zeile Clocks hinzugefügt, die die Liste der Bildpunkt-Taktfrequenzen enthält. Bezogen auf das Beispiel wird die Zeile:

             Clocks 25 28 38 36 40 45 32 0

nach der Chipset-Zeile in die Device-Sektion eingetragen. Man beachte, daß die Reihenfolge der Werte sehr wichtig ist. Die Liste darf weder neu sortiert noch dürfen mehrfach auftretende Werte entfernt werden.

Sind die Bildpunkt-Taktfrequenzen einer speziellen Grafikkarte nicht bekannt, so kann auch hier der X-Server wieder benutzt werden, diese Werte selber zu ermitteln. Mit dem weiter oben beschriebenen Kommando X -probeonly erhält die Ausgabe unter anderem eine Zeile mit den gewünschten Werten. Für die Grafikkarte #9 GXE 64 sieht sie z. B. wie folgt aus:

     (--) S3: clocks:  25.18  28.32  38.02  36.15  40.33  45.32  32.00  00.00

Sämtliche ausgegebenen Werte werden der Clocks-Zeile hinzugefügt. Passen nicht alle Werte in eine Zeile, da oftmals mehr als 8 Werte angezeigt werden, können sie auf mehrere Clocks-Zeilen in der XF86Config-Datei verteilt werden. An dieser Stelle noch einmal der Hinweis, daß die Liste mit den Werten in der ausgegebenen Reihenfolge beibehalten werden muß!

Bei der Ermittlung der Bildpunkt-Taktfrequenzen mit Hilfe des Kommandos X -probeonly darf es keine Clocks-Zeile in der Device-Sektion von XF86Config geben. Notfalls kann sie auskommentiert werden. Beim Vorhandensein dieser Zeile wird der Server die Werte nicht selber ermitteln, sondern die bereits in der XF86Config-Datei aufgeführten Werte benutzen.

Man beachte, daß einige beschleunigte Grafikkarten einen programmierbaren Clockchip benutzen. Für weitere Details kann die XF86-Accel-Manual-Seite herangezogen werden. Dies gilt besonders für S3-, AGXund XGA-2-Karten. Dieser Chip ermöglicht dem X-Server der Grafikkarte mitzuteilen, welche Bildpunkt-Taktfrequenzen zu benutzen sind. In diesem Fall findet man in keiner der oben genannten Datei eine Liste von Werten für die zu benutzende Karte oder sie enthält nach der Anwendung von X -probeonly höchstens 1 oder 2 feste Werte, ansonsten nur Duplikate oder Nullwerte.

Bei der Benutzung von Grafikkarten mit einem programmierbaren Clockchip wird in der XF86Conifg-Datei anstelle einer Clocks- eine ClockChip-Zeile verwendet. ClockChip enthält den Namen des von der Karte benutzten Clockchips. Die Manual-Seiten der verschiedenen Server enthalten sämtliche Namen. Die README.S3-Datei gibt z. B. für verschiedene S3-864-Grafikkarten den ICD2061A-Clockchip an. Dieser Name wird dann anstelle von Clocks in die Zeile:

        ClockChip "icd2061a"

der XF86Config-Datei eingetragen. In dem Device-Abschnitt steht diese Zeile, wie auch schon Clocks, hinter der Chipset-Zeile. Einige beschleunigte Grafikkarten erforden zusätzlich die Spezifizierung eines RAMDAC-Chiptypen, dessen Name in die Ramdac-Zeile der XF86Config-Datei einzutragen ist. Die Manual-Seite von XF86 Accell beschreibt diese Option. Gewöhnlich wird die RAMDAC vom X-Server korrekt ermittelt.

Einige Typen von Grafikkarten erfordern zusätzliche Angaben verschiedener Optionen in der Device-Sektion von XF86Config. Diese Optionen werden ausführlich auf den Manual-Seiten der entsprechenden Server sowie in den verschiedenen Dateien, wie z. B. README.cirrus oder README.S3, beschrieben. Sie können mit Hilfe der Option-Zeile gesetzt werden. Die #9 GXE 64- Grafikkarte erfordert z. B. zwei Optionen:

             Option "number_nine"
             Option "dac_8_bit"

Normalerweise kann der X-Server auch ohne diese Optionen betrieben werden. Jedoch sind sie zum Erzielen der größtmöglichen Leistung notwendig. Es existiert noch eine Vielzahl solcher Optionen, die hier aber nicht weiter aufgeführt werden. Jede dieser Optionen hängt von einer bestimmten Grafikkarte ab. Sowohl die Manual-Seiten über die X-Server als auch die verschiedenen Dateien in /usr/X11R6/lib/X11/doc beschreiben diese Optionen ausführlich, falls eine von ihnen benutzt werden muß.

Nachdem alle Einträge in die Device-Sektion vollzogen sind, sieht sie für die #9 GXE 64-Grafikkarte folgendermaßen aus:

     Section "Device"
             # Device section for the #9 GXE 64 only!
             Identifier "#9 GXE 64"
             Chipset "mmio_928"
             ClockChip "icd2061a"
             Option "number_nine"
             Option "dac_8_bit"
     EndSection

Die meisten Grafikkarten werden anstelle der ClockChip-Zeile eine Clocks-Zeile erfordern. Man beachte, daß der oben angegebene Device-Abschnitt nur für die spezielle Grafikkarte #9 GXE 64 gültig ist. Er ist hier nur als Beispiel aufgeführt.

7 Starten von XFree86

Nach Fertigstellung der Konfigurationsdatei XF86Config kann nun der X-Server gestartet werden. Zuerst sollte sichergestellt sein, daß /usr/X11R6/bin im Pfad eingetragen ist.

Das Kommando zum Starten von XFree86 lautet:

     startx

Startx startet sowohl den X-Server als auch die Kommandos der sich im Home-Verzeichnis befindenden Datei .xinitrc. .xinitrc ist einfach ein Shell-Skript, das die zu startenden X-Klienten enthält. Falls diese Datei im Home-Verzeichnis nicht existiert, benutzt das System die Standarddatei in

/usr/X11R6/lib/X11/xinit/xinitrc.

Eine Standard-.xinitrc-Datei sieht z. B. wie folgt aus:

     #!/bin/sh
     xterm -fn 7x13bold -geometry 80x32+10+50 &
     xterm -fn 9x15bold -geometry 80x34+30-10 &
     oclock -geometry 70x70-7+7 &

     xsetroot -solid midnightblue &
     exec twm

Dieses Skript startet zwei xterm-Klienten, eine oclock-Uhr und setzt die Hintergrundfarbe des Root-Fensters auf midnightblue. Anschließend wird der Fenstermanager twm aufgerufen. Man beachte, daß twm mit der Shell-Anweisung exec ausgeführt wird. Dies veranlaßt, daß der xinit-Prozeß durch twm ersetzt wird. Nach Beendigung des twm-Prozesses fährt der X-Server auch herunter. Mit Hilfe des Hauptmenüs kann veranlaßt werden, twm zu beenden. Dazu führt man den Mauszeiger auf den Desktop-Hintergrund, drückt die Maustaste 1 und wählt anschließend mit der Maus aus dem eingeblendeten Pop-Up-Menü den Befehl: Exit Twm.

Es sollte sichergestellt sein, daß das letzte Kommando in der .xinitrc-Datei mit der exec-Anweisung gestartet und daß es nicht durch das Hinzufügen eines kaufmännischen UND & am Ende der Zeile als Hintergrundprozeß aufgerufen wird. Dadurch fährt der X-Server herunter, sobald er alle Klienten aus der .xinitrc-Datei gestartet hat.

Alternativ kann der X-Server durch die Tastenkombination Strg-Alt-Rücktaste beendet werden. Dies beendet den X-Server direkt und somit auch den Fenstermanager.

Die oben angegebene .xinitrc-Datei stellt eine sehr einfache Desktop-Konfiguration dar. Viele mächtige Programme und Konfigurationen sind mit einem geringen Arbeitsaufwand an der .xinitrc-Datei möglich. Der fvwm-Fenstermanager stellt z. B. einen virtuellen Desktop bereit, dessen Farben, Schriftarten, Fenstergrößen und -positionen usw. vom Anwender nach "Herzenslust" eingestellt bzw. definiert werden können. Erscheint das X-Window-System anfänglich als eher schlicht und einfach, so erweist es sich nach benutzerdefinierter Konfiguration doch als sehr mächtig.

Dem Einsteiger in das X-Window-System sei das Buch: The X Window System: A User’s Guide empfohlen, da die Benutzung und Konfiguration von X zu umfangreich ist, um sie hier ausführlich zu behandeln. Für einen ersten Anhaltspunkt können die Manual-Seiten zu xterm, oclock und fvwm herangezogen werden.

8 Problemlösungen

Oftmals stellen sich beim erstmaligen Starten des X-Servers Fehler ein. Diese werden fast immer durch falsche Einstellungen in der XF86Config-Datei verursacht. Gewöhnlich sind entweder die Monitor- oder die Bildpunkt-Taktfrequenzen nicht korrekt gesetzt. Ein sicheres Anzeichen für falsch gewählte Werte stellt z. B. eine durchlaufende Bildschirmanzeige bzw. verschwommene -kanten dar. Außerdem sollte die korrekte Spezifizierung des Chipsatzes der Grafikkarte sichergestellt sein, sowie der anderen Optionen im Device-Abschnitt der XF86Config-Datei. Auch muß der richtige X-Server verwendet werden, und /usr/X11R6/bin/X muß mit Hilfe eines symbolischen Links auf diesen Server verweisen.

Schlagen alle Versuche fehl, den X-Server zu starten, so kann er mit Hilfe des Kommandos:

     X > /tmp/x.out 2>&1

direkt aufgerufen werden und sämtliche Warnungen und Fehler des Servers werden in die Datei /tmp/x.out umgeleitet. Anschließend, nach Beendigung des Servers mit der Tastenkombination Strg-Alt-Rücktaste, kann der Inhalt der Datei x.out untersucht werden.

Die in der XFree86-Distribution enthaltene Datei VideoModes.doc stellt zahlreiche Hinweise bei der Ermittlung der richtigen Werte für die XF86Config-Datei bereit.

Mit Hilfe der Tastenkombinationen Strg-Alt-numerisch + und Strg-Alt-numerisch - kann zwischen den in der Modes-Zeile der Screen-Sektion von XF86Config aufgeführten Grafikmodi umgeschaltet werden. Falls die höchstmögliche Auflösung fehlerhaft ist, besteht somit die Möglichkeit, auf eine niedrigere Auflösung umzuschalten. Dadurch erhält man einen guten Überblick, welche Abschnitte der X-Konfiguration korrekt arbeiten.

Zusätzlich können die Einstellregler des Monitors für die horizontale und vertikale Bildlage bzw. für die vertikale Höhen- und die horizontale Breiteneinstellung überprüft werden. In vielen Fällen ist nur eine Korrektur mit Hilfe der Einstellregler notwendig, nachdem X gestartet worden ist. Scheint das Bild z. B. nach einer Seite hin verschoben, so kann dies durch eine Justierung der Kontrollregler korrigiert werden.

Es existieren verschiedene Newsgruppen zum Thema XFree86, wie z. B.: comp.windows.x.i386unix und de.comp.os.linux.x. Sie sind eine gute Adresse, wo man eventuell Hinweise bezüglich der zu benutzenden Videokonfiguration erhalten kann, falls man dort "jemandem in die Arme läuft", der das gleiche Problem hat bzw. es schon gelöst hat.

9 Copyright

Dieses Dokument ist urheberrechtlich geschützt. Das Copyright für die englische XFree86 HOWTO liegt bei Matt Welsh. Das Copyright für die deutsche Version liegt bei Dirk Knabe.

Das Dokument darf gemäß der GNU General Public License verbreitet werden. Insbesondere bedeutet dies, daß der Text sowohl über elektronische wie auch physikalische Medien, ohne die Zahlung von Lizenzgebühren, verbreitet werden darf, solange dieser Copyright-Hinweis nicht entfernt wird. Eine kommerzielle Verbreitung ist erlaubt und ausdrücklich erwünscht. Bei einer Publikation in Papierform ist das deutsche Linux HOWTO Projekt hierüber zu informieren.

Der Autor übernimmt keinerlei Haftung für den Inhalt des Dokuments. Die Verwendung der im Text beschriebenen Konzepte, Beispiele usw. geschieht auf eigene Verantwortung.