Linux XFree86 HOWTO <author>von Matt Welsh (<tt>mdw@sunsite.unc.edu</tt>) und Dirk Knabe (<tt>knabe@fh-dortmund.de</tt>) <date>v1.0, 13. Dezember 1996 <abstract> 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. </abstract> <toc> <sect>Vorwort <p> Dieses HOWTO stellt die deutsche Übersetzung des englischsprachigen Dokuments: <em>The Linux XFree86 HOWTO</em>, 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. <em>Bildpunkt</em> für <em>pixel</em>. 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. <tt>Section &dquot;Files&dquot;</tt> und nicht <tt>Sektion &dquot;Dateien&dquot;</tt>. Bei Begriffen, die mittlerweile &dquot;eingedeutscht&dquot; sind oder sich &dquot;verselbständigt&dquot; haben, ist der englische Fachausdruck beibehalten worden, wie z. B. bei <tt>Server</tt>. Fragen, Bemerkungen und/oder Anregungen zu diesem HOWTO richten Sie bitte per Email an: <tt><htmlurl url="mailto:knabe@fh-dortmund.de" name="knabe@fh-dortmund.de"></tt> <sect>Einleitung <p> 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 (<tt><htmlurl url="mailto:dwex@XFree86.org" name="dwex@XFree86.org"></tt>), 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. <sect>Hardwarevoraussetzungen <p> 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 <tt>SuperProbe</tt>, 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: <itemize> <item> Tseng ET3000, ET4000AX, ET4000/W32 <item> Western Digital/Paradise PVGA1 <item> Western Digital WD90C00, WD90C10, WD90C11, WD90C24, WD90C30, WD90C31, WD90C33 <item> Genoa GVGA <item> Trident TVGA8800CS, TVGA8900B, TVGA8900C, TVGA8900CL, TVGA9000, TVGA9000i, TVGA9100B, TVGA9200CX, TVGA9320, TVGA9400CX, TVGA9420 <item> ATI 18800, 18800-1, 28800-2, 28800-4, 28800-5, 28800-6, 68800-3, 68800-6, 68800AX, 68800LX, 88800 <item> NCR 77C22, 77C22E, 77C22E+ <item> Cirrus Logic CLGD5420, CLGD5422, CLGD5424, CLGD5426, CLGD5428, CLGD5429, CLGD5430, CLGD5434, CLGD6205, CLGD6215, CLGD6225, CLGD6235, CLGD6420 <item> Compaq AVGA <item> OAK OTI067, OTI077 <item> Avance Logic AL2101 <item> MX MX68000, MX680010 <item> Video 7/Headland Technologies HT216-32 </itemize> XFree86 unterstützt die nachfolgend aufgeführten, beschleunigten SVGA-Grafikkarten: <itemize> <item> 8514/A (und Kompatible) <item> ATI Mach8, Mach32 <item> Cirrus CLGD5420, CLGD5422, CLGD5424, CLGD5426, CLGD5428, CLGD5429, CLGD5430, CLGD5434, CLGD6205, CLGD6215, CLGD6225, CLGD6235 <item> S3 86C911, 86C924, 86C801, 86C805, 86C805i, 86C928, 86C864, 86C964 <item> Western Digital WD90C31, WD90C33 <item> Weitek P9000 <item> IIT AGX-014, AGX-015, AGX-016 <item> Tseng ET4000/W32, ET4000/W32i, ET4000/W32p </itemize> 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: <tt><htmlurl url="news:comp.windows.x.i386unix" name="comp.windows.x.i386unix"></tt> und <tt><htmlurl url="news:de.comp.os.linux.x" name="de.comp.os.linux.x"></tt>. 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 <tt>Swappen</tt> 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. <sect>Installation von XFree86 <p> Die Linux-Distribution von XFree86 kann von diversen FTP-Servern bezogen werden. Auf dem Server <tt><htmlurl url="ftp://sunsite.unc.edu" name="sunsite.unc.edu"></tt> befindet sich die Distribution in dem Verzeichnis <tt>/pub/Linux/X11</tt>. 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: <descrip> <tag/XF86-3.1.1-8514.tar.gz/ Server für die 8514-Grafikkarte. <tag/XF86-3.1.1-AGX.tar.gz/ Server für die AGX-Grafikkarte. <tag/XF86-3.1.1-Mach32.tar.gz/ Server für die Mach32-Grafikkarte. <tag/XF86-3.1.1-Mach8.tar.gz/ Server für die Mach8-Grafikkarte. <tag/XF86-3.1.1-Mono.tar.gz/ Server für die Monochrom-Grafikkarte. <tag/XF86-3.1.1-P9000.tar.gz/ Server für die P9000-Grafikkarte. <tag/XF86-3.1.1-S3.tar.gz/ Server für die S3-Grafikkarte. <tag/XF86-3.1.1-SVGA.tar.gz/ Server für die Super-VGA-Grafikkarte. <tag/XF86-3.1.1-VGA16.tar.gz/ Server für die VGA/EGA-Grafikkarte. <tag/XF86-3.1.1-W32.tar.gz/ Server für die ET4000/W32-Grafikkarte. </descrip> Alle nachfolgenden Dateien sind erforderlich: <descrip> <tag/XF86-3.1.1-bin.tar.gz/ Rest der XFree86-Programme. <tag/XF86-3.1.1-cfg.tar.gz/ Konfigurationsdateien für <tt>xdm</tt>, <tt>xinit</tt> und <tt>fs</tt>. <tag/XF86-3.1.1-doc.tar.gz/ Dokumentation und Manual-Seiten. <tag/XF86-3.1.1-inc.tar.gz/ Include-Dateien. <tag/XF86-3.1.1-lib.tar.gz/ Shared-X-Bibliotheken und Support-Dateien. <tag/XF86-3.1-fnt.tar.gz/ Basis-Schriftarten. </descrip> Die folgenden Dateien sind wahlfrei: <descrip> <tag/XF86-3.1-ctrb.tar.gz/ Ausgewählte Contrib-Dateien. <tag/XF86-3.1-extra.tar.gz/ Extra XFree86-Server und Programme. <tag/XF86-3.1-lkit.tar.gz/ Server-Werkzeug für benutzerdefinierte Einstellungen. <tag/XF86-3.1-fnt75.tar.gz/ 75-dpi-Bildschirmschriftarten. <tag/XF86-3.1-fnt100.tar.gz/ 100-dpi-Bildschirmschriftarten. <tag/XF86-3.1-fntbig.tar.gz/ Große Kanji- und andere Schriftarten. <tag/XF86-3.1-fntscl.tar.gz/ Skalierte Schriftarten (Speedo, Type1). <tag/XF86-3.1-man.tar.gz/ Manual-Seiten. <tag/XF86-3.1-pex.tar.gz/ PEX-Programme, Include-Dateien und Bibliotheken. <tag/XF86-3.1-slib.tar.gz/ Statische X-Bibliotheken und Support-Dateien. <tag/XF86-3.1-usrbin.tar.gz/ Dämonen in /usr/bin. <tag/XF86-3.1-xdmshdw.tar.gz/ Shadow-Paßwort-Version von xdm. </descrip> Das XFree86-Verzeichnis enthält <tt/README/-Dateien und Installationshinweise der jeweiligen aktuellen Version. Für die Installation von XFree86 muß das Verzeichnis <tt>/usr/X11R6</tt> unter dem Benutzer <tt/root/ erstellt und anschließend müssen alle oben ausgewählten Dateien von dem Katalog <tt>/usr/X11R6</tt> mit dem Kommando: <tscreen><verb> gzip -dc XF86-3.1.1-bin.tar.gz | tar xfB - </verb></tscreen> ausgepackt (entkomprimiert und -archiviert) werden. Man beachte, daß alle Archive (Tar-Dateien) relativ zum Verzeichnis <tt>/usr/X11R6</tt> gepackt sind. Daher ist es erforderlich, sie aus diesem Verzeichnis heraus auszupacken. Nach dem Entpacken der Dateien muß ein Link von der Datei <tt>/usr/X11R6/bin/X</tt> zu dem verwendeten Server erstellt werden. Soll z. B. der SVGA-Server benutzt werden, so wird <tt>/usr/bin/X11/X</tt> an <tt>/usr/X11R6/bin/XF86_SVGA</tt> gelinkt. Falls dagegen der Monochrom-Server verwendet werden soll, muß die Datei mit dem Kommando: <tscreen><verb> ln -sf /usr/X11R6/bin/XF86_MONO /usr/X11R6/bin/X </verb></tscreen> an <tt>XF86_MONO</tt> 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 <tt>SuperProbe</tt> weiterhelfen. Es befindet sich in dem Verzeichnis <tt>/usr/X11R6/bin</tt> 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ß <tt>/usr/X11R6/bin</tt> im Pfad enthalten sein. Dazu kann, je nach der verwendeten Shell, die Systemdatei <tt>/etc/profile</tt> oder <tt>/etc/csh.login</tt> ediert werden, oder es wird einfach das Verzeichnis dem persönlichen Pfad beigefügt, indem die Datei <tt>/etc/.bashrc</tt> bei Benutzung der Bash-Shell oder <tt>/etc/.cshrc</tt> bei der Benutzung der C-Shell modifiziert wird. Weiterhin muß sichergestellt werden, daß der Laufzeit-Binder <tt>ld.so</tt> das Verzeichnis <tt>/usr/X11R6/lib</tt> lokalisieren kann. Hierzu wird die Zeile: <tscreen><verb> /usr/X11R6/lib </verb></tscreen> der Datei <tt>/etc/ld.so.conf</tt> hinzugefügt und anschließend als Benutzer <tt>root</tt> das Programm <tt>/sbin/ldconfig</tt> gestartet. <sect>Konfiguration von XFree86 <p> 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 <tt>XF86Config</tt>, 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: <itemize> <item>Die XFree86-Dokumentation. Sie befindet sich in dem Paket <tt>XFree86-3.1-doc</tt> und liegt in dem Verzeichnis <tt>/usr/X11R6/lib/X11/doc</tt>. <item>Das XFree86-Tutorial. Es befindet sich in der Datei <tt>README.Config</tt>. <item>Videochipsatz-Informationen. Zu mehreren Chipsätzen existieren eigene <tt>README-Dateien</tt>, wie z. B.: <tt>README.Cirrus</tt> und <tt>README.S3</tt>), die sich in dem oben genannten Verzeichnis befinden. <item>Die Manual-Seiten von <tt>XFree86</tt>. <item>Die Manual-Seiten von <tt>XF86Config</tt>. <item>Die Manual-Seiten über den benutzten Server, wie z. B. <tt>XF86_SVGA</tt> oder <tt>XF86_S3</tt>). </itemize> Die <tt>Haupt-</tt>Konfigurationsdatei ist <tt>/usr/X11R6/lib/X11/XF86Config</tt>. Sie enthält Informationen über die Maus, die Grafikkarte, den Monitor usw. Die mit der XFree86-Distribution bereitgestellte Datei <tt>XF86Config.eg</tt> enthält eine Beispielskonfiguration, die als Ausgangspunkt für die eigene Konfiguration benutzt werden kann. Dazu wird sie nach <tt>XF86Config</tt> kopiert. Die <tt>XF86Config-</tt>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 <tt>Muster-XF86Config-</tt>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 <tt>XF86Config</tt> 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 <tt>XF86Config-Datei</tt> sollte absolut sichergestellt werden, daß sie mit der verwendeten Hardware korrespondiert". Jeder Abschnitt einer <tt>XF86Config-</tt>Datei wird von dem folgenden Zeilenpaar umgeben: <tscreen><verb> Section "section-name" ... EndSection </verb></tscreen> Der erste Abschnitt der <tt>XF86Config-</tt>Datei ist <tt>Files</tt>, der wie folgt aussieht: <tscreen><verb> Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "/usr/X11R6/lib/X11/fonts/misc/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/" EndSection </verb></tscreen> Die <tt>RgbPath-</tt>Zeile setzt den Pfad zu der X11R6-RGB-Farbdatenbank, und jede <tt>FontPath-</tt>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 <tt>FontPath-</tt>Eintrag existiert. Das bedeutet, daß für jedes Verzeichnis in <tt>/usr/X11R6/lib/X11/fonts</tt> ein Eintrag in der Sektion <tt>Files</tt> steht. Der nächste Abschnitt lautet <tt>ServerFlags</tt>, der verschiedene globale Flags des Servers spezifiziert. Er enthält im allgemeinen keinen Eintrag. <tscreen><verb> 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 </verb></tscreen> Alle Zeilen innerhalb der Sektion sind daher mit Hilfe des Nummernzeichen # auskommentiert. Der folgende Abschnitt <tt>Keyboard</tt> beschreibt die Standardeinstellungen für die Tastatur. <tscreen><verb> Section "Keyboard" Protocol "Standard" AutoRepeat 500 5 ServerNumLock EndSection </verb></tscreen> Für eine Modifizierung der Tastatureinstellungen mit Hilfe zusätzlicher Optionen wird auf die Datei <tt>XF86Config</tt> hingewiesen. Die oben angegebenen Werte sollten auf den meisten Systemen funktionieren. Die Parameter für die Maus werden im nächsten Abschnitt spezifiziert. <tscreen><verb> 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 </verb></tscreen> Von anfänglicher Bedeutung sind hier die beiden Optionen: <tt>Protocol</tt> und <tt>Device</tt>. <tt>Protocol</tt> spezifiziert das von der Maus verwendete Protokoll, nicht aber die Marke der Maus. Gültige Protokolltypen sind: <itemize> <item> <tt>BusMouse</tt> <item> <tt>Logitech</tt> <item> <tt>Microsoft</tt> <item> <tt>MMSeries</tt> <item> <tt>Mouseman</tt> <item> <tt>MouseSystems</tt> <item> <tt>PS/2</tt> <item> <tt>MMHitTab</tt> </itemize> Man beachte, daß unter Linux zusätzliche Typangaben für andere Betriebssysteme verfügbar sind. Die Auswahl <tt>BusMouse</tt> sollte bei der <tt>Logitech-Busmaus</tt> verwendet werden. Ferner sollte man beachten, daß ältere <tt>Logitech-Mäuse</tt> das <tt>Logitech-</tt>, dagegen neuere Modelle entweder das <tt>Microsoft-</tt> oder das <tt>Mouseman-</tt>Protokoll benutzen. Dies ist ein Grund, warum das Protokoll nichts mit der Mausmarke zu tun hat. Die Auswahl <tt>Device</tt> beschreibt die Schnittstelle, an der die Maus angeschlossen ist. Bei den meisten Linux-Systemen ist dies <tt>/dev/mouse</tt>. Gewöhnlich ist <tt>/dev/mouse</tt> ein Link auf die passende serielle Schnittstelle <tt>/dev/cua0</tt> für serielle Mäuse bzw. die passende Schnittstelle für Busmäuse. Auf jeden Fall sollte man sich überzeugen, daß die im <tt>Device-</tt>Abschnitt angegebene Gerätedatei existiert. Der nächste Abschnitt lautet <tt>Monitor</tt> und beschreibt die Kenndaten des Monitors. Er kann, wie andere Sektionen in der <tt>XF86Config-</tt>Datei auch, mehrmals auftreten. Dies ist nützlich, falls mehrere Monitore an ein System angeschlossen sind oder die gleiche <tt>XF86Config-</tt>Datei unter verschiedenen Hardware-Konfigurationen benutzt werden soll. Gewöhnlich wird nur ein einzelner <tt>Monitor-</tt>Abschnitt verwendet. <tscreen><verb> 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 </verb></tscreen> Der <tt>Identifier-</tt>Eintrag kennzeichnet den Monitor mit einem Namen. Er ist frei wählbar (jede gültige Zeichenkette) und wird in einer späteren Sektion der <tt>XF86Config-</tt>Datei als Verweis auf den <tt>Monitor-</tt>Abschnitt verwendet. <tt>HorizSync</tt> 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.: <tscreen><verb> HorizSync 31.5, 35.2, 37.9, 35.5, 48.95 </verb></tscreen> Das Monitorhandbuch sollte im Abschnitt &dquot;Technische Spezifikationen&dquot; 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. <tt>VertRefresh</tt> gibt die gültigen vertikalen Refresh-Raten oder vertikalen Synchronisationsfrequenzen des Monitors in Hz an. Dies kann, wie schon bei <tt>HorizSync,</tt> ein Intervall oder eine Liste fester Werte sein. Auch hier sollte das Handbuch die entsprechenden Angaben aufweisen. Mit Hilfe der <tt>HorizSync-</tt> und <tt>VertRefresh-</tt>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 <tt>ModeLine-</tt>Zeile wird zur Spezifizierung der einzelnen Auflösungen des Monitors benutzt. Das Format von <tt>Modeline</tt> ist: <tscreen><verb> ModeLine name clock horiz-values vert-values </verb></tscreen> <tt>Name</tt> ist eine willkürliche Zeichenkette. Sie dient in der Datei zur Referenzierung auf den jeweiligen Auflösungsmodus. <tt>Dot-clock</tt> 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 <tt>horiz</tt> und vier Werte für <tt>vert</tt> 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 <tt>ModeLine-</tt>Werte für den entsprechenden Monitor sei auf die Datei <tt>VideoModes.doc</tt> 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 <tt>dot-clock-</tt>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 <tt>XF86Config-</tt>Datei werden die Bildpunkt-Taktfrequenzen weiter spezifiziert. Zwei Dateien der XFree86-Distribution enthalten Daten für die <tt>ModeLine-</tt>Zeilen des zu verwendenden Monitors. Diese Dateien heißen: <tt>modeDB.txt</tt> bzw. <tt>Monitors</tt> und befinden sich beide im Verzeichnis <tt>/usr/X11R6/lib/X11/doc</tt>. Anfänglich ist es empfehlenswert, mit <tt>Modeline-</tt>Werten des VESA-Standards zu beginnen, da die meisten Monitore ihn unterstützen. Die Datei <tt>modeDB.txt</tt> enthält Werte für die verschiedenen VESA-Standardauflösungen, und ihre Einträge sehen z. B. wie folgt aus: <tscreen><verb> # 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 </verb></tscreen> 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 <tt>XF86Config-</tt>Datei zu benutzen, muß die nachfolgende Zeile eingefügt werden: <tscreen><verb> ModeLine "640x480" 25.175 640 664 760 800 480 491 493 525 </verb></tscreen> Man beachte, daß der <tt>Name</tt> der Zeile &dquot;640x480&dquot; eine frei wählbare Zeichenkette darstellt. Nach Konvention sollte er die verwendete Auflösung bezeichnen. Für <tt>Name</tt> kann theoretisch auch jede andere Zeichenkette gewählt werden, die den Modus beschreibt. Für jede benutzte <tt>ModeLine-</tt>Zeile überprüft der Server, ob die Angaben des Modus innerhalb des Gültigkeitsbereichs von <tt>Bandwidth</tt> (Bandbreite), <tt>HorizSync</tt> und <tt>VertRefresh</tt> 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: <tt>modeDB.txt</tt> und <tt>Monitors</tt> 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 <tt>VideoModes.doc</tt> folgen, um <tt>ModeLine-</tt>Werte aus den im Monitor-Handbuch aufgelisteten Spezifikationen selber zu generieren. Die Datei <tt>VideoModes.doc</tt> beschreibt außerdem sehr ausführlich das Format einer <tt>ModeLine-</tt>Direktive sowie andere Aspekte des XFree86-Servers. Sind die übernommenen oder selber generierten <tt>ModeLine-</tt>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 <tt>VideoModes.doc</tt> 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 &dquot;Leben&dquot; sicherlich leichter. Man sollte weder Monitor-Frequenzen noch <tt>ModeLine-</tt>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 <tt>XF86Config</tt> ist <tt>Device</tt>, der die Parameter der Grafikkarte kennzeichnet. Hier ein Beispiel: <tscreen><verb> Section "Device" Identifier "#9 GXE 64" # Nothing yet; we fill in these values later. EndSection </verb></tscreen> Die Sektion definiert die Eigenschaften für eine bestimmte Grafikkarte. <tt>Identifier</tt> 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 <tt>Identifier</tt> 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 <tt>Device-</tt>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 <tt>XF86Config-</tt>Datei durch den letzten Abschnitt komplettiert werden. Er lautet <tt>Screen</tt> und spezifiziert die Kombination von Monitor und Grafikkarte für die Benutzung eines bestimmten Servers. <tscreen><verb> 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 </verb></tscreen> Die Zeile <tt>Driver</tt> beschreibt den zu benutzenden X-Server. Gültige Angaben für <tt>Driver</tt> sind: <itemize> <item><tt>Accel</tt>: Für die <tt>XF86_S3-</tt>, <tt>XF86_Mach32-</tt>, <tt>XF86_Mach8-</tt>, <tt>XF86_8514-</tt>, <tt>XF86_P9000-</tt>, <tt>XF86_AGX-</tt> und <tt>XF86_W32-</tt>Server. <item> <tt>SVGA</tt>: Für den <tt>XF86_SVGA-</tt>Server. <item> <tt>VGA16</tt>: Für den <tt>XF86_VGA16-</tt>Server. <item> <tt>VGA2</tt>: Für den <tt>XF86_Mono-</tt>Server. <item> <tt>Mono</tt>: Für die Nicht-VGA-Monochrom-Treiber der <tt>XF86_Mono-</tt> und <tt>XF86_VGA16-</tt>Server. </itemize> Es sollte sichergestellt sein, daß ein symbolischer Link von <tt>/usr/X11R6/bin/X</tt> auf den zu benutzenden Server zeigt. Die <tt>Device-</tt>Zeile spezifiziert den <tt>Identifier</tt> der <tt>Device-</tt>Sektion, der mit der verwendeten Grafikkarte korrespondiert. In dem oben angegebenen <tt>Device-</tt>Abschnitt ist die Zeile: <tscreen><verb> Identifier "#9 GXE 64" </verb></tscreen> eingetragen worden. Daher wird in dieser Sektion die Zeichenkette <tt>#9 GXE 64</tt> in die <tt>Device-</tt>Zeile gestellt. Ähnliches geschieht mit der Zeile <tt>Monitor</tt>. Sie verweist auf den <tt>Identifier</tt> <tt>&dquot;CTX 5468 NI&dquot;</tt> aus der oben beschriebenen <tt>Monitor-</tt>Sektion. Der Unterabschnitt <tt>Display</tt> definiert verschiedene Eigenschaften des XFree86-Servers mit der Kombination aus Monitor und Grafikkarte. Die <tt>XF86Config-</tt>Datei beschreibt diese Optionen sehr detailiert. Die meisten davon sind jedoch wie der &dquot;Zuckerguß auf einem Kuchen&dquot; und daher nicht notwendig, um ein System zum Laufen zu bekommen. Die wichtigsten Optionen sind: <itemize> <item> <tt>Depth</tt>. 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. <item> <tt>Modes</tt>. Dies ist die Liste mit Namen der verschiedenen Videomodi, die durch die Verwendung der <tt>ModeLine-</tt>Direktive in der <tt>Monitor-</tt> Sektion definiert worden sind. In dem oben aufgeführten Abschnitt sind <tt>ModeLine-</tt>Zeilen <tt>&dquot;1024x768&dquot;</tt>, <tt>&dquot;800x600&dquot;</tt> und <tt>&dquot;640x480&dquot;</tt> benannt. Deswegen stellt sich die Zeile <tt>Modes</tt> wie folgt dar: <tscreen><verb> Modes "1024x768" "800x600" "640x480" </verb></tscreen> 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 <tt>Strg-Alt-numerisch +</tt> und <tt>Strg-Alt-numerisch -</tt> 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 <tt>XF86Config</tt> modifiziert werden, um auch höhere Auflösungen zu erzielen. <item><tt>Virtual</tt>. 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 <tt>Virtual</tt> 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 <tt>Virtual-</tt>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 <tt>fvwm</tt> oder ein ähnlicher Fenstermanager benutzt werden. <tt>Fvwm</tt> 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 <tt>fvwm</tt> herangezogen werden. Die meisten Linux-Systeme setzen standardmäßig <tt>fvwm</tt> als Fenstermanager ein. <item><tt>ViewPort</tt>. Setzt bei Benutzung der oben beschriebenen <tt>Virtual-</tt>Option die Koordinaten der linken, oberen Ecke des virtuellen Desktops beim Start von XFree86. Standardkoordinaten für <tt>Virtual</tt> sind oft 0 0. Werden für <tt>Virtual</tt> keine Angaben gemacht, erhält man einen zum virtuellen Desktop zentrierten Bildschirmausschnitt. </itemize> Für diese Sektion existieren noch viele andere Optionen. Eine komplette Beschreibung enthält die Manual-Seite zu <tt>XF86Config</tt>. Für die anfängliche Konfiguration von XFree86 sind diese Optionen aber nicht notwendig. <sect>Spezifikation der Grafikkarte <p> Die <tt>XF86Config-</tt>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 <tt>XF86Config-</tt>Datei eingetragen. Anstelle den X-Server zur Ermittlung der Informationen zu starten, können auch die Dateien: <tt>modeDB.txt</tt>, <tt>AccelCards</tt> sowie <tt>Devices</tt> benutzt werden. Sie enthalten die entsprechenden <tt>XF86Config-</tt>Werte für eine Vielzahl von Grafikkarten und befinden sich in dem Verzeichnis <tt>/usr/X11R6/lib/X11/doc</tt>. Zusätzlich existieren verschiedene <tt>README-</tt>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 <tt>XF86Config</tt> 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 <tt>XF86_S3-</tt>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 <tt>SuperProbe</tt> verwenden, das sich im Verzeichnis <tt>/usr/X11R6/bin</tt> 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: <tscreen> X -showconfig </tscreen> 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 <tt>XF86_S3-</tt>Server erhält man z. B. mit Hilfe von <tt>X -showconfig</tt> folgende Informationen: <tscreen><verb> 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 </verb></tscreen> Die gültigen Chipsatznamen für diesen Server lauten <tt>mmio_928</tt> und <tt>s3_generic</tt>. Die <tt>XF86_S3-</tt>Manual-Seite beschreibt diese Chipsätze und welche Grafikkarten sie benutzen. Im Fall der #9 GXE 64-Grafikkarte wird <tt>mmio_928</tt> 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: <tscreen><verb> X -probeonly > /tmp/x.out 2>&ero;1 </verb></tscreen> gestartet. Wird dagegen die C-Shell benutzt, so muß <tscreen><verb> X -probeonly &ero;> /tmp/x.out </verb></tscreen> 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 <tt>/tmp/x.out</tt> befindet, enthält z. B. die folgenden Zeilen: <tscreen><verb> 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 </verb></tscreen> Der Server, in diesem Fall der <tt>XF86_S3</tt>, kennt demnach zwei gültige Chipsatznamen: <tt>mmio_928</tt> und <tt>s3_generic</tt>, wobei er speziell für die verwendete Grafikkarte den <tt>mmio_928-</tt>Chipsatz ermittelt hat. Der so gefundene Name des Chipsatzes wird anschließend in die Zeile <tt>Chipset</tt> des <tt>Device-</tt>Abschnitts der <tt>XF86Config-</tt>Datei eingetragen. Zum Beispiel: <tscreen><verb> Section "Device" # We already had Identifier here... Identifier "#9 GXE 64" # Add this line: Chipset "mmio_928" EndSection </verb></tscreen> 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 <tt>modeDB.txt</tt> 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 <tt>modeDB.txt</tt> gibt z. B. für die Grafikkarte Cardinal ET4000 folgende Zeilen aus: <tscreen><verb> # chip ram virtual clocks default-mode flags ET4000 1024 1024 768 25 28 38 36 40 45 32 0 "1024x768" </verb></tscreen> Wie das Beispiel zeigt, sind die Bildpunkt-Taktfrequenzen für diese Karte: 25, 28, 38, 36, 40, 45, 32 und 0 MHz. In dem <tt>Device-</tt>Abschnitt der <tt>XF86Config-</tt>Datei wird demnach eine Zeile <tt>Clocks</tt> hinzugefügt, die die Liste der Bildpunkt-Taktfrequenzen enthält. Bezogen auf das Beispiel wird die Zeile: <tscreen><verb> Clocks 25 28 38 36 40 45 32 0 </verb></tscreen> nach der <tt>Chipset-</tt>Zeile in die <tt>Device-</tt>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 <tt>X -probeonly</tt> 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: <tscreen><verb> (--) S3: clocks: 25.18 28.32 38.02 36.15 40.33 45.32 32.00 00.00 </verb></tscreen> Sämtliche ausgegebenen Werte werden der <tt>Clocks-</tt>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 <tt>XF86Config-</tt>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 <tt>X -probeonly</tt> darf es keine <tt>Clocks-</tt>Zeile in der <tt>Device-</tt>Sektion von <tt>XF86Config</tt> geben. Notfalls kann sie auskommentiert werden. Beim Vorhandensein dieser Zeile wird der Server die Werte <em>nicht</em> selber ermitteln, sondern die bereits in der <tt>XF86Config-</tt>Datei aufgeführten Werte benutzen. Man beachte, daß einige beschleunigte Grafikkarten einen programmierbaren Clockchip benutzen. Für weitere Details kann die <tt>XF86-Accel-</tt>Manual-Seite herangezogen werden. Dies gilt besonders für <tt>S3-</tt>, <tt>AGX-</tt> und <tt>XGA-2-</tt>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 <tt>X -probeonly</tt> höchstens 1 oder 2 feste Werte, ansonsten nur Duplikate oder Nullwerte. Bei der Benutzung von Grafikkarten mit einem programmierbaren <tt>Clockchip</tt> wird in der <tt>XF86Conifg-</tt>Datei anstelle einer <tt>Clocks-</tt> eine <tt>ClockChip-</tt>Zeile verwendet. <tt>ClockChip</tt> enthält den Namen des von der Karte benutzten <tt>Clockchips</tt>. Die Manual-Seiten der verschiedenen Server enthalten sämtliche Namen. Die <tt>README.S3-</tt>Datei gibt z. B. für verschiedene S3-864-Grafikkarten den <tt>ICD2061A-Clockchip</tt> an. Dieser Name wird dann anstelle von <tt>Clocks</tt> in die Zeile: <tscreen><verb> ClockChip "icd2061a" </verb></tscreen> der <tt>XF86Config-</tt>Datei eingetragen. In dem <tt>Device-</tt>Abschnitt steht diese Zeile, wie auch schon <tt>Clocks</tt>, hinter der <tt>Chipset-</tt>Zeile. Einige beschleunigte Grafikkarten erforden zusätzlich die Spezifizierung eines RAMDAC-Chiptypen, dessen Name in die <tt>Ramdac-</tt>Zeile der <tt>XF86Config-</tt>Datei einzutragen ist. Die Manual-Seite von <tt>XF86_Accell</tt> 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 <tt>Device-</tt>Sektion von <tt>XF86Config</tt>. Diese Optionen werden ausführlich auf den Manual-Seiten der entsprechenden Server sowie in den verschiedenen Dateien, wie z. B. <tt>README.cirrus</tt> oder <tt>README.S3</tt>, beschrieben. Sie können mit Hilfe der <tt>Option-</tt>Zeile gesetzt werden. Die #9 GXE 64- Grafikkarte erfordert z. B. zwei Optionen: <tscreen><verb> Option "number_nine" Option "dac_8_bit" </verb></tscreen> 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 <tt>/usr/X11R6/lib/X11/doc</tt> beschreiben diese Optionen ausführlich, falls eine von ihnen benutzt werden muß. Nachdem alle Einträge in die <tt>Device-</tt>Sektion vollzogen sind, sieht sie für die #9 GXE 64-Grafikkarte folgendermaßen aus: <tscreen><verb> 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 </verb></tscreen> Die meisten Grafikkarten werden anstelle der <tt>ClockChip-</tt>Zeile eine <tt>Clocks-</tt>Zeile erfordern. Man beachte, daß der oben angegebene <tt>Device-</tt>Abschnitt nur für die spezielle Grafikkarte #9 GXE 64 gültig ist. Er ist hier nur als Beispiel aufgeführt. <sect>Starten von XFree86 <p> Nach Fertigstellung der Konfigurationsdatei <tt>XF86Config</tt> kann nun der X-Server gestartet werden. Zuerst sollte sichergestellt sein, daß <tt>/usr/X11R6/bin</tt> im Pfad eingetragen ist. Das Kommando zum Starten von XFree86 lautet: <tscreen> startx </tscreen> Startx startet sowohl den X-Server als auch die Kommandos der sich im Home-Verzeichnis befindenden Datei <tt>.xinitrc</tt>. <tt>.xinitrc</tt> 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 <tt>/usr/X11R6/lib/X11/xinit/xinitrc</tt>. Eine <tt>Standard-.xinitrc-</tt>Datei sieht z. B. wie folgt aus: <tscreen><verb> #!/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 </verb></tscreen> Dieses Skript startet zwei <tt>xterm-</tt>Klienten, eine <tt>oclock-</tt>Uhr und setzt die Hintergrundfarbe des Root-Fensters auf <tt>midnightblue</tt>. Anschließend wird der Fenstermanager <tt>twm</tt> aufgerufen. Man beachte, daß <tt>twm</tt> mit der Shell-Anweisung <tt>exec</tt> ausgeführt wird. Dies veranlaßt, daß der <tt>xinit-</tt>Prozeß durch <tt>twm</tt> ersetzt wird. Nach Beendigung des <tt>twm-</tt>Prozesses fährt der X-Server auch herunter. Mit Hilfe des Hauptmenüs kann veranlaßt werden, <tt>twm</tt> 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: <tt>Exit Twm</tt>. Es sollte sichergestellt sein, daß das letzte Kommando in der <tt>.xinitrc-</tt>Datei mit der <tt>exec-</tt>Anweisung gestartet und daß es nicht durch das Hinzufügen eines kaufmännischen UND <tt>&</tt> am Ende der Zeile als Hintergrundprozeß aufgerufen wird. Dadurch fährt der X-Server herunter, sobald er alle Klienten aus der <tt>.xinitrc-</tt>Datei gestartet hat. Alternativ kann der X-Server durch die Tastenkombination <tt>Strg-Alt-Rücktaste</tt> beendet werden. Dies beendet den X-Server direkt und somit auch den Fenstermanager. Die oben angegebene <tt>.xinitrc-</tt>Datei stellt eine sehr einfache Desktop-Konfiguration dar. Viele mächtige Programme und Konfigurationen sind mit einem geringen Arbeitsaufwand an der <tt>.xinitrc-</tt>Datei möglich. Der <tt>fvwm-</tt>Fenstermanager stellt z. B. einen virtuellen Desktop bereit, dessen Farben, Schriftarten, Fenstergrößen und -positionen usw. vom Anwender nach &dquot;Herzenslust&dquot; 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: <em>The X Window System: A User's Guide</em> 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 <tt>xterm</tt>, <tt>oclock</tt> und <tt>fvwm</tt> herangezogen werden. <sect>Problemlösungen <p> Oftmals stellen sich beim erstmaligen Starten des X-Servers Fehler ein. Diese werden fast immer durch falsche Einstellungen in der <tt>XF86Config-</tt>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 <tt>Device-</tt>Abschnitt der <tt>XF86Config-</tt>Datei. Auch muß der richtige X-Server verwendet werden, und <tt>/usr/X11R6/bin/X</tt> 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: <tscreen><verb> X > /tmp/x.out 2>&ero;1 </verb></tscreen> direkt aufgerufen werden und sämtliche Warnungen und Fehler des Servers werden in die Datei <tt>/tmp/x.out</tt> umgeleitet. Anschließend, nach Beendigung des Servers mit der Tastenkombination <tt>Strg-Alt-Rücktaste</tt>, kann der Inhalt der Datei <tt>x.out</tt> untersucht werden. Die in der XFree86-Distribution enthaltene Datei <tt>VideoModes.doc</tt> stellt zahlreiche Hinweise bei der Ermittlung der richtigen Werte für die <tt>XF86Config-</tt>Datei bereit. Mit Hilfe der Tastenkombinationen <tt>Strg-Alt-numerisch +</tt> und <tt>Strg-Alt-numerisch -</tt> kann zwischen den in der <tt>Modes-</tt>Zeile der <tt>Screen-</tt>Sektion von <tt>XF86Config</tt> 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.: <tt><htmlurl url="news:comp.windows.x.i386unix" name="comp.windows.x.i386unix"></tt> und <tt><htmlurl url="news:de.comp.os.linux.x" name="de.comp.os.linux.x"></tt>. Sie sind eine gute Adresse, wo man eventuell Hinweise bezüglich der zu benutzenden Videokonfiguration erhalten kann, falls man dort &dquot;jemandem in die Arme läuft&dquot;, der das gleiche Problem hat bzw. es schon gelöst hat. <sect>Copyright <p> Dieses Dokument ist urheberrechtlich geschützt. Das Copyright für die englische <em><htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/XFree86-HOWTO.html" name="XFree86 HOWTO"></em> liegt bei Matt Welsh. Das Copyright für die deutsche Version liegt bei Dirk Knabe. Das Dokument darf gemäß der GNU <em><htmlurl name="General Public License" url="DE-GPL.html"></em> 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. </article>