Inhalt

6. Spezifikation der Grafikkarte

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.

Anstatt 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 Dateien eine Liste von Werten für die zu benutzende Karte oder sie enthalten 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 Pages 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.


Inhalt