Die XF86Config
-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
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 über einen S3-Chip verfügt und deshalb
den XF86_S3
-Server 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.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
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.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
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"
# Den Identifier haben wir bereits ...
Identifier "#9 GXE 64"
# Fügen Sie diese Zeile hinzu:
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 in den 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 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 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
XF86Config
-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 des verwendeten RAMDAC-Chips, dessen Name in die
Ramdac
-Zeile der XF86Config
-Datei
einzutragen ist. Die Manual-Seite von XF86_Accel
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-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
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.