Übersicht |
Vermutlich gibt es heute nur noch wenige Hardware-Konstellationen, bei denen alle verfügbaren Konfigurationwerkzeuge versagen. Für den seltenen Fall, dass dem doch so ist, kann eine manuelle Bearbeitung der XF86Config-Datei die Rettung bedeuten. Aber Vorsicht: Falsche Einstellungen zerstören unter Umständen die Hardware!
Ich selbst hatte vor Jahren das TFT-Displays eines Notebooks zur Mitarbeit animiert, nachdem ich etwas mit den Modelines herum experimentierte. Zugegeben, es war eine riskante Angelegenheit, aber auf das Notebook gab's ja noch Garantie;-)
»XF86Config« ist die einzige für den X-Server relevante Konfigurationsdatei. In den meisten Systemen werden Sie sie im Verzeichnis »/etc/X11/« finden; ältere SuSE-Distributionen (< 7) legten sie direkt im Verzeichnis »/etc/« ab. Seit XFree86 Version 4 ist die Namensgebung leider nicht bei allen Distributionen einheitlich; mitunter nennt sich die Datei auch »XF86Config-4«. Gar noch größere Vielfalt ist zu beobachten, wenn die X-Server in beiden Versionen 3.3.x und 4.x parallel installiert sind. Oft konfiguriert »/etc/XF86Config« dann den älteren Server, während »/etc/X11/XF86Config« die Version 4 betrifft.
Die Datei »XF86Config« ist in so genannte »Sektionen« gegliedert, die in diesem Abschnitt vorgestellt seien. Einige Sektionen sind erst in den Versionen ab XFree86 4.0 relevant, andere kennen nur die »älteren« X-Implementierungen, wobei mit Ausnahme von XInput alle Sektionen weiterhin unterstützt werden. Bei den versionsabhängigen Sektionen geben die Überschriften der einzelnen Abschnitte die zugehörige Version an; gilt eine Sektion in jeder Version, entfällt diese Angabe.
Mit dem Wechsel von XFree86 Version 3.3.6 zu Version 4 wurde die Syntax mancher Angaben in der Datei XF86Config geringfügig geändert. Genau genommen betrifft es die Einträge der Sektionen, die als »Optionen« bezeichnet werden. Ab Version 4 werden diese Optionen nicht nur bei ihrem Namen benannt, sondern zusätzlich durch das Schlüsselwort »Option« eingeleitet. Eine »Section ServerFlags» in Syntax der Version 4 sähe dann wie folgt aus:
Section "ServerFlags" Option "AllowMouseOpenFail" Option "DontZap" EndSection |
In der Konfigurationsdatei für X-Server der Versionen 3.3.x lautet ein gleichwertiger Eintrag hingegen:
Section "ServerFlags" AllowMouseOpenFail DontZap EndSection |
In den nachfolgenden Beispielen verwenden wir mit Ausnahme der 3.3.x-er spezifischen Sektionen ausschließlich die neuere Syntax; der Leser sollte die Änderungen leicht nachvollziehen können.
Die Sektion Files |
Bestimmte Variablen enthalten Pfadangaben, in denen der Server nach Dateien sucht:
FontPath | Verzeichnisse, die Schriften enthalten |
RGBPath | Verzeichnis mit der Datenbasis der Rgb-Farbtabelle |
ModulePath | Verzeichnis mit Modulen |
Sollten Sie bspw. nachträglich neue Schriften installieren, so fügen Sie den neuen Pfad zu [FontPath] hinzu, und alle X-Programme können nachfolgend diese verwenden.
Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "/usr/X11R6/lib/X11/fonts/Type1" FontPath "/usr/X11R6/lib/X11/fonts/URW" FontPath "/usr/X11R6/lib/X11/fonts/misc" FontPath "/usr/X11R6/lib/X11/fonts/75dpi" FontPath "/usr/X11R6/lib/X11/fonts/100dpi" FontPath "/usr/X11R6/lib/X11/fonts/freefont" FontPath "/usr/X11R6/lib/X11/fonts/sharefont" EndSection |
Auch der Port, an dem ein möglicher Fontserver seine Dienste anbietet, wird dem X-Server über einen FontPath-Eintrag bekannt gegeben. Für den Standardport 7100 sähe ein Eintrag wie folgt aus:
Section "Files" ... FontPath "unix/:7100" ... EndSection |
Die Sektion Module |
Module sind Erweiterungen, die der X-Server dynamisch nachladen kann, um bestimmte Geräte zu unterstützen. In Versionen vor 4.0 existieren einzig Module, die den Zugriff auf verschiedene Eingabegeräte wie Joysticks, Touchscreens,... ermöglichen; diese Geräte selbst müssen in der Sektion XInput angegeben werden.
Ab Version 4 des X-Servers sind weitere Teile dessen als Module realisiert.
Module werden entweder mit ihrem vollständigen Zugriffspfad oder nur mittels ihres Namens angegeben. In letzterem Fall muss das Modul in einem der durch »ModulePath« genannten Verzeichnisse oder in einem Standardpfad (/usr/X11R6/lib/modules/fonts oder /usr/X11R6/lib/modules/extensions) enthalten sein.
Section "Modules" Load "dri" Load "glx" Load "extmod" Load "freetype" EndSection |
Verwenden Sie XFree86 Version 4 und verfügen über eine Grafikkarte mit 3D-Unterstützung, so sollten Sie die Module für das Direct Rendering Interface (load "dri") und die X-Window-Erweiterungen von OpenGL (load "glx") einbinden, um die Fähigkeiten ihrer Grafikkarte auch nutzen zu können.
Die Sektion ServerFlags |
Verschiedene Optionen beeinflussen die Arbeit des X-Servers. Die interessantesten sind:
DontZap
DontZoom
AllowMouseOpenFail
Eine ServerFlag-Sektion könnte wie folgt aufgebaut sein:
Section "ServerFlags" Option "AllowMouseOpenFail" Option "DontZap" EndSection |
Die Sektion Keyboard [3] |
Bemerkung: Ab XFree86 Version 4.0 ist diese Sektion in der Sktion »InputDevice« enthalten.
Die Sektion ist hauptsächlich für die Belegung der Tastatur verantwortlich. Zwar können die einzelnen Tasten auch nachträglich neu belegt werden, doch wird man das kaum für alle 104 Tasten vollziehen wollen. Das manuelle Mapping dient nur, um einzelnen Tasten des Standardlayouts mit neuen Funktionen zu versehen.
Die nachfolgend beschriebenen Optionen sind nur eine Auswahl.
Protocol
LeftAlt, AltGr, ScrollLock, RightCtl
XkbRules
XkbModel
XkbLayout
XkbVariant
Section "Keyboard" Protocol "Standard" XkbRules "xfree86" XkbModel "pc104" XkbLayout "de" XkbVariant "nodeadkeys" EndSection |
Die Sektion Pointer [3] |
Bemerkung: Ab XFree86 Version 4.0 ist diese Sektion in InputDevice enthalten.
Hier erfolgen die Angaben über die Maus. Hierunter zählen Mausprotokoll, Anzahl unterstützter Tasten, die Zeitspanne zwischen zwei Klicks... Ich beschränke mich auf die gebräuchlichen Optionen:
Protocol
Device
BaudRate
Buttons
Emulate3Buttons
Emulate3Timeout
Resolution
SampleRate
ZAxisMapping
Ein entsprechender Abschnitt der Konfigurationsdatei ist wie folgt aufgebaut:
Section "Pointer" Protocol "Microsoft" Device "/dev/ttyS0" SampleRate "60" BaudRate "1200" ZAxisMapping "4 5" EndSection |
Die Sektion Monitor |
Bemerkung Ab XFree86 Version 4.0 sind die ModeLine-Zeilen in eine eigene Sektion Modes ausgelagert.
Zum Verständnis des folgenden Abschnitts ist eine kurze Einführung in die prinzipielle Arbeitsweise von Monitoren unumgänglich:
Eine Kathode erzeugt in Zusammenarbeit mit einer Anode einen Elektronenstrahl, der beim Auftreffen auf die Bildschirmoberfläche (Anode) deren Beschichtung zum Erleuchten bringt. Der Elektronenstrahl beginnt in der linken oberen Bildschirmecke, bewegt sich, gesteuert durch ein Ablenksystem, nach rechts, bis ein Hsync-Signal ihn zurück zum Zeilenanfang der folgenden Zeile bringt. Erreicht der Elektronenstrahl die rechte untere Bildschirmecke, ist ein Vsync-Signal notwendig, um einen vertikalen Rücklauf zum Bildschirmanfang zu bewirken. Die verschiedenen Kontraste und Farben der Darstellung werden durch die Intensität des Elektronenstrahls variiert, beim Rücklauf bewirkt die Intensität 0 dessen "Unsichtbarkeit". Das Nachleuchten der angeregten Teilchen auf der Bildschirmoberfläche ist nur von kurzer Dauer, so dass der Strahl mehrfach in der Sekunde den gesamten Bildschirm überstreifen muss, um ein flimmerfreies Bild zu erzeugen (Refresh oder vertikale Bildschirmfrequenz). 70 Bilder sind das Minimum, das man seinen Augen in der Sekunde zumuten sollte.
Zurück zur Konfiguration...
Mit Identifier ist ein eindeutiger Name einzugeben, über den in der später beschriebenen Sektion "Screen" der Monitor referenziert wird. Die beiden Angaben zum Monitor-Hersteller "VendorName" und Modell "ModelName" besitzen rein informativen Charakter und können entfallen.
Enorm wichtig ist die korrekte Angabe der horizontalen HorizSync und vertikalen VertSync Frequenzen, die der Monitor unterstützt. Ein zu kleiner Wert ist nicht kritisch, allerdings leidet die Qualität der Ausgabe, da die Möglichkeiten des Monitors nicht ausgereizt werden. Zu hohe Angaben können allerdings auf die Dauer den Bildschirm beschädigen. Welche Frequenzbereiche für einen Monitor zulässig sind, erfahren Sie aus dem Handbuch oder bei manchen Modellen durch einen Herstelleraufdruck auf der Monitor-Rückseite. Bei Festfrequenzmonitoren werden die möglichen Werte durch Komma getrennt angegeben, bei variablen Frequenzen erfolgt die Angabe als Bereich Min-Max.
Die "ModeLine"-Zeilen sind das Kernstück der Konfiguration. Sie bestimmen, wie sich der Elektronenstrahl über die Mattscheibe bewegt und bestimmen somit neben der Bilddimension dessen Ausrichtung auf dem Bildschirm (Breite, Höhe, Abstände zum Rand). Die Angabe der Modelines kann nach 2 Varianten erfolgen:
# 1. Syntaxvariante ModeLine "800x600" 97.55 800 816 928 1040 600 600 615 626 # 2. Syntaxvariante Mode "800x600" DotClock 97.55 HTimings 800 816 928 1040 VTimings 600 600 615 626 Flags EndMode |
DotClock ist die Videobandbreite in MHz und gibt an, wie viele Pixel binnen einer Sekunde von der Grafikkarte zum Monitor übertragen werden können. Angenommen das Bild soll mit 100 Hz (100 Bilder in der Sekunde) dargestellt werden, so ist bei einer Auflösung von 800x600 Bildpunkten eine Videobandbreite von 48 + x MHz notwendig, wobei x eine durch den horizontalen und vertikalen Rücklauf des Elektronenstrahls bestimmte Komponente (Faustregel ca. 10 MHz) ist. Der angegebene Wert muss mit einem der Werte aus der Sektion Device übereinstimmen (eine Abweichung in der Nachkommastelle ist zulässig), sonst handelt es sich um einen ungültigen Modus. Bei modernen Grafikkarten lassen sich die Frequenzen frei programmieren, so dass der Modus mit der höchst möglichen "DotClock" bei gleicher Auflösung gewählt wird.
HTimings steuert die horizontale Bewegung des Elektronenstrahls. Im obigen Beispiel soll dieser 800 Pixel anzeigen, nachfolgend 16 Pixel (801-816) "schwarz" darstellen. Für die Zeitspanne der Darstellung von 928-816=112 Pixel, wird ein Hsync-Signal erzeugt, das den Strahl an den Beginn der nächsten Zeile platziert. Auf dieser sind nochmals 1040-928=112 Pixel mit einer Intensität von "0" zu zeichnen, bevor der Vorgang wiederholt wird.
VTiming ist dasselbe Prinzip bezogen auf Zeilen. Im Beispiel sind also 600 Zeilen "normal" anzuzeigen, bevor "keine" Zeile "schwarz" dargestellt wird. Anschließend folgt ein Vsync-Impuls, der solange währt, wie die Darstellung von 15 Zeilen andauern würde, um mit 11 Zeilen "unsichtbarer" Darstellung einen Durchlauf abzuschließen.
Flags definiert spezielle Optionen, z.B. Interlace, womit billige Monitore versuchen, die Frequenzen teurer Exemplare zu simulieren und den Benutzer mit Kopfschmerzen quälen. Bei eingermaßen moderner Technik sollten die Flags nicht mehr notwendig sein.
TFT-Bildschirme neigen meist zu einer zu hellen Darstellung, die mit den bildschirmeigenen Einstellmöglichkeiten nur unzureichend auszugleichen ist. Ein Eintrag Gamma Wert (Wert=0.1..10) kann durchaus zu akzeptablen Ergebnisses führen. Der genaue Wert muss durch Tests ermittelt werden.
Was nützt die Kenntnis der einzelnen Werte der Timings?
Bleiben wir beim Beispiel der obigen HTimings-Werte 800 816 928 1040. Das Verhältnis vom ersten zum letzten Wert bestimmt die Breite des Bildes. Ist die Differenz kleiner, wird die Darstellung breiter, ist sie größer, wird das Bild schmaler. Mit Verringerung des HSync-Signals (Differenz von zweitem zu drittem Wert) verschieben Sie das Bild nach rechts und mit einer Verlängerung nach links. Die besten Ergebnisse erzielen Sie, indem Sie den zweiten Wert erhöhen, während Sie den dritten Wert um den gleichen Betrag vermindern. Dieses "Finetuning" funktioniert allerdings nur in geringen Grenzen, wenn Sie die Werte zu stark ändern, kann der Monitor die Darstellung verzerren und im schlimmsten Fall verweigern.
Sie können sich zurücklehnen... es ist gar nicht notwendig, dass Sie die Werte von Hand errechnen. Verwenden Sie z.B. das Programm xvidtune (unter X und eventuell mit der Option "--display 0:0") und spielen Sie mit den Werten bis sich ein stabiles Bild ergibt.
Mit einem Beispiel verabschieden wir uns aus der Sektion Monitor:
Section "Monitor" Identifier "Mein Monitor" VendorName "Unwichtig" ModelName "Interessiert nicht" HorizSync 30-96 VertRefresh 50-150 Modeline "1600x1000" 199.68 1600 1616 1968 2080 1000 1000 1015 1044 Modeline "1280x960" 159.74 1280 1296 1552 1664 960 960 975 1003 Modeline "1024x768" 127.49 1024 1040 1216 1328 768 768 783 802 Modeline "640x480" 62.48 640 656 720 832 480 480 491 501 Modeline "1600x1200" 199.68 1600 1616 1968 2080 1200 1200 1215 1253 Modeline "1280x1024" 159.74 1280 1296 1552 1664 1024 1024 1039 1070 Modeline "1152x864" 143.62 1152 1200 1416 1536 864 864 879 902 Modeline "800x600" 97.55 800 816 928 1040 600 600 615 626 EndSection |
Die Sektion Modes [4] |
Der Aufbau der ModeLine-Zeilen ist analog zur Beschreibung aus der Sektion Monitor; eine (verkürzte) Sektion könnte damit so aussehen:
Section "Modes" Identifier "Diese Modelines" Modeline "1600x1200" 199.68 1600 1616 1968 2080 1200 1200 1215 1253 ... Modeline "800x600" 97.55 800 816 928 1040 600 600 615 626 EndSection |
Wichtig ist bei mehreren Modes-Sektionen die Eindeutigkeit des Identifier, über den der Zugriff in der Sektion Monitor vorgenommen wird:
Section "Monitor" ... UseModes "Diese Modelines" EndSection |
Die Sektion Device |
Für jede im System installierte Grafikkarte kann eine eigene Sektion Device enthalten sein. Wichtig ist der eindeutige Identifier, der einen frei wählbaren Bezeichner enthält. Die Angaben zum Hersteller VendorName und Modell BoardName können entfallen.
Ab XFree86 Version 4 ist die Angabe von Driver <Treibername> zwingend erforderlich, um dem Server die korrekte Auswahl des Treibers für diese Grafikkarte zu ermöglichen. Die gültigen Treibernamen erfährt man aus den gleichnamigen Manualpages der Sektion 4 (meist unter /usr/X11R6/man/man4). Befinden sich mehrere Grafikkarten im System, benötigt der Server Kenntnis über deren Anordnung auf dem Bus. Mit BusID <Slot> wird die Zuordnung zwischen Grafikkarte und ihrem PCI- bzw. AGP-Steckplatz getroffen. Die korrekte Angabe für "Slot" kann mittels "X -scanpci" ermittelt werden. Der "BusID"-Eintrag kann bei Verwendung von nur einer Grafikkarte entfallen.
Für viele aktuelle Grafikkarten wurden damit schon alle erforderlichen Angaben erfasst, der Rest sollte automatisch ermittelt werden können.
Leider klappt es mit der Identifizierung der Parameter dann doch nicht immer so genau... vor allem ältere Grafikkarten halten sich mit ihren Informationen sehr bedeckt. Deswegen sollten die interessantesten Optionen kurz vorgestellt werden:
Chipset
Ramdac
Clocks
Besitzt die Grafikkarte keinen programmierbaren Clock-Generator (bestimmt die Videobandbreite), so müssen hier alle Frequenzen angegeben werden, die die Grafikkarte unterstützt. Die entsprechenden Werte finden Sie mit etwas Glück in der Datei "/usr/X11R6/lib/X11/Cards". Eventuell entlockt auch ein Aufruf von "X -probeonly" die korrekten Angaben. Wenn nicht, könnten Sie mit Werten ähnlicher Grafikkartentypen experimentieren. Allerdings sollten Sie das nur als letzte Möglichkeit in Betracht ziehen und auch nur dann, wenn noch Garantie auf die Hardware besteht. Eine Clock-Zeile schaut in etwa wie diese aus:
Clocks 25.20 28.32 40.0 30.0 50.10 77.0 36.10 45.0 |
Möchten Sie sehr viele Werte angeben, lassen sich diese auf mehrere Clock-Zeilen verteilen. Die Angabe eines Wertes macht nur Sinn, wenn in der Sektion Monitor ein entsprechender Modus existiert.
VideoRam
Eine weitere (teils wichtige) Möglichkeit ist die Angabe von speziellen Optionen, die einem Schlüsselwort "Options" folgen können. Teilweise sind diese Optionen in den Dateien des Verzeichnisses "/usr/X11R6/lib/X11/doc/" dokumentiert. Aus eigener Erfahrung kann ich nur auf "sw_cursor" verweisen, da einige Grafikkarten ohne Verwendung dieser Option den Mauszeiger nur als flimmerndes Karree projezierten.
Section "Device" Identifier "Primary-Card" VendorName "---AUTO DETECTED---" BoardName "---AUTO DETECTED---" VideoRam 8192 Option "sw_cursor" EndSection |
Für XFree86 in der Version 4 könnte eine Device-Sektion wie folgt aussehen, wobei wir die Existenz von zwei Grafikkarten (eine AGP, eine PCI) annehmen:
Section "Device" Identifier "AGP-Karte" Driver "ati" VideoRam 8192 BusID "PCI:1:0:0" EndSection Section "Device" Identifier "PCI-Karte" Driver "mga" VideoRam 4096 BusID "PCI:0:11:0" EndSection |
Die Sektion Screen |
In dieser Sektion findet die Zuordnung von Grafikkarte, Monitor und X-Server zu den unterstützen Auflösungen statt. Es ist nicht ungewöhnlich, für mehrere Konstellationen mehrere Screen-Sektionen zu verwenden.
Jede Screen-Sektion beginnt mit 3 Einträgen:
Identifier (nur in Version 4)
Driver (nur in Version 3)
Device
Monitor
Zwei weitere Optionen verdienen erwähnt zu werden. Dies ist zum einen DefaultColorDepth, das die Server anweist, mit der angegebenen Farbtiefe zu starten. Fehlt der Eintrag, ist der erste SubSection "Display"-Eintrag Ausschlag gebend. Mit BlankTime kann die Zeitspanne (in Minuten) zum Aktivieren des Bildschirmschoners eingestellt werden (wenn dieser nicht explizit gesetzt wird, erscheint ein schwarzer Bildschirm). Voreingestellt sind 10 Minuten.
Entscheidend für die Darstellung sind nun die verschiedenen SubSection "Display"... EndSubSection- Einträge. Für jede Farbtiefe (8,16, 24, 32 Bit) existiert meist eine eigene SubSection da es u.a. vom VideoRAM-Ausbau abhängt, welche Auflösung bei welcher Farbtiefe tatsächlich erzielt werden kann.
Mit Depth wird die Farbtiefe eingestellt, für die der Eintrag relevant ist. Modes enthält nun eine Liste der Auflösungen, die der X-Server unterstützen soll. Zwischen diesen kann im laufenden Betrieb mit [Ctrl][Alt][+] und [Ctrl][Alt][-] umgeschalten werden. Der X Server startet immer mit der ersten in der Liste angegebenen Auflösung, sofern es sich um eine gültige Angabe handelt. Dazu schaut der Server in der Sektion "Monitor" nach, ob ein passender ModeLine-Eintrag existiert, dessen DotClock wiederum in der "Device"-Sektion aufgeführt sein muss.
Abbildung 1: Virtuelle und physische Auflösung
Der X Server unterscheidet zwischen virtueller und physischer Auflösung. Letztere ist jene, die tatsächlich vom Bildschirm dargestellt werden kann. Mit Virtual kann eine virtuelle Auflösung eingetragen werden. Dabei wird der X Server nur einen Ausschnitt in Größe der gewählten physischen Auflösung darstellen. Und indem man mit der Maus »über« den Rand des Bildschirms hinausscrollt, wird der Ausschnitt automatisch in die vorgegebene Richtung verschoben. Ist die Angabe unter »Virtual« kleiner als der größte Wert in der Liste der Auflösungen, so wird jener Wert aus der Liste als virtuelle Auflösung genommen!
Das Beispiel zeigt die Screen-Sektion der Version 3.x; ab Version 4 tritt anstelle des Eintrags »driver« der »identifier«:
Section "Screen" Driver "SVGA" Device "Primary-Card" Monitor "Mein Monitor" DefaultColorDepth 32 SubSection "Display" Depth 32 Modes "1152x864" "1028x768" "800x600" Virtual 1152 864 EndSubSection SubSection "Display" Depth 24 Modes "1152x864" "1028x768" "800x600" Virtual 1600 1200 EndSubSection SubSection "Display" Depth 16 Modes "1600x1200" EndSubSection SubSection "Display" Depth 8 Modes "1600x1200" EndSubSection EndSection Section "Screen" Driver "Accel" Device "Primary-Card" Monitor "Mein Monitor" DefaultColorDepth 32 SubSection "Display" Depth 32 Modes "1152x864" Virtual 1152 864 EndSubSection SubSection "Display" Depth 24 Modes "640x480" EndSubSection SubSection "Display" Depth 16 Modes "1600x1200" EndSubSection SubSection "Display" Depth 8 Modes "640x480" EndSubSection EndSection |
Die Sektion XInput [3] |
Bemerkung: Diese Sektion wird ab XFree86 Version 4.0 nicht mehr unterstützt.
Die Sektion XInput wird einzig zur Unterstützung weiterer Eingabegeräte benötigt. Moderne Eingabegräte bringen ihre eigenen Treiber in Form von Modulen mit, so dass diese in der Sektion Module anzugeben sind. Wichtigstes Gerät wird wohl ein Joystick sein, der unter Linux mit folgenden Einschränkungen unterstützt wird:
Jedes Gerät wird innerhalb einer SubSection-EndSubSection-Umgebung beschrieben, für einen Joystick sind die Angaben Port, das Device, an dem der Joystick angeschlossen ist und DeviceName, der Name des X-Devices, zwingend. Die anderen Angaben überschreiben die voreingestellten Werte und werden einzig zur Feinabstimmung verwendet.
Die Sektion InputDevice [4] |
Diese Sektion ist als Ersatz der alten Sektionen "Keyboard", "Pointer" und "XInput" gedacht; wobei die beiden ersteren weiterhin unterstützt werden.
Neu hinzu kommende Schlüsselwörter sind Identifier <Eindeutiger_Name> und Driver <Treibername>. Die weiteren Einstellungen erfolgen analog zu den Angaben der "alten" Sektionen.
Eine zu den Beispielen in Keyboard und Pointer identische Konfiguration würde somit wie folgt aussehen:
Section "InputDevice" Identifier "Meine Tastatur" Driver "keyboard" Option "Protocol" "Standard" Option "XkbRules" "xfree86" Option "XkbModel" "pc104" Option "XkbLayout" "de" Option "XkbVariant" "nodeadkeys" EndSection Section "InputDevice" Identifier "Meine Maus" Driver "mouse" Option "Protocol" "Microsoft" Option "Device" "/dev/ttyS0" Option "SampleRate" 60 Option "BaudRate" 1200 EndSection |
Die Sektion VideoAdaptor [4] |
Die derzeitige Aufnahme dieser Sektion scheint in weiser Voraussicht auf die weitere Entwicklung von XFree86 geschehen zu sein. Vorgesehen ist hier die direkte Unterstützung von Videokarten (Fernsehen). Der Status der jetzigen Implementierung lässt keine Rückschlüsse auf eine mögliche Konfiguration zu, selbst auf der Homepage der XFree86-Organisation finden sich keinerlei Hinweise.
Die Sektion ServerLayout [4] |
Diese Sektion trägt der Möglichkeit von XFree86 Version 4 Rechnung, den Desktop wahlweise auf einem oder mehreren ("Multi Head Modus") Bildschirm(en) darzustellen. Die ServerLayout-Sektion verbindet eine oder mehrere Screen-Sektionen mit einer oder mehreren Input-Sektionen. Bei Verwendung nur eines Monitors, einer Tastatur und einer Maus kann sie entfallen.
Eine jede ServerLayout-Sektion kann folgende Einträge enthalten:
Identifier
Screen
Für jeden Screen, der in dieser Sektion genutzt werden soll, ist ein eigener Eintrag anzulegen. Dem Schlüsselwort »Screen« folgt der Name der Screen-Sektion, die hiermit referenziert werden soll (Identifier aus "Section Screen").
Alle weiteren Angaben sind optional.
Dem Screen-Namen kann eine Screen-Nummer (Zählung beginnt mit 0) folgen. Dies ist nur notwendig, wenn die Nummerierung von der Reihenfolge der Screen-Einträge abweicht.
Bei mehreren Screen-Zeilen kann die Positionsangabe eines Screens (Screen-Number = 0) entfallen; alle weiteren Screens erfordern die Angabe der Lage bez. dieses "Referenzscreens". Mit Absolute x y können verbindliche Koordinaten für den Screen vereinbart werden, wobei die Lage ausgehend von der linken oberen Desktopecke (0,0) beschrieben wird. Das Gegenstück ist Relative "Screen-Name" x y, das die Lage ausgehend vom mit Screen-Name benannten Eintrag kalkuliert (anstatt des Namens kann auch die Screen-Nummer angegeben werden).
Gebräuchlich sind aber die Angaben RightOf "Screen-Name", LeftOf "Screen-Name", Above "Screen-Name" und Below "Screen-Name", die für rechts, links, oberhalb bzw. unterhalb des benannten Screens stehen.
InputDevice
Mit diesen Zeilen werden die Eingabegeräte der jeweiligen Screen-Sektion zugeordnet. Zumindest die Einträge für Tastatur und Maus sollten nicht fehlen.
Dem Schlüsselwort InputDevice muss der Name der zugeordneten InputDevice-Sektion folgen (der dortige Identifier). Werden mehrere Eingabegeräte vom selben Typ zugeordnet, sollte eines als "Haupteingabegerät" gekennzeichnet werden, indem im Falle einer Tastatur als dritter Eintrag der Zeile CoreKeyboard und bei einer Maus CorePointer folgt. Ohne diese Angaben werden implizit die jeweils ersten Einträge des Typs als Haupteingabegerät angenommen.
Soll bspw. eine zweite Maus gleichzeitig benutzt werden, steht SendCoreEvents an Stelle des dritten Parameters. Sie löst dieselben Aktionen aus, wie die "default"-Maus.
Options
Das abschließende Beispiel definiert zwei ServerLayout-Sektionen; die erste für einen Monitor und eine zweite für zwei Bildschirme. Bei Start des Servers, wird dieser immer die zuerst angegebene Sektion wählen, es sei denn, er wird mit der Option "-layout Layout_Identifier" aufgerufen.
Section "ServerLayout" Identifier "Einer alleine" Screen "Dieser Screen" InputDevice "Meine Maus" "CorePointer" InputDevice "Meine Tastatur" "CoreKeyboard" EndSection Section "ServerLayout" Identifier "Zwei gemeinsam" Screen "Dieser Screen" Screen "Jener Screen" RightOf "Dieser Screen" InputDevice "Meine Maus" "CorePointer" InputDevice "Meine Tastatur" "CoreKeyboard" EndSection |
Anmerkung: In der "Section Screen" müssen die Sektionen unter den Namen "Dieser Screen" und "Jener Screen" existieren (entspricht dem dortigen Identifier); das Gleiche gilt für "Meine Maus" und "Meine Tastatur", die in der "Section InputDevice" spezifiziert sein sollten.
Die Sektion DRI [4] |
Die Sektion dient der Regulierung des Zugangs zur 3D-Hardware-Unterstützung. Vorraussetzung ist natürlich, dass Ihre Grafikkarte über die entsprechenden Fähigkeiten verfügt und X diese Karte vollends unterstützt. In der Datei "/usr/X11R6/lib/X11/doc/README.DRI" finden Sie eine Auflistung der von Ihrer X-Version verwendbaren Karten.
Die Schlüsselworte der Sektion sind Mode <Rechte> und Group <Gruppe>. Letztere Angabe ist optional; entfällt sie, gelten die Rechte für alle Benutzer.
Die Angabe der Rechte geschieht analog zu den Datei-Zugriffsrechten. Um also alle Benutzer am 3D-Genuss teilhaben zu lassen, genügt eine einfache Sektion:
Section "DRI" Mode 0666 EndSection |
Den Zugang auf Gruppenbasis zu ermöglichen, erfolgt analog; sinnvoll erscheint, die berechtigten Benutzer in eine neue Gruppe aufzunehmen:
Section "DRI" Group "group3d" Mode 0660 EndSection |
Die Sektion Vendor [4] |
Diese Sektion ist für herstellerspezifische Erweiterungen vorgesehen. Es bleibt abzuwarten, ob sich auch für XFree86 Version 4 kommerzielle Server-Implementierungen einstellen werden.