Lade und zeichne
Seite 2: XFree86 4 - Neue Konfiguration
XFree86 4 - Neue Konfiguration
Neue Features erfordern auch Erweiterungen in der Syntax der Konfigurationsdatei. Beinahe alles ist immer noch kompatibel zu früheren Versionen, der Server ist an einigen Stellen jedoch weniger tolerant gegenüber Ungereimtheiten, wie Referenzen auf nicht existierende Sections.
Zur Darstellung der Verbesserungen und Erweiterungen des neuen Formats sollen Ausschnitte aus einer Beispielkonfigurationsdatei mit kurzen Erläuterungen dienen. Diese basiert auf der Aufgabe, einen Rechner mit zwei Grafikkarten zu konfigurieren, einer Matrox G200 AGP und einer Elsa Erazor II PCI. An beiden Karten ist ein 19-Zoll-Monitor mit 96 kHz maximaler Horizontalfrequenz angeschlossen, der VESA-Timings akzeptiert; letzteres ist bei effektiv allen aktuellen Monitoren der Fall. Wahlweise sollen beide Karten im Dual-Head-Modus oder nur die Matrox-Karte einzeln laufen.
Um Multi-Head-Situation modellieren zu können, unterstützt die Konfigurationsdatei eine neue Section ‘ServerLayout’. Diese definiert die aktiven Screens und deren Lage zueinander. Für die gestellte Aufgabe sind zwei verschiedene solcher Sections anzulegen, eine für Dual-Head und eine für die Benutzung der Matrox-Karte alleine.
# if no -layout option is given, the first layout
# section is used
Section "ServerLayout"
Identifier "Main Layout"
Screen "MatroxScreen"
Screen "ElsaScreen" Right Of "MatroxScreen"
InputDevice "Mouse 1" "CorePointer"
InputDevice "Mouse 2" "SendCoreEvents"
InputDevice "Keyboard 1" "CoreKeyboard"
EndSection
Section "ServerLayout"
Identifier "MatroxOnly"
Screen "MatroxScreen"
InputDevice "Mouse 1" "CorePointer"
InputDevice "Mouse 2" "SendCoreEvents"
InputDevice "Keyboard 1" "CoreKeyboard"
EndSection
Über den Aufruf startx bekommt der Anwender das ‘Main Layout’ mit zwei Bildschirmen, startx -- -layout MatroxOnly fährt das Alternativ-Layout mit nur einem Monitor hoch. Die ServerLayout Section erlaubt es nicht nur, die verwendeten Screens auszuwählen, sondern enthält auch Angaben zu den benutzten Eingabegeräten. Hier werden zwei verschiedene Mäuse eingesetzt, die beide als Core-Pointer den eigentlichen Mauszeiger unter X beeinflussen. Diese Eingabegeräte beschreibt eine InputDevice Section.
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "Microsoft"
Option "Device" "/dev/mouse"
EndSection
Section "InputDevice"
Identifier "Mouse2"
Driver "mouse"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/usbmouse"
EndSection
Die Screen Section an sich entspricht weitestgehend dem schon in XFree86 Version 3 bekannten Format.
Section "Screen"
Identifier "MatroxScreen"
Device "MGA G200 AGP"
Monitor "My Monitor"
DefaultDepth 16
SubSection "Display"
Depth 16
Modes "1280x1024"
EndSubSection
EndSection
Section "Screen"
Identifier "ElsaScreen"
Device "Elsa Erazor II"
Monitor "My Monitor"
DefaultDepth 16
SubSection "Display"
Depth 16
Modes "1280x1024"
EndSubSection
EndSection
Anders als bisher referenziert allerdings eine Screen Section nun ausdrücklich die mit diesem Screen verwendete Device Section.
Section "Device"
Identifier "Elsa Erazor II"
Driver "nv"
BusID "PCI:0:10:0"
EndSection
Section "Device"
Identifier "MGA G200 AGP"
Driver "mga"
VideoRam 8192
BusID "PCI:1:0:0"
Option "pci retry"
EndSection
Device Sections wiederum definieren jetzt explizit, welche Karte sie betreiben wollen. Hier im oberen Fall die PCI-Karte am PCI-Bus 0, PCI-Id 10 (und Function 0), im unteren Fall die Karte am PCI-Bus 1, was auf beinahe allen Motherboards in Wirklichkeit den AGP-Slot adressiert. Die Angabe der Bus-ID ist für Multi-Head-Konfigurationen zwingend, bei Betrieb nur einer Grafikkarte kann sie auch entfallen und der entsprechende Treiber sucht sich selbst die von ihm unterstützte Karte. Welchen Treiber der Server verwenden soll, bestimmt das Schlüsselwort Driver.
Unverändert kann die Monitor Section aus alten Konfigurationsdateien übernommen werden. Als Erweiterung zur bisherigen Syntax ist es jetzt aber möglich, VESA-Modelines zu referenzieren, ohne sie explizit anzugeben. Für die bisher angegebenen Ausschnitte wäre dies also eine gültige Monitor Section:
Section "Monitor"
Identifier "My Monitor"
HorizSync 30-96
VertRefresh 50-120
EndSection
Den am besten geeigneten VESA-Mode für die in der Screen Section gewählten 1280x1024-Auflösung wählt der Server dann automatisch. (avr)