Linux XFree86 HOWTO <author>von Dirk Knabe (<tt>knabe@fh-dortmund.de</tt>) <date>v2.71828-2, 30. September 1998 <abstract> Dieses Dokument beschreibt den Bezug, die Installation und die Konfiguration von XFree86 in der Version 3.3.2, ein X-Window-System für Linux-Rechner. Es stellt eine schrittweise Einführung in die Konfiguration von XFree86 dar. </abstract> <toc> <sect>Vorwort <nidx>XFree86</nidx> <p> Stellte die Version 1.0 dieses HOWTO vom 13. Dezember 1996 lediglich die deutsche Übersetzung des englischsprachigen Dokuments <em>The Linux XFree86 HOWTO</em> in der Version 3.0 vom 15. März 1995 von Matt Welsh dar, so liegt nun in der aktuellen Version ein eigenständiges Werk vor. Dabei wurde der Versuch unternommen, die Vielzahl vorhandener Dokumente über das X-Window-System zu sondieren und didaktisch so aufzubereiten, daß dem Leser durch die schrittweise Anleitung des HOWTO ein erster Einstieg in die Nutzung von XFree86 unter Linux ermöglicht 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. Allgemeine Informationen über das Linux-Betriebssystem in englischer Sprache findet man auf dem WWW-Server des Linux Documentation Project (LDP) unter der Adresse: <tscreen><htmlurl url="http://metlab.unc.edu/LDP" name="http://metalab.unc.edu/LDP"></tscreen> Dieser Server wird von den folgenden Servern in Deutschland täglich gespiegelt: <itemize> <item><tt><htmlurl url="http://www.appl-opt.physik.uni-essen.de/linux/LDP/" name="http://www.appl-opt.physik.uni-essen.de/linux/LDP/"></tt> <item><tt><htmlurl url="http://www.suse.de/doku/LDP/" name="http://www.suse.de/doku/LDP/"></tt> <item><tt><htmlurl url="http://www.mordor.ask.fh-furtwangen.de/LDP/" name="http://www.mordor.ask.fh-furtwangen.de/LDP/"></tt> <item><tt><htmlurl url="http://www.dlr.de/linux/LDP/" name="http://www.dlr.de/linux/LDP/"></tt> <item><tt><htmlurl url="http://mailer.wiwi.uni-marburg.de/linux/LDP/" name="http://mailer.wiwi.uni-marburg.de/linux/LDP/"></tt> <item><tt><htmlurl url="http://jurix.jura.uni-sb.de/LDP/" name="http://jurix.jura.uni-sb.de/LDP/"></tt> <item><tt><htmlurl url="http://www.asta.va.fh-ulm.de/LDP/" name="http://www.asta.va.fh-ulm.de/LDP/"></tt> </itemize> Das Deutsche Linux HOWTO Projekt (DLHP), dem der Autor dieses HOWTO auch angehört, stellt eine Vielzahl von deutschsprachigen HOWTOs zur Verfügung, die entweder aus der Übersetzung des Originals oder als eigenständiges Werk entstanden sind. Den WWW-Server des DLHP erreicht man unter folgender Adresse: <tscreen><htmlurl url="http://www.tu-harburg.de/dlhp/" name="http://www.tu-harburg.de/dlhp/"> </tscreen> Die Dokumente stehen dort sowohl »online« als auch in den üblichen Formaten (ASCII, SGML, HTML, DVI, PostScript sowie Adobe PDF) zum Herunterladen zur Verfügung. Mittlerweile befinden sie sich aber auch in den meisten Linux-Distributionen der diversen Anbieter, so daß ein Bezug vom DLHP-Server entfallen kann, wenn man nicht gerade auf die aktuellste Version einer HOWTO angewiesen ist. Gegenstand dieses HOWTO bildet die aktuelle Version 3.3.2 von XFree86 für Linux-Systeme. Fragen, Bemerkungen und/oder Anregungen zu diesem HOWTO richten Sie bitte per E-Mail an: <tscreen><htmlurl url="mailto:knabe@fh-dortmund.de" name="knabe@fh-dortmund.de"> </tscreen> <sect>Einleitung <p> Das X-Window-System stellt eine grafische Benutzerschnittstelle dar, die es dem Anwender ermöglicht, seine Programme gemeinsam unter einer grafischen Oberfläche darzustellen. Unter den verschiedenen Unix-Derivaten hat sich das X-Window-System mittlerweile als der Standard für grafische Benutzeroberflächen etabliert. Heutzutage läuft fast auf jedem Rechner mit einem Unix-Betriebssystem irgendeine X-Window-Variante. <sect1>Geschichte <nidx>X11!Geschichte</nidx> <p> Als Anfang der 80er Jahre grafikfähige Workstations eine schnelle Verbreitung fanden, bestand zunächst das Problem darin, daß für die Entwicklung bzw. Programmierung der erforderlichen grafischen Benutzeroberflächen kaum einheitliche Standards zur Verfügung standen. Dies lag darin begründet, daß das Betriebssystem Unix, bedingt durch die Hardware-Situation zur Zeit seines Entstehens, ein auf zeichenorientierte Ein- und Ausgabe hin ausgelegtes System darstellte. Somit begannen die verschiedenen Hersteller mit der Entwicklung ihrer eigenen grafischen Oberflächen. Schnell erkannte man die Problematik beim Einsatz grafischer Applikationen auf den unterschiedlichsten Hardware-Plattformen. Sollte nämlich eine Anwendung, die von den grafischen Fähigkeiten einer bestimmten Workstation Gebrauch machte, auch auf verschiedenen anderen Plattformen lauffähig sein, so mußte ein großer Teil des Programms mehrfach neu entwickelt und zusätzlich gepflegt werden. In dieser Situation der unterschiedlichen grafischen Benutzeroberflächen entstand 1984 am <idx>MIT</idx> (Massachusetts Institute of Technology) in Zusammenarbeit mit der Firma <idx>DEC</idx> (Digital Equipment Corporation) das <nidx>Athena Projekt</nidx> Projekt Athena. Das Ziel dieses Projekts sollte der Entwurf einer rechnerunabhängigen, standardisierten Umgebung zur Entwicklung grafischer Applikationen sein. Dies führte schließlich zu der Entwicklung des X-Window-Systems. Durch die Schaffung standardisierter Schnittstellen auf allen Ebenen des Systems war es nun möglich, grafische Anwendungen netzwerkweit und unabhängig von der eingesetzten Hardware zu betreiben. Anfang 1987 gründeten 12 namhafte Computerhersteller das X-Konsortium mit dem Ziel, die Weiterentwicklung und Standardisierung des X-Window-Systems zu gewährleisten und eine kommerzielle Verwendung zu ermöglichen. Die damalige Liste der Gründungsmitglieder las sich wie ein »Who is who« in der Computerbranche. Das X-Konsortium fordert in der Dokumentation zu X ausdrücklich die Verwendung folgender Bezeichnungen: X-Window-System, X Version 11, X11 oder einfach nur X. Im September 1987 verabschiedete das X-Konsortium das X-Window-System in der Version 11, Release 1 (kurz: X11R1 genannt). Es löste die Anfang 1986 freigegebene Vorläuferversion X10 ab. X11R1 war im Gegensatz zu X10 dem Forschungsstadium entwachsen, bot eine größere Flexibilität und höhere Performance als der Vorgänger und ermöglichte somit eine erste kommerzielle Verwendung. Seit dieser Zeit wurde das X-Window-System intensiv weiterentwickelt. Als herstellerunabhängiges System und durch die kostenlose Verfügbarkeit des Quellcodes des gesamten X-Window-Systems fand es bei den Anwendern eine große Akzeptanz und somit eine schnelle Verbreitung. Die heutige Version 11, Release 6 (X11R6) des X-Window-Systems wird mittlerweile von fast allen bedeutenden Unix-Anbietern vertrieben und avancierte damit zum Industriestandard für die Steuerung grafischer Benutzeroberflächen unter dem Betriebssystem Unix. Eine freie Implementierung des X-Window-Systems in der Version 11, Release 6 (X11R6) für PC-basierte Rechner (ab i386) ist von einer Reihe von Programmierern entwickelt worden, die sich im Jahre 1992 zum XFree86-Team zusammenschlossen. Daraus entstand 1994 die nicht-kommerzielle Firma The <nidx>XFree86!Projekt</nidx> XFree86 Project, Inc., die sich bis heute ausschließlich durch Spenden finanziert, mit dem Ziel, XFree86 einer breiten Öffentlichkeit zur Verfügung zu stellen. Durch die sich anschließende Mitgliedschaft im X-Konsortium erhielt man zusätzlich die Möglichkeit, an der Weiterentwicklung des X-Window-Systems teilzuhaben. Mittlerweile ist XFree86 für eine Vielzahl unterschiedlicher Betriebssysteme frei erhältlich. Eine Version davon ist für Linux (Intel x86, DEC Alpha/AXP und m68k) konzipiert und frei verfügbar. Sie enthält alle erforderlichen Programme, Konfigurationsdateien, Bibliotheken sowie diverse Hilfsprogramme. <sect1>Konzept <nidx>X11!Konzept</nidx> <p> Das X-Window-System besitzt drei besondere Eigenschaften, die es von den anderen herkömmlichen grafischen Benutzeroberflächen unterscheidet. Dazu zählen die Konzipierung und Realisierung als offenes System, die Client/Server-Architektur sowie als wichtigstes Merkmal die sogenannte Netzwerktransparenz. Durch die Herstellerunabhängigkeit und durch die freie Verfügbarkeit der kompletten Quelltexte konnte das X-Window-System im Gegensatz zu anderen kommerziellen grafischen Oberflächen von Anfang an als offenes System konzipiert werden. Neben Standardschnittstellen, die eine komfortable Entwicklung portabler und hardwareunabhängiger Software erlauben, unterstützt das System auch Schnittstellen für herstellerspezifische Erweiterungen, um somit auch die Anbindung von spezieller Hardware zu ermöglichen. <nidx>X11!Client</nidx> <nidx>X11!Server</nidx> Das X-Window-System unterscheidet aufgrund seiner spezifischen Architektur zwischen dem X-Server und den X-Clients. Der X-Server stellt ein Programm dar, das hardwareabhängig einen grafischen Bildschirm steuert. Zusätzlich stellt er das Bindeglied zwischen dem Benutzer und den verschiedenen X-Applikationen, den sogenannten X-Clients, dar, indem er Tastatureingaben bzw. Mausbewegungen des Benutzers an die entsprechenden X-Clients leitet und die von ihnen zurückgelieferten, hardwareunabhängigen Ausgabeinformationen grafisch darstellt. Die Kommunikation zwischen dem Server und den Clients erfolgt ausschließlich über das standardisierte X-Protokoll. Dieses Protokoll ist so flexibel ausgelegt, daß es möglich wird, den X-Server und die X-Clients nicht nur lokal auf einem Rechner zu halten, sondern sie auf beliebige Rechner in einem Netz zu verteilen. Durch diese Netzwerktransparenz besteht somit die Möglichkeit, rechenintensive Programme auf Maschinen mit den leistungsstärksten Prozessoren laufen zu lassen, Ein- und Ausgabe jedoch auf einer normalen Workstation im Netz durchzuführen. Bei einer entsprechend schnellen Netzwerkverbindung kann die Entfernung der beiden Rechner durchaus mehrere tausend Kilometer voneinander betragen, so daß dies im Vergleich zu herkömmlichen grafischen Benutzeroberflächen kaum einen Performanceverlust mit sich bringt. Die Konzeption als offenes System, die Client/Server-Architektur und die Netzwerktransparenz sind natürlich auch integraler Bestandteil des XFree86-Systems, so daß dem Linux-Anwender mit XFree86 ein hervorragendes X-Window-System zur Verfügung steht, das den Vergleich mit kommerziellen Systemen nicht scheuen muß. <sect>Hardwarevoraussetzungen <p> <sect1>Videochipsätze und Grafikkarten <nidx>XFree86!unterstützte Grafikkarten</nidx> <p> Die aktuelle XFree86-Version 3.3.2, erschienen im März 1998, 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 darauf geachtet werden, daß der entsprechende Chipsatz der Karte von XFree86 unterstützt wird. Fehlen diese Informationen, so kann mit Hilfe des Programms <tt>SuperProbe</tt> (Version 2.16), Bestandteil der XFree86-Distribution, der Chipsatz der Grafikkarte bestimmt werden. Dieser Vorgang wird weiter unten beschrieben. Zusätzlich besteht die Möglichkeit, den technischen Support des Herstellers der jeweiligen Grafikkarte zu kontaktieren, um die gewünschten Informationen zu erhalten. Momentan unterstützt XFree86 in der Version 3.3.2 folgende Chipsätze: <descrip> <tag/Ark Logic/ <nidx>Ark Logic</nidx> ARK1000PV, ARK1000VL, ARK2000PV, ARK2000MT <tag/Alliance/ <nidx>Alliance</nidx> AP6422, AT24 <tag/ATI/ <nidx>ATI</nidx> 18800, 18800-1, 28800-2, 28800-4, 28800-5, 28800-6, 68800-3, 68800-6, 68800AX, 68800LX, 88800GX-C, 88800GX-D, 88800GX-E, 88800GX-F, 88800CX, 264CT, 264ET, 264VT, 264GT, 264VT-B, 264VT3, 264GT-B, 264GT3 (Diese Liste schließt Mach8, Mach32, Mach64, 3D Rage, 3D Rage II und 3D Rage Pro ein.) <tag/Avance Logic/ <nidx>Avance Logic</nidx> ALG2101, ALG2228, ALG2301, ALG2302, ALG2308, ALG2401 <tag/Chips & Technologies/ <nidx>Chips & Technologies</nidx> 65520, 65530, 65540, 65545, 65520, 65530, 65540, 65545, 65546, 65548, 65550, 65554, 65555, 68554, 64200, 64300 <tag/Cirrus Logic/ <nidx>Cirrus Logic</nidx> CLGD5420, CLGD5422, CLGD5424, CLGD5426, CLGD5428, CLGD5429, CLGD5430, CLGD5434, CLGD5436, CLGD5440, CLGD5446, CLGD5462, CLGD5464, CLGD5465, CLGD5480, CLGD6205, CLGD6215, CLGD6225, CLGD6235, CLGD6410, CLGD6412, CLGD6420, CLGD6440, CLGD7541(*), CLGD7543(*), CLGD7548(*), CLGD7555(*) <tag/Digital Equipment Corporation/ <nidx>DEC</nidx> TGA <tag/Compaq/ <nidx>Compaq!AVGA</nidx> AVGA <tag/Genoa/ <nidx>Genoa</nidx> GVGA <tag/IBM/ <nidx>IBM</nidx> 8514/A (und Kopien), XGA-2 <tag/IIT/ <nidx>IIT</nidx> AGX-014, AGX-015, AGX-016 <tag/Matrox/ <nidx>Matrox</nidx> MGA2064W (Millennium), MGA1064SG (Mystique und Mystique 220), MGA2164W (Millennium II PCI und AGP) <tag/MX/ <nidx>MX</nidx> MX68000(*), MX680010(*) <tag/NCR/ <nidx>NCR!Grafikkarte</nidx> 77C22(*), 77C22E(*), 77C22E+(*) <tag/Number Nine/ <nidx>Number Nine</nidx> I128 (Serie I und II), Revolution 3D (T2R) <tag/NVidia-SGS Thomson/ <nidx>NVidia-SGS Thomson</nidx> NV1, STG2000, RIVA128 <tag/OAK/ <nidx>OAK</nidx> OTI067, OTI077, OTI087 <tag/RealTek/ <nidx>RealTek</nidx> RTG3106(*) <tag/S3/ <nidx>S3</nidx> 86C911, 86C924, 86C801, 86C805, 86C805i, 86C928, 86C864, 86C964, 86C732, 86C764, 86C765, 86C767, 86C775, 86C785, 86C868, 86C968, 86C325, 86C357, 86C375, 86C375, 86C385, 86C988, 86CM65, 86C260 <tag/SiS/ <nidx>SiS</nidx> 86C201, 86C202, 86C205 <tag/Tseng/ <nidx>Tseng</nidx> ET3000, ET4000AX, ET4000/W32, ET4000/W32i, ET4000/W32p, ET6000, ET6100 <tag/Trident/ <nidx>Trident</nidx> TVGA8800CS, TVGA8900B, TVGA8900C, TVGA8900CL, TVGA9000, TVGA9000i, TVGA9100B, TVGA9200CXR, Cyber9320(*), TVGA9400CXi, TVGA9420, TGUI9420DGi, TGUI9430DGi, TGUI9440AGi, TGUI9660XGi, TGUI9680, Pro-Vidia 9682, ProVidia 9685(*), Cyber 9382, Cyber 9385, Cyber 9388, 3DImage975(PCI), 3DImage985(AGP), Cyber 9397, Cyber 9520 <tag/Video 7-Headland Technologies/ <nidx>Video 7</nidx> HT216-32(*) <tag/Weitek/ <nidx>Weitek</nidx> P9000 <tag/Western Digital-Paradise/ <nidx>Paradise</nidx> <nidx>Western Digital!Grafikkarte</nidx> PVGA1 <tag/Western Digital/ WD90C00, WD90C10, WD90C11, WD90C24, WD90C24A, WD90C30, WD90C31, WD90C33 </descrip> (*) Die so markierten Chipsätze besitzen entweder nur eine beschränkte Unterstützung oder ihre Treiber werden nicht permanent gewartet. <nidx>XFree86!Farbtiefe</nidx> <nidx>Farbtiefe</nidx> Grafikkarten mit den oben aufgeführten Chipsätzen werden von allen gängigen Bustypen unterstützt, und sie sind alle in der Lage, im Grafikmodus mindestens 256 verschiedene Farben darzustellen. Da Speicher heute recht günstig verfügbar ist, verfügen eigentlich alle modernen Karten über so viel Speicher, daß sie auch mit 15, 16, 24 oder 32 Bit Farbtiefe arbeiten können. Allerdings ist die Bandbreite des günstigen dynamischen Speichers für höhere Farbtiefe nur begrenzt brauchbar, so daß die Karten mit diesem Speichertyp bei höheren Farbtiefen, insbesondere bei 24 und 32 Bit, deutlich langsamer werden. Auch die Leistung der DA-Wandler, die das Signal für den Monitor erzeugen, vieler günstiger Grafikkarten ist bei hohen Farbtiefen beschränkt, so daß sich die Bildwiederholfrequenzen schnell in nicht mehr ergonomischen Regionen bewegen. Die Standard-Konfiguration beträgt 16 Bits je Bildpunkt. Das entspricht 65536 (2 hoch 16) verschiedenen Farben. Der Monochrom-Server unterstützt auch generische VGA-Grafikkarten, indem nur 64 kB des vorhandenen Videospeichers benutzt werden: Die Hyundai HGC1280, die Sigma Laserview sowie die Hercules-, die Visa- und die Apollo-Monochromkarten. Die XFree86-Distribution enthält Chipsatz-spezifische README-Dateien, die detaillierte Informationen über den Stand der Unterstützung jedes einzelnen Chipsatzes bereitstellen. Ein Problem, dem die XFree86-Entwickler gegenüberstehen, besteht darin, daß einige Grafikkartenhersteller keine Standardmechanismen zur Bestimmung der Bildpunkt-Taktfrequenz, mit der die Grafikkarte betrieben wird, bereitstellen. Einige dieser Firmen geben die Spezifikationen für die Programmierung ihrer Grafikkarten 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 zur Erstellung von frei verfügbaren Treibern für ihre Grafikkarten. Es ist wichtig zu wissen, daß auf den meisten Rechnern eine von der Performance eher durchschnittliche, beschleunigte SVGA-Grafikkarte signifikant schneller ist, als eine Standard-SVGA-Karte. Ein Linux-System mit einem XFree86-Server in der Version 3.1 auf einem 80486DX2-PC mit 66 MHz, VESA Local-Bus (VLB) und einer S3-Grafikkarte (864-Chipsatz) mit 2 MB DRAM ist laut X-Benchmark um den Faktor 7 schneller als eine Sun Sparc-IPX-Workstation. Die Version 3.3 von XFree86 erzielt einen noch größeren Faktor. Im allgemeinen ist XFree86 auf einem Linux-Rechner mit einer beschleunigten SVGA-Grafikkarte leistungsfähiger als eine kommerzielle Unix-Workstation. <sect1>Prozessor, Arbeitsspeicher und Plattenplatz <p> <nidx>XFree86!Hardwarevoraussetzungen</nidx> 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 verhindert, 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 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. Eine empfohlene Hardwareausstattung, um XFree86 unter Linux komfortabel zu betreiben, ist ein PC mit einem i486-Prozessor und mit mindestens 16 MB Arbeitsspeicher sowie 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 regelmäßig in folgenden Newsgruppen: <itemize> <item><tt><htmlurl url="news:comp.windows.x.i386unix" name="comp.windows.x.i386unix"> </tt> <item><tt><htmlurl url="news:de.comp.os.unix.linux.x" name="de.comp.os.unix.linux.x"> </tt> </itemize> Eine Standard-Installation des XFree86-Systems benötigt minimal ca. 60-80 MB freien Plattenplatz. Dies beinhaltet den eigentlichen X-Server, Bildschirmschriften, Bibliotheken und Standard-Programme. Sollen der Standard-Installation noch weitere X-Applikationen hinzugefügt werden, die ein komfortables Arbeiten mit XFree86 erst ermöglichen, so kann der hierzu benötigte Plattenplatz schnell auf 200 MB und mehr anwachsen. <sect>Installation von XFree86 <p> <nidx>XFree86!Installation</nidx> <sect1>Bezug der Distribution <p> <nidx>XFree86!Bezugsquellen</nidx> Die Linux-Distribution von XFree86 kann von diversen FTP-Servern bezogen werden. Auf dem FTP-Server von XFree86 <tscreen><htmlurl url="ftp://ftp.xfree86.org" name="ftp.xfree86.org"> </tscreen> befindet sich die Distribution in dem Verzeichnis <tt>/pub/XFree86/3.3.2</tt>. Zur Zeit der Erstellung dieses Dokumentes lautet die aktuelle Version von XFree86 3.3.2; neuere Versionen werden regelmäßig folgen. In den gängigen Linux-Distributionen ist XFree86 bereits enthalten, so daß der Bezug von einem FTP-Server entfällt, falls man nicht gerade eine sehr neue Grafikkarte gekauft hat, die von der XFree86-Version, die der eigenen Distribution beiliegt, noch nicht unterstützt wird. Falls XFree86 doch direkt per FTP bezogen werden soll, listet die nachfolgende Tabelle vier Server in Deutschland auf, die den FTP-Server der XFree86-Organisation regelmäßig spiegeln: <itemize> <item><tt><htmlurl url="ftp://ftp.gwdg.de/pub/xfree86/XFree86" name="ftp.gwdg.de:/pub/xfree86/XFree86"></tt> <item><tt><htmlurl url="ftp://ftp.cs.tu-berlin.de/pub/X/XFree86" name="ftp.cs.tu-berlin.de:/pub/X/XFree86"></tt> <item><tt><htmlurl url="ftp://ftp.uni-erlangen.de/pub/Linux/MIRROR.xfree86" name="ftp.uni-erlangen.de:/pub/Linux/MIRROR.xfree86"></tt> <item><tt><htmlurl url="ftp://ftp.uni-stuttgart.de/pub/X11/Xfree86" name="ftp.uni-stuttgart.de:/pub/X11/Xfree86"></tt> </itemize> <sect1>Benötigte Dateien <p> Für die Installation von XFree86 in der Version 3.3.2 ist einer der folgenden Server erforderlich: <descrip> <tag/X3328514.tgz/ Server für die 8514-Grafikkarte <tag/X332AGX.tgz/ Server für die AGX-Grafikkarte <tag/X332Ma64.tgz/ Server für die Mach64-Grafikkarte <tag/X332Ma32.tgz/ Server für die Mach32-Grafikkarte <tag/X332Ma8.tgz/ Server für die Mach8-Grafikkarte <tag/X332Mono.tgz/ Server für die Monochrom-Grafikkarte <tag/X332P9K.tgz/ Server für die P9000-Grafikkarte <tag/X332S3.tgz/ Server für die S3-Grafikkarte <tag/X332S3V.tgz/ Server für die alte S3-ViRGE-Grafikkarte (besser den SVGA-Server benutzen) <tag/X332SVGA.tgz/ Server für viele Super-VGA-Grafikkarten <tag/X332VG16.tgz/ Server für die VGA-Grafikkarte (wird für das Programm XF86Setup benötigt) <tag/X332W32.tgz/ Server für die ET4000/W32- und ET6000-Grafikkarte </descrip> Alle nachfolgenden Dateien sind sowohl für eine Neuinstallation als auch für ein Upgrade von Versionen vor 3.3.1 erforderlich: <descrip> <tag/preinst.sh/ Skript für die Installationsvorbereitung <tag/postinst.sh/ Skript für die Installationsnachbereitung <tag/extract/ XFree86-Extrahierungsprogramm <tag/X332bin.tgz/ Rest der XFree86-Programme <tag/X332doc.tgz/ Dokumentation <tag/X332fnts.tgz/ Basis-Schriftarten (75dpi, misc und PEX) <tag/X332lib.tgz/ Zur Laufzeit benötigte Dateien <tag/X332man.tgz/ Manual-Seiten <tag/X332set.tgz/ XF86Setup-Programm <tag/X332VG16.tgz/ Server für die VGA-Grafikkarte (wird für XF86Setup benötigt) <tag/X3322upd.tgz/ XFree86 3.3.3 Patch 2 </descrip> Die folgende Datei ist für eine neue Installation erforderlich, für eine bereits bestehende optional: <descrip> <tag/X332cfg.tgz/ Beispiel-Konfigurationsdateien für <tt/xinit/ und <tt/xdm/ </descrip> Bei einer bereits bestehenden Installation von XFree86 mit benutzerspezifischen <tt>xinit</tt>- oder <tt>xdm</tt>-Konfigurationsdateien besteht keine Notwendigkeit zur Benutzung dieser Datei, da bei einer erneuten Installation von <tt>X332cfg.tgz</tt> diese Dateien überschrieben werden. Möchte man trotzdem <tt>X332cfg.tgz</tt> installieren, sollten benutzerangepaßte <tt>xinit</tt>- bzw. <tt>xdm</tt>-Konfigurationsdateien zuvor gesichert werden. Die folgenden Dateien sind für die Installation von XFree86 optional: <nidx>XFree86!Schriften</nidx> <descrip> <tag/X332f100.tgz/ 100-dpi-Bildschirm-Schriftarten <tag/X332fcyr.tgz/ Kyrillische Bildschirm-Schriftarten <tag/X332fnon.tgz/ Zusätzliche Schriftarten (chinesisch, japanisch, koreanisch und hebräisch) <tag/X332fscl.tgz/ Skalierte Schriftarten (Speedo und Type1) <tag/X332fsrv.tgz/ Server für Bildschirm-Schriftarten und Konfigurationsdateien <tag/X332prog.tgz/ X-Header- und Konfigurationsdateien sowie Bibliotheken zur Übersetzungszeit <tag/X332nest.tgz/ Besonderer »Nested«-X-Server <tag/X332vfb.tgz/ Virtueller »Framebuffer«-X-Server <tag/X332prt.tgz/ X-Print-Server <tag/X332lkit.tgz/ Server-Werkzeug für benutzerdefinierte Einstellungen <tag/X332lk98.tgz/ Server-Werkzeug für PC98-Server <tag/X332ps.tgz/ Dokumentation im PostScript-Format <tag/X332html.tgz/ Dokumentation im HTML-Format <tag/X332jdoc.tgz/ Japanische Dokumentation (Version 3.2 von XFree86) <tag/X332jhtm.tgz/ Japanische Dokumentation im HTML-Format (Version 3.2 von XFree86) </descrip> <sect1>Anleitung <nidx>XFree86!Installation</nidx> <p> Das XFree86-Verzeichnis enthält <tt/README/-Dateien und Installationshinweise der jeweiligen aktuellen Version. Bei einer bereits installierten Version von XFree86 sollte bei einer Neuinstallation zuvor ein Backup (Sicherheitskopie) der bestehenden XFree86-Version erstellt werden, da die Standard-Installationsprozedur die alte Version überschreibt. Zur Erstellung der Sicherheitskopie wechselt man als Benutzer <tt>root</tt> in das Verzeichnis <tt>/usr/X11R6</tt>, archiviert und komprimiert es anschließend: <tscreen><verb> cd /usr/X11R6 tar zcvf XFree86_Backup ./* </verb></tscreen> Für das Backup einer bereits bestehenden XFree86-Version werden ca. 8 MB freier Plattenplatz benötigt. Bei einer Erstinstallation muß das Verzeichnis <tt>/usr/X11R6</tt> vom Benutzer <tt>root</tt> erstellt werden: <tscreen><verb> mkdir /usr/X11R6 </verb></tscreen> Anschließend muß das Skript für die Installationsvorbereitung <tt>preinst.sh</tt> ausgeführt werden. Dieses Skript führt einige Routineüberprüfungen des bestehenden Linux-Systems durch, um zu testen, ob alle Versionen der bei der Installation von XFree86 erforderlichen Systemkomponenten jeweils auf dem aktuellsten Stand sind. Bei Bedarf meldet die Testroutine, die entsprechenden Komponenten vor der Fortführung der Installation zu aktualisieren. Das Skript löscht auch nicht mehr benötigte Dateien und entfernt symbolische Links vorhergehender XFree86-Versionen, die bei einer Neuinstallation möglicherweise Probleme verursachen könnten. Für den Fortgang der Installation ist es nun erforderlich, daß sich alle benötigten Dateien der XFree86-Distribution in einem temporären Verzeichnis, z.B. <tt>/tmp</tt>, befinden. Zur Ausführung des Skripts <tt>preinst.sh</tt> wechselt man dann in das Verzeichnis <tt>/usr/X11R6</tt> und startet es anschließend: <tscreen><verb> cd /usr/X11R6 sh /tmp/preinst.sh </verb></tscreen> Nach erfolgreichem Abschluß der Installationsvorbereitungen müssen nun im nächsten Schritt die Zugriffsrechte des Installationsprogramms <tt>extract</tt> so gesetzt werden, daß diese Datei auch ausführbar ist. Dazu wird folgendes Kommando ausgeführt: <tscreen><verb> chmod 755 /tmp/extract </verb></tscreen> Das Programm <tt>extract</tt> wird benötigt, um die .tgz-Dateien der XFree86-Distribution zu entpacken (entkomprimieren und -archivieren). Die Dateiendung .tgz besagt, daß es sich um eine »gezipte-tar«-Datei handelt, d.h. ihr Inhalt ist archiviert und komprimiert. Man beachte, daß das normalerweise verwendete Standard-Unix-Programm <tt>tar</tt> zur Installation der XFree86-Distribution nicht geeignet ist. Das Programm <tt>extract</tt> ist eine für die Besonderheiten der XFree86-Installation modifizierte Variante des GNU <tt>tar</tt>-Kommandos der Version 1.12. Daher ist es unbedingt erforderlich, dieses Programm zum Entpacken der notwendigen Dateien der Distribution zu verwenden. Auch darf diese Datei nicht umbenannt werden, da sie sich sonst wie das Standard-Programm <tt>tar</tt> verhält. Mit Hilfe des Programms <tt>extract</tt> werden die .tgz-Dateien der XFree86-Distribution als Benutzer <tt>root</tt> wie folgt extrahiert: <tscreen><verb> cd /usr/X11R6 /tmp/extract /tmp/X332[8-z]*.tgz /tmp/extract /tmp/X3322upd.tgz </verb></tscreen> Das Meta-Zeichen in Dateinamen [...] steht für »Eins der in der Klammer vorkommenden Zeichen«; [8-z] steht hier für den Bereich von Zeichen 8 mit ASCII-Wert 56 fortlaufend bis zu Zeichen z mit ASCII-Wert 122. Man beachte, daß die Update-Datei <tt>X3322upd.tgz</tt> separat zum Schluß extrahiert wird, da sie diverse Bibliotheken (<tt>X11</tt>, <tt>Xt</tt>, <tt>Xaw</tt> und <tt>Xmu</tt>) sowie das <tt>xterm</tt>-Programm mit aktuellen Versionen, die vornehmlich neuen Sicherheitsvorkehrungen dienen, überschreibt. Nach erfolgreicher Extrahierung der .tgz-Dateien wird das Skript für die Installationsnachbereitung <tt>postinst.sh</tt> ausgeführt: <tscreen><verb> cd /usr/X11R6 sh /tmp/postinst.sh </verb></tscreen> Das Skript aktualisiert das Schriftarten-Verzeichnis in <tt>/usr/X11R6/lib/X11/fonts/misc</tt> und installiert, falls erforderlich, neue <tt>terminfo</tt>-Einträge für die aktuelle Version des Programms <tt>xterm</tt>. <nidx>XFree86!/usr/X11R6/bin/X</nidx> Nach der Ausführung des Nachbereitungsskriptes <tt>postinst.sh</tt> muß der Link <tt>/usr/X11R6/bin/X</tt> so gesetzt werden, daß er auf die Datei des zuwendenden Servers zeigt. Soll z.B. der SVGA-Server benutzt werden, so wird <tt>/usr/X11R6/bin/XF86_SVGA</tt> nach <tt>/usr/bin/X11/X</tt> gelinkt. Falls dagegen der Monochrom-Server verwendet werden soll, findet folgendes Kommando Verwendung: <tscreen><verb> ln -sf /usr/X11R6/bin/XF86_MONO /usr/X11R6/bin/X </verb></tscreen> 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ß das Verzeichnis <tt>/usr/X11R6/bin</tt> mit in den Suchpfad aufgenommen werden, falls dieses sich nicht bereits im Suchpfad befindet. Dazu kann bei Verwendung der Bash-Shell die Systemdatei <tt>/etc/profile</tt> ediert werden oder es wird einfach das Verzeichnis dem persönlichen Suchpfad beigefügt, indem die benutzereigene Konfigurationsdatei der Bash-Shell <tt>~/.bashrc</tt> modifiziert wird. <!-- wirklich .bashrc und nicht .bash_profile? --> Zum Abschluß der Installation muß sichergestellt werden, daß der Linker <tt>ld.so</tt> das Verzeichnis <tt>/usr/X11R6/lib</tt> lokalisieren kann. Hierzu wird die Zeile <tt>/usr/X11R6/lib</tt> 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: <tscreen><verb> /sbin/ldconfig </verb></tscreen> Mit der erfolgreichen Ausführung des Programms <tt>/sbin/ldconfig</tt> ist die Installationsphase abgeschlossen und es kann nun mit der Konfiguration von XFree86 begonnen werden. <sect>Konfiguration von XFree86 <p> <nidx>XFree86!Konfiguration</nidx> 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 erweisen. <nidx>XF86Config</nidx> 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 die Konfiguration jederzeit erweitert werden, um sämtliche Fähigkeiten der Videohardware auszunutzen. Dahinter verbirgt sich die Idee, zu überprüfen, ob XFree86 überhaupt auf dem System funktioniert und ob die Installation auch nicht fehlerhaft ist. Zusätzlich zu dieser HOWTO sollten die folgenden Dokumente gelesen werden: <nidx>Dokumentation!XFree86</nidx> <nidx>XFree86!Dokumentation</nidx> <itemize> <item>Die XFree86-Dokumentation. Sie befindet sich in dem Paket <tt>X332doc.tgz</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</tt>-Dateien, 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>, <tt>XF86Setup</tt> und <tt>xvidtune</tt>. <item>Die Manual-Seiten über den benutzten Server, wie z.B. <tt>XF86_SVGA</tt> oder <tt>XF86_S3</tt>. </itemize> <nidx>/usr/X11R6/lib/X11/XF86Config</nidx> <nidx>XFree86!/usr/X11R6/lib/X11/XF86Config</nidx> Die Haupt-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 Beispielkonfiguration, 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 Muster-<tt>XF86Config</tt>-Datei schrittweise vorgestellt. Diese Datei kann sich von der Beispieldatei, 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.3.2. Ferner sollte auch der Versuch unterbleiben, die hier aufgelistete Konfigurationsdatei auf das eigene 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</tt>-Datei sicherstellen, 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:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/misc" FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/75dpi" EndSection </verb></tscreen> <nidx>XFree86!Schriften</nidx> <nidx>Schriften in XFree86</nidx> Die <tt>RgbPath</tt>-Zeile setzt den Pfad zu der X11R6-RGB-Farbdatenbank. Jede <tt>FontPath</tt>-Zeile zeigt auf das jeweilige Verzeichnis mit den entsprechenden X11-Schriftarten. Im allgemeinen besteht kein Grund, diese Zeilen zu ändern, falls man nicht gerade ein neues Verzeichnis für weitere Schriftarten anlegen möchte. Für jedes Verzeichnis in <tt>/usr/X11R6/lib/X11/fonts</tt> sollte ein Eintrag in der Sektion <tt>Files</tt> zu finden sein. 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" # Diese Option erzeugt genau an der Stelle einen core # dump, an der das entsprechende Signal empfangen wurde. # Dieses läßt die Konsole eventuell in einem unbenutz- # baren Zustand zurück, kann jedoch das Debuggen mit # diesem core dump erleichtern. # NoTrapSignals # Diese Option schaltet die Möglichkeit ab, den X11- # Server mit <Strg><Alt><Backspace> abzubrechen. # DontZap EndSection </verb></tscreen> Alle Zeilen innerhalb der Sektion sind daher mit Hilfe des Nummernzeichens # auskommentiert. <nidx>XFree86!Tastatur</nidx> <nidx>Tastatur</nidx> Der folgende Abschnitt <tt>Keyboard</tt> beschreibt die Standardeinstellungen für die Tastatur. <tscreen><verb> Section "Keyboard" Protocol "Standard" XkbRules "xfree86" XkbModel "pc102" XkbLayout "de" XkbVariant "nodeadkeys" 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 funktionieren auf den meisten Systemen. <nidx>XFree86!Maus</nidx> <nidx>Maus!XFree86</nidx> Die Parameter für die Maus werden im nächsten Abschnitt spezifiziert. <tscreen><verb> Section "Pointer" Protocol "MouseSystems" Device "/dev/mouse" # Baudrate und SampleRate werden nur für einige Mäuse # von Logitech verwendet. # BaudRate 9600 # SampleRate 150 # Emulate3Buttons ist eine Option für Microsoft Mäuse # mit nur 2 Tasten # Emulate3Buttons # ChordMiddle ist eine Option für einige 3-Tasten Mäuse # von Logitech # 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 einer <em>Logitech-Busmaus</em> verwendet werden. Ferner sollte man beachten, daß ältere <em>Logitech-Mäuse</em> 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 (z.B. <tt>/dev/ttyS0</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. <nidx>XFree86!Monitor</nidx> <nidx>Monitor</nidx> 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" # Diese Werte sind nur für einen CTX 5468NI Monitor! # Versuchen sie nicht, diese Werte für ihren Monitor # zu verwenden, wenn sie nicht wirklich dieses # Modell haben sollten. 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 »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 selbst 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 sich die angegebenen Bildschirmauflösungen 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 dot-clock horiz-Werte vert-Werte </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 der der Elektronenstrahl eine Zeile anzeigt, eine Beruhigungsphase und den Synchronisationsimpuls durchläuft. <!-- Inhalt der VideoModes.doc sollte sich in der HOWTO befinden! --> 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 detailliert, 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>. <nidx>VESA</nidx> Anfänglich ist es empfehlenswert, mit <tt>Modeline</tt>-Werten des VESA-Standards zu beginnen, da die meisten Monitore die VESA-Auflösungen 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 Modus # Horizontal Sync = 31.5kHz # Timing: H=(0.95us, 3.81us, 1.59us) # V=(0.35ms, 0.064ms, 1.02ms) # # Name clock horizontales Timing vertikales 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 <tt>640x480</tt> 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, werden die jeweiligen <tt>ModeLine</tt>-Zeilen vom X11-Server ignoriert. 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 der Einträge aus diesen beiden Dateien können eigene Werte kreiert werden. Man sollte jedoch nur dem Monitormodell entsprechende Werte benutzen. Man beachte, daß jeder Monitor nur eine bestimmte maximale Auflösung darstellen kann. Hier sollte man sich nicht nur auf die Herstellerangaben verlassen, da diese Angaben oft übertrieben sind. Rein physikalisch kann ein 15-Zoll-Monitor maximal 800x600 scharf darstellen. Höhere Auflösungen führen dazu, daß das Bild unscharf wird. Bei 17-Zoll-Monitoren sind maximal 1280x1024 zu empfehlen. 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 selbergenerierten <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 Leben sicherlich leichter. <!-- Beschreibung von xvidtune fehlt! --> 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. <!-- falsch, die Zerstoerung wie ja durch die Grenzwerte verhindert --> <nidx>XFree86!Grafikkarte</nidx> <nidx>Grafikkarte!XFree86</nidx> 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" # bisher nichts; wir werden diese später mit # Optionen füllen 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, den 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_Mach64</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 detailliert. 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: <descrip> <tag><tt>Depth</tt></tag> <nidx>Farbtiefe</nidx> <nidx>XFree86!Farbtiefe</nidx> 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 eine Farbtiefe 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. Der 24 Bit-Modus sollte keine Verwendung finden, da damit einige bekannte Programme wie netscape Probleme haben. Statt dessen sollte der 32 Bit-Modus verwendet werden, wenn eine Echtfarbendarstellung benötigt wird. <tag><tt>Modes</tt></tag> 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. <tag><tt>Virtual</tt></tag> <nidx>XFree86!virtueller Desktop</nidx> 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. <!-- 1280x1024 = 1,3 MB != 2 MB --> 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 statt dessen <tt>fvwm2</tt> oder ein ähnlicher Fenstermanager benutzt werden. <tt>fvwm2</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>fvwm2</tt> herangezogen werden. Die meisten Linux-Systeme setzen standardmäßig <tt>fvwm2</tt> als Fenstermanager ein. <tag><tt>ViewPort</tt></tag> 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 <tt>0 0</tt>. Werden für <tt>Virtual</tt> keine Angaben gemacht, erhält man einen zum virtuellen Desktop zentrierten Bildschirmausschnitt. </descrip> 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 vollständigen 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. Anstatt 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 über einen S3-Chip verfügt und deshalb den <tt>XF86_S3</tt>-Server benutzt. Die hier beschriebene Methode kann auch auf jede andere Karte angewendet werden. <nidx>SuperProbe</nidx> <nidx>XFree86!SuperProbe</nidx> 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.3.2 / 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.3.2 / 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" # Den Identifier haben wir bereits ... Identifier "#9 GXE 64" # Fügen Sie diese Zeile hinzu: 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 in den 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 kann jeweils die Bildpunkt-Taktfrequenz erzeugen, die der X-Server für einen bestimmten Mode braucht. Man ist also nicht mehr auf diskrete, vorgegebene Bildpunkt-Taktfrequenzen beschränkt. In diesem Fall findet man in keiner der oben genannten Dateien eine Liste von Werten für die zu benutzende Karte oder sie enthalten nach der Anwendung von <tt>X -probeonly</tt> höchstens 1 oder 2 feste Werte, ansonsten nur Duplikate oder Nullwerte. <!-- wichtige Karten wie von Matrox fehlen! --> <nidx>XFree86!Clockchip</nidx> <nidx>Clockchip</nidx> Bei der Benutzung von Grafikkarten mit einem programmierbaren Clockchip wird in der <tt>XF86Config</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 Clockchips. Die Manual Pages der verschiedenen Server enthalten sämtliche Namen. Die <tt>README.S3</tt>-Datei gibt z.B. für verschiedene S3-864-Grafikkarten den ICD2061A-Clockchip 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 des verwendeten RAMDAC-Chips, dessen Name in die <tt>Ramdac</tt>-Zeile der <tt>XF86Config</tt>-Datei einzutragen ist. Die Manual-Seite von <tt>XF86_Accel</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-Sektion speziell für die #9 GXE 64! 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. <!-- wirklich? haben heute nicht fast alle Karten einen ClockChip? --> <sect>Starten von XFree86 <nidx>XFree86!Starten</nidx> <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><verb> startx </verb></tscreen> Der Befehl 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-Clients 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 Standard-<tt>.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>-Clients, 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. Dieses führt dazu, daß der <nidx>xinit</nidx> <tt>xinit</tt>-Prozeß durch <tt>twm</tt> ersetzt wird. Nach Beendigung des <tt>twm</tt>-Prozesses fährt auch der X-Server herunter. Mit Hilfe des Hauptmenüs kann veranlaßt werden, den <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: <em>Exit Twm</em>. 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, da ansonsten der X-Server beendet wird, sobald alle Clients aus der <tt>.xinitrc</tt>-Datei gestartet wurden. 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>fvwm2</tt>-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 <em>The X Window System: A User's Guide</em> empfohlen, da die Benutzung und Konfiguration von X zu umfangreich ist, um hier ausführlich behandelt zu werden. Für einen ersten Anhaltspunkt können die Manual-Seiten zu <tt>xterm</tt>, <tt>oclock</tt> und <tt>fvwm2</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 Bildkanten dar. Außerdem sollte die korrekte Spezifizierung des Chipsatzes der Grafikkarte, sowie der anderen Optionen im <tt>Device</tt>-Abschnitt der <tt>XF86Config</tt>-Datei sichergestellt sein. 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. <nidx>XFree86!Wechseln zwischen Grafimodi</nidx> 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. <!-- keine gute Idee, wenn man verschiedene BS benutzt, besser xvidtune --> Es existieren verschiedene Newsgruppen zum Thema XFree86, wie z.B.: <nidx>XFree86!Newsgruppen</nidx> <itemize> <item><tt><htmlurl url="news:comp.windows.x.i386unix" name="comp.windows.x.i386unix"> </tt> <item><tt><htmlurl url="news:de.comp.os.unix.linux.x" name="de.comp.os.unix.linux.x"> </tt> </itemize> 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. <sect>Copyright <p> Dieses Dokument ist urheberrechtlich geschützt. Das Copyright für das deutsche <em>Linux XFree86 HOWTO</em>, Version 2.71828, 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>