Die XF86Config-
Datei ist bis auf die kompletten Informationen über die
Grafikkarte soweit fertiggestellt. Zur Ermittlung dieser restlichen
Informationen wird der X-Server selber herangezogen. Die so gewonnenen
Spezifikationen der Grafikkarte werden anschließend in die XF86Config-
Datei
eingetragen.
Anstelle den X-Server zur Ermittlung der Informationen zu starten, können auch
die Dateien: modeDB.txt
, AccelCards
sowie Devices
benutzt werden. Sie enthalten
die entsprechenden XF86Config-
Werte für eine Vielzahl von Grafikkarten und
befinden sich in dem Verzeichnis /usr/X11R6/lib/X11/doc
. Zusätzlich existieren
verschiedene README-
Dateien für bestimmte Chipsätze. Die in diesen Dateien
gefundenen Informationen über die zu verwendende Grafikkarte mit Bildpunkt-
Taktfrequenzen, Chipsatz usw. können in der Konfigurationsdatei XF86Config
natürlich benutzt werden. Fehlende Spezifikationen sind mit der nun nachfolgend
beschriebenen Methode zu ermitteln.
Als Beispiel dient die Konfiguration einer #9 GXE 64-Grafikkarte, die einen
XF86_S3-
Chipsatz benutzt. Die hier beschriebene Methode kann auch auf jede
andere Karte angewendet werden.
Zuerst muß der von der Grafikkarte benutzte Chipsatz bestimmt werden. Dazu kann
man das Programm SuperProbe
verwenden, das sich im Verzeichnis /usr/X11R6/bin
befindet. Man beachte, daß der Name des Chipsatzes, so wie er von dem X-Server
verwendet wird, erforderlich ist. Um ihn zu ermitteln, wird das Kommando:
X -showconfig
eingegeben, das sämtliche dem X-Server bekannten Chipsatznamen auflistet.
Die Manual-Seiten für den entsprechenden X-Server enthalten auch diese Namen.
Für den beschleunigten XF86_S3-
Server erhält man z. B. mit Hilfe von
X -showconfig
folgende Informationen:
XFree86 Version 3.1 / X Window System
(protocol Version 11, revision 0, vendor release 6000)
Operating System: Linux
Configured drivers:
S3: accelerated server for S3 graphics adaptors (Patchlevel 0)
mmio_928, s3_generic
Die gültigen Chipsatznamen für diesen Server lauten mmio_928
und
s3_generic
. Die XF86_S3-
Manual-Seite beschreibt diese Chipsätze und
welche Grafikkarten sie benutzen. Im Fall der #9 GXE 64-Grafikkarte wird
mmio_928
verwendet.
Falls der Chipsatzname noch unbekannt ist oder Zweifel bestehen, welcher auszuwählen ist, kann wiederum der X-Server benutzt werden, um ihn zu ermitteln. Bei der Verwendung der Bash-Shell wird das Kommando durch:
X -probeonly > /tmp/x.out 2>&1
gestartet. Wird dagegen die C-Shell benutzt, so muß
X -probeonly &> /tmp/x.out
eingegeben werden.
Das Kommando sollte abgesetzt werden, solange das System noch nicht geladen ist, d. h., solange sich keine andere Aktivität im System ereignet. Da der Befehl auch die Bildpunkt-Taktfrequenzen der Grafikkarte ermittelt, können zusätzliche Systembelastungen das Ergebnis verfälschen.
Die von dem oben angegebenen Kommando erzeugte Ausgabe, die sich in der Datei
/tmp/x.out
befindet, enthält z. B. die folgenden Zeilen:
XFree86 Version 3.1 / X Window System
(protocol Version 11, revision 0, vendor release 6000)
Operating System: Linux
Configured drivers:
S3: accelerated server for S3 graphics adaptors (Patchlevel 0)
mmio_928, s3_generic
...
(--) S3: card type: 386/486 localbus
(--) S3: chipset: 864 rev. 0
(--) S3: chipset driver: mmio_928
Der Server, in diesem Fall der XF86_S3
, kennt demnach zwei gültige
Chipsatznamen: mmio_928
und s3_generic
, wobei er speziell
für die verwendete Grafikkarte den mmio_928-
Chipsatz ermittelt hat.
Der so gefundene Name des Chipsatzes wird anschließend in die Zeile Chipset
des Device-
Abschnitts der XF86Config-
Datei eingetragen.
Zum Beispiel:
Section "Device"
# We already had Identifier here...
Identifier "#9 GXE 64"
# Add this line:
Chipset "mmio_928"
EndSection
Als nächstes sind die von der Grafikkarte benutzten Bildpunkt-Taktfrequenzen zu bestimmen. Die Bildpunkt-Taktfrequenz (dot-clock) gibt die Anzahl der Bildpunkte an, die die Grafikkarte je Zeiteinheit zum Monitor senden kann. Wie bereits an oberer Stelle gezeigt, besitzt jede Bildschirmauflösung ihre eigene Bildpunkt- Taktfrequenz. Die von der Grafikkarte unterstützen Werte gilt es nun im folgenden zu bestimmen.
Zuerst sollte man aber die bereits erwähnten Dateien modeDB.txt
usw.
überprüfen, ob dort die benötigten Bildpunkt-Taktfrequenzen für die zu
benutzende Grafikkarte aufgelistet sind. Sie werden gewöhnlich in einer Liste
mit 8 oder 16 Werten angegeben. Die Einheit ist MHz. Die Datei modeDB.txt
gibt z. B. für die Grafikkarte Cardinal ET4000 folgende Zeilen aus:
# chip ram virtual clocks default-mode flags
ET4000 1024 1024 768 25 28 38 36 40 45 32 0 "1024x768"
Wie das Beispiel zeigt, sind die Bildpunkt-Taktfrequenzen für diese Karte:
25, 28, 38, 36, 40, 45, 32 und 0 MHz.
In dem Device-
Abschnitt der XF86Config-
Datei wird demnach eine Zeile Clocks
hinzugefügt, die die Liste der Bildpunkt-Taktfrequenzen enthält. Bezogen auf
das Beispiel wird die Zeile:
Clocks 25 28 38 36 40 45 32 0
nach der Chipset-
Zeile in die Device-
Sektion eingetragen. Man beachte, daß die
Reihenfolge der Werte sehr wichtig ist. Die Liste darf weder neu sortiert noch
dürfen mehrfach auftretende Werte entfernt werden.
Sind die Bildpunkt-Taktfrequenzen einer speziellen Grafikkarte nicht bekannt,
so kann auch hier der X-Server wieder benutzt werden, diese Werte selber zu
ermitteln. Mit dem weiter oben beschriebenen Kommando X -probeonly
erhält die
Ausgabe unter anderem eine Zeile mit den gewünschten Werten. Für die
Grafikkarte #9 GXE 64 sieht sie z. B. wie folgt aus:
(--) S3: clocks: 25.18 28.32 38.02 36.15 40.33 45.32 32.00 00.00
Sämtliche ausgegebenen Werte werden der Clocks-
Zeile hinzugefügt. Passen nicht
alle Werte in eine Zeile, da oftmals mehr als 8 Werte angezeigt werden, können
sie auf mehrere Clocks-Zeilen in der XF86Config-
Datei verteilt werden. An
dieser Stelle noch einmal der Hinweis, daß die Liste mit den Werten in der
ausgegebenen Reihenfolge beibehalten werden muß!
Bei der Ermittlung der Bildpunkt-Taktfrequenzen mit Hilfe des Kommandos
X -probeonly
darf es keine Clocks-
Zeile in der
Device-
Sektion von XF86Config
geben. Notfalls kann sie
auskommentiert werden. Beim Vorhandensein dieser Zeile
wird der Server die Werte nicht selber ermitteln, sondern die bereits
in der XF86Config-
Datei aufgeführten Werte benutzen.
Man beachte, daß einige beschleunigte Grafikkarten einen programmierbaren
Clockchip benutzen. Für weitere Details kann die XF86-Accel-
Manual-Seite
herangezogen werden. Dies gilt besonders für S3-
, AGX-
und XGA-2-
Karten.
Dieser Chip ermöglicht dem X-Server der Grafikkarte mitzuteilen, welche
Bildpunkt-Taktfrequenzen zu benutzen sind. In diesem Fall findet man in keiner
der oben genannten Datei eine Liste von Werten für die zu benutzende Karte
oder sie enthält nach der Anwendung von X -probeonly
höchstens 1 oder 2 feste
Werte, ansonsten nur Duplikate oder Nullwerte.
Bei der Benutzung von Grafikkarten mit einem programmierbaren Clockchip
wird
in der XF86Conifg-
Datei anstelle einer Clocks-
eine ClockChip-
Zeile verwendet.
ClockChip
enthält den Namen des von der Karte benutzten Clockchips
. Die
Manual-Seiten der verschiedenen Server enthalten sämtliche Namen. Die
README.S3-
Datei gibt z. B. für verschiedene S3-864-Grafikkarten den
ICD2061A-Clockchip
an. Dieser Name wird dann anstelle von Clocks
in die
Zeile:
ClockChip "icd2061a"
der XF86Config-
Datei eingetragen. In dem Device-
Abschnitt steht diese Zeile,
wie auch schon Clocks
, hinter der Chipset-
Zeile. Einige beschleunigte
Grafikkarten erforden zusätzlich die Spezifizierung eines RAMDAC-Chiptypen,
dessen Name in die Ramdac-
Zeile der XF86Config-
Datei einzutragen ist. Die
Manual-Seite von XF86_Accell
beschreibt diese Option. Gewöhnlich wird die
RAMDAC vom X-Server korrekt ermittelt.
Einige Typen von Grafikkarten erfordern zusätzliche Angaben verschiedener
Optionen in der Device-
Sektion von XF86Config
. Diese Optionen werden
ausführlich auf den Manual-Seiten der entsprechenden Server sowie in den
verschiedenen Dateien, wie z. B. README.cirrus
oder README.S3
, beschrieben.
Sie können mit Hilfe der Option-
Zeile gesetzt werden. Die
#9 GXE 64- Grafikkarte erfordert z. B. zwei Optionen:
Option "number_nine"
Option "dac_8_bit"
Normalerweise kann der X-Server auch ohne diese Optionen betrieben werden.
Jedoch sind sie zum Erzielen der größtmöglichen Leistung notwendig. Es
existiert noch eine Vielzahl solcher Optionen, die hier aber nicht weiter
aufgeführt werden. Jede dieser Optionen hängt von einer bestimmten Grafikkarte
ab. Sowohl die Manual-Seiten über die X-Server als auch die verschiedenen
Dateien in /usr/X11R6/lib/X11/doc
beschreiben diese Optionen ausführlich,
falls eine von ihnen benutzt werden muß.
Nachdem alle Einträge in die Device-
Sektion vollzogen sind, sieht sie für die
#9 GXE 64-Grafikkarte folgendermaßen aus:
Section "Device"
# Device section for the #9 GXE 64 only!
Identifier "#9 GXE 64"
Chipset "mmio_928"
ClockChip "icd2061a"
Option "number_nine"
Option "dac_8_bit"
EndSection
Die meisten Grafikkarten werden anstelle der ClockChip-
Zeile eine Clocks-
Zeile
erfordern. Man beachte, daß der oben angegebene Device-
Abschnitt nur für die
spezielle Grafikkarte #9 GXE 64 gültig ist. Er ist hier nur als Beispiel
aufgeführt.