Beschreibung: Prüfungskandidaten sollten in der Lage sein, X und einen X-Fontserver zu installieren und zu konfigurieren. Dieses Lernziel beinhaltet die Überprüfung, ob Grafikkarte und Monitor von einem X-Server unterstützt werden, und das Anpassen und Trimmen von X für Grafikkarte und Monitor. Ebenfalls enthalten ist die Installation eines X-Fontservers, die Installation von Schriftarten und das Konfigurieren von X zur Benutzung des Fontservers (möglicherweise durch manuelles Bearbeiten des Abschnitts "Files" in /etc/X11/XF86Config).
Die wichtigsten Dateien, Bezeichnungen und Anwendungen:
Dabei ist wichtig, daß es möglich ist, daß Client und Server über ein Netzwerk miteinander kommunizieren können. Es ist also unerheblich, ob die Programme, die auf einem Bildschirm dargestellt werden auf dem lokalen Rechner laufen oder auf einem anderen Rechner im Netz.
Client und Server verständigen sich mittels einem Protokoll, dem sogenannten X-Protokoll. Dieses Protokoll nutzt als Transportbasis meist TCP/IP, aber auch DECNet oder der Betrieb auf reinen Unix-Sockets ist möglich. Technisch gesehen ist das X-Protokoll die eigentliche Definition des X-Window-System.
Durch die Definition eines eindeutigen Protokolls, das alle Fähigkeiten zur Übermittlung von graphischen Ausgaben beinhaltet wird X11 zur hardwareunabhängigen Graphikplattform. Das X11-System ist aufgegliedert in einen Displayserver und in Programme, die den Display-Service in Anspruch nehmen, also Clients. Ein Server kann für jede beliebige Art von Graphiksystemen geschrieben werden, über das vordefinierte X-Protokoll können beliebige Clients dann ihre Ausgaben auf dem Server machen.
Natürlich können Clients (also X11-Programme) auch lokal auf dem selben Rechner laufen, auf dem auch der Display-Server läuft, das ist sogar die Regel. Aber es können eben auch beliebige andere Rechner Programme laufen haben, deren Ausgaben dann auf unserem Server zu sehen sind.
Zusammenfassend können wir also sagen, das X11-System beruht auf drei Einzelelementen:
Bei der hier gestellten Aufgabe geht es also um die Installation eines X-Servers, also des Programms, das anderen Programmen (den X-Clients) den Dienst anbietet, sich auf dem Bildschirm darstellen zu können und die Eingabegeräte Tastatur und Mouse zu nutzen. Beim Umgang mit X11 ist es grundsätzlich wichtig, sich dieser Client-Server-Architektur immer bewußt zu sein, um tatsächlich zu verstehen, was eigentlich vorgeht.
Es gibt X-Server von verschiedensten Herstellern für verschiedenste Hard- und Softwaresysteme. Der hier verwendete X-Server ist der X-Free-86 Server. Dieser Server ist freie Software und für die Verwendung auf 80x86 Systemen (und kompatiblen Prozessoren) gedacht. Aus diesen Eigenschaften bezog er seinen Namen. XF86 ist der unter Linux verbreitetste Server, andere angebotene Server sind meist kommerzielle Produkte und spielen in der Praxis kaum eine Rolle.
Die gesamten Angaben über diese Geräte und auch alle anderen Konfigurationseinstellungen befinden sich in einer einzigen Datei. Diese Datei kann manuell bearbeitet werden, es ist eine einfache Textdatei. Sie heißt XF86Config und befindet sich in der Regel im Verzeichnis /etc/X11. Die Orginalversion von XF86 hatte eigentlich andere Orte für die Konfigurationsdatei vorgesehen, aber im neuen Filesystem Hierarchy Standard ist /etc/X11 festgelegt worden. Die meisten Distributionen halten sich heute an diesen Standard. Der Vollständigkeit halber seien hier nochmal die ursprünglichen Konfigurationsdateien genannt:
Noch heute funktionieren diese Dateien, werden aber kaum noch benutzt.
Weil heute zwei XFree86 Versionen im Umlauf sind (Version 3.x und Version 4.x) und die beiden unterschiedliche Formate ihrer Konfigurationsdatei erwarten, haben verschiedene Distributionen unterschiedliche Mechanismen entwickelt, um einen gleichzeitigen Betrieb beider Versionen zu ermöglichen. Entweder liegen beide Konfigurationsdateien in /etc/X11, dann trägt die Datei für die Version 4.x den Namen XF86Config-4, oder es wurde die Konfigurationsdatei für Version 3.x in /etc belassen und die von Version 4.x liegt in /etc/X11. Im weiteren Verlauf werden wir hier keine Unterschiede machen, sondern die Datei einfach immer /etc/X11/XF86Config nennen.
Früher musste die Konfigurationsdatei von Hand erstellt werden und es bestand die Gefahr, daß - bei falschen Monitor-Einstellungen - die Hardware tatsächlich beschädigt werden konnte. Die Errechnung der Bildschirmparameter war eine umständliche und schwierige Arbeit, die nicht immer das erreicht hatte, was gewünscht war. Durch die Architektur moderner Graphikkarten und Monitore ist diese Konfigurationsarbeit heute erheblich erleichtert worden. Zudem gibt es eine ganze Reihe von Hilfsmitteln, um die Konfigurationsdatei erstellen zu lassen.
dpkg-reconfigure xserver-xfree86verwendet. dexconf wird dann abschließend automatisch aufgerufen.
Als distributionsunabhängige Zertifizierung genügt für LPI das Wissen um die ersten beiden Programme, alle anderen sind spezielle Lösungen der Distributionen. All diese Programme erledigen die selben Aufgaben (auf unterschiedliche Weise), die hier nochmal genauer dargestellt werden sollen. Im Wesentlichen handelt es sich um zwei Aufgaben:
Beide Aufgaben werden jetzt nochmal im Einzelnen besprochen:
Neben der Angabe der Monitordaten werden von den Konfigurationsdateien auch noch die gewünschten Bildschirm-Auflösungen und Farbtiefen erfragt. Es können mehrere angegeben werden, die dann später im laufenden Betrieb umgeschaltet werden können.
Neben diesen Hardware-Angaben werden eventuell noch verschiedene Pfade abgefragt, die zu weiteren Informationen führen. Diese Pfade werden später noch einer genaueren Betrachtung unterworfen. Für die Konfiguration reicht hier die Übernahme der Vorgaben.
In den XFree86 Versionen vor 4.0 gab es nicht nur einen, sondern sehr viele unterschiedliche X-Server. Jeder Server war für eine bestimmte Graphikkarte (oder eine Klasse von Karten) zuständig. Typische Beispiele dieser Server waren XF86_Mach64, XF86_VGA16, XF86_SVGA oder XF86_S3. Damit das jeweils verwendete Startprogramm auch den richtigen Server startet, ist das Programm /usr/X11R6/bin/X nur ein symbolischer Link auf den entsprechenden Server. Genauer gesagt ist X ein Link auf /var/X11R6/bin/X und das ist wiederum ein Link auf den entsprechenden X-Server. Der Grund für diese doppelte Verlinkung ist, daß ansonsten bei einem ReadOnly gemounteten /usr-Verzeichnis keine Änderungen möglich wären. Die Verlinkung bei XFree86 Version 3.x sieht also folgendermaßen aus:
/usr/X11R6/bin/X => /var/X11R6/bin/X => /usr/X11R6/bin/XF86_ServertypDiese Links werden auch vom jeweils verwendeten Konfigurationsprogramm angelegt.
Ab der Version 4.0 von XFree86 hat sich diese Architektur geändert. Es war einfach zu viel Aufwand, für jede Graphikkarte einen eigenen X-Server zu schreiben. Aus diesem Grund wurde ein modularisierter X-Server erstellt, der die kartenabhängigen Informationen als Modul nachläd. Der eigentliche X-Server heißt jetzt /usr/X11R6/bin/XFree86. Trotzdem existiert meist immer noch der Link von /usr/X11R6/bin/X auf /usr/X11R6/bin/XFree86. Nur bei Debian ist /usr/X11R6/bin/X ein kleines Ladeprogramm, das dann aber auch /usr/X11R6/bin/XFree86 läd.
Falls die Bildschirmeinstellungen nicht zufriedenstellend sind, gibt es zwei Möglichkeiten, daran noch etwas zu verändern. Entweder der Monitor wird mittels seiner Hardwarekonfiguration (Monitormenü oder Drehknöpfe) an die Konfiguration angepasst, oder die Konfiguration wird im Nachhinein noch verändert. Dazu steht uns das Programm xvidtune zur Verfügung.
Mit Hilfe dieses Programms können die Bildschirmeinstellungen ähnlich verändert werden, wie mit dem Menü des Monitors selbst. Im Unterschied dazu wird xvidtune aber die Einstellungen in der XF86Config Datei verändern, statt sie hardwareseitig einzustellen.
Mögliche Einstellungen sind:
Die beste Methode ist es, die Bildschirmeinstellungen mit xvidtune soweit wie möglich einzustellen, und dann anschließend das Feintuning mit der Monitoreinstellung vorzunehmen.
Wichtige Einstellungen für die LPI101 Prüfung beziehen sich nur auf einen Abschnitt, den Abschnitt Files. Dieser Abschnitt ist in beiden Versionen vorhanden.
Die weiteren Abschnitte bezeichnen die jeweiligen Konfigurationen der verschiedenen Hardware und Bildschirmauflösungen. Der Vollständigkeit halber seien sie hier kurz aufgezählt:
Optional können noch weitere Abschnitte enthalten sein, die sich auf Extras wie 3D-Beschleuniger (DRI) oder ähnliches beziehen.
Nachdem sowohl der ModulPath, als auch der RgpPath sehr statisch sind, werden wir an diesen beiden Einstellungen eigentlich niemals Veränderungen vornehmen müssen. Die einzigen Einstellungen, die wir tatsächlich verwalten und verändern müssen sind die Pfade zu den Schriftverzeichnissen.
Auf einem X-Server sind normalerweise mehrere Verzeichnisse mit Schriften installiert. Wir können diese Verzeichnisse entweder in einem Eintrag durch Kommas getrennt hintereinanderhängen, oder - was sicherlich zu einer besseren lesbarkeit führt - für jedes Verzeichnis einen eigenen Eintrag vornehmen. Also entweder
FontPath="/usr/X11R6/lib/X11/fonts/local/","/usr/X11R6/lib/X11/fonts/misc/"oder
FontPath "/usr/X11R6/lib/X11/fonts/local/" FontPath "/usr/X11R6/lib/X11/fonts/misc/"In modernen Versionen wird nur noch die zweite Variante benutzt. Jede der Pfadangaben bezieht sich auf ein Verzeichnis, das Schriftdateien enthält. Die Reihenfolge dieser Angaben ist nicht unwichtig, weil der Server auf der Suche nach einer Schrift immer die Pfade in der angegebenen Reihenfolge durchsucht. Die erste gefundene Schrift, die den Anforderungen der Suche entspricht, wird verwendet. Wenn beispielsweise sowohl TrueType, als auch klassische X11-Schriften installiert sind, und es dabei zu einer Namensüberschneidung kommt (beispielsweise Times und Helvetica), dann kommt es darauf an, ob das Verzeichnis mit den TrueType Schriften vor oder nach dem mit den klassischen Schriften hier angegeben wurde.
Eine Veränderung der Datei XF86Config wird erst wirksam, wenn der X-Server neu gestartet wird. Es gibt aber zumindestens für FontPath-Änderungen auch die Möglichkeit, die neuen Einträge manuell zu aktivieren oder zu deaktivieren. Dazu wird das Programm xset benutzt:
xset +fp neuer_Pfad xset fp+neuer_Pfadfügen einen angegebenen neuen Pfad zum FontPath hinzu,
xset -fp Pfad xset fp-Pfadentfernen den angegebenen Pfad aus dem FontPath.
Schriftnamen haben eine etwas gewöhnungsbedürftige Form, hier einmal ein Beispiel, an dem die einzelnen Elemente des Namens erklärt sind.
Hersteller Gewicht Breite Pixels XAufl Sp Zeichensatz | | | | | | | -b&h-lucida-medium-r-normal-sans-18-180-75-75-p-106-iso8859-1 | | | | | | | Schriftart Neigung Stil Punkte YAufl Durchschn. Optionen des Zeichen- Zeichensatzes breiteDabei bedeuten im Einzelnen:
Verzeichnisse, die Schriften für X11 enthalten, enthalten neben den eigentlichen Schriftdateien (Endungen .bdf .snf .pcf .spd .fb .ps .ttf) noch die folgenden Dateien:
courBO10.snf -adobe-courier-bold-o-normal--10-100-75-75-m-60-iso8859-1Damit diese Datei immer auf dem neuesten Stand ist, muß nach jeder Neuinstallation von Schriftdateien in einem Verzeichnis in diesem Verzeichnis das Programm mkfontdir aufgerufen werden. Alternativ kann auch der Name des Verzeichnisses dessen fonts.dir Datei neu erstellt werden soll, als Parameter von mkfontdir angegeben werden.
school15 -adobe-new century schoolbook-bold-r-normal-*-15-150-75-*-*-105-iso8859-1die Schrift -adobe-new ... schlicht mit school15 angesprochen werden. Dieser Mechanismus hat aber Vor- und Nachteile. Es ist zwar so für einen User einfacher, eine Schrift auszuwählen, es kann aber bei einer Anwendung, die auf verschiedenen Rechnern läuft fatal sein, wenn es die Schrift bzw. eben das Alibi auf einem anderen Rechner nicht gibt.
Wenn ein neues Verzeichnis mit Schriften also hinzugefügt wird, indem es beispielsweise neu erstellt und mit Schriftdateien aus dem Internet gefüllt wird, so sind folgende Schritte nötig, damit die Schriften benutzbar werden.
Ab diesem Zeitpunkt sind die Schriften auf dem X-Server verfügbar.
Ein weiterer Vorteil dieser Technik ist es, daß ein Unternehmen bestimmte Schriften für seine Präsentationen benutzen kann und zentral festlegen kann, daß alle X-Server die selben Schriften benutzen.
Für die Ansprüche der LPI101 Prüfung muß sowohl ein Fontserver eingerichtet werden können, als auch ein X-Server an einen Fontserver angebunden werden, so daß er die vom Server angebotenen Schriften nutzen kann.
Wie so oft bei Linux/Unix-Servern besitzt xfs eine einzige Konfigurationsdatei, in der die gesamte Konfiguration des Servers erledigt wird. Diese Konfigurationsdatei liegt standardmäßig unter /usr/X11R6/lib/X11/fs/config. Da diese Plazierung dem neuen Dateisystem-Standard widerspricht, kann alternativ dazu dem xfs per Kommandozeilenoption eine andere Datei mitgeteilt werden, die er als Konfigurationsdatei nutzt. In modernen Versionen von Linux wird meist /etc/X11/xfs.conf oder /etc/X11/fs/config benutzt.
Der Fontserver muß die Schriftdateien in Verzeichnissen ablegen, die exakt den oben genannten Ansprüchen der Schriftverzeichnisse eines normalen X-Servers entsprechen. Er kann jetzt diese Verzeichnisse an andere X-Server weitergeben, ohne daß dabei zusätzlicher Verwaltungsaufwand entsteht.
Eine einfache Konfigurationsdatei eines Fontservers könnte folgendermaßen aussehen:
# Erlaubt maximal 10 Clients, die sich mit diesem Fontserver verbinden client-limit = 10 # # Wenn ein Fontserver die maximale Anzahl Clients erreicht hat, # startet er einen neuen um weitere Clients bedienen zu können clone-self = on # # Angabe der Schriftverzeichnisse # catalogue = /usr/local/fonts/tr_misc/, /usr/local/fonts/tr_75dpi/, /usr/local/fonts/freefont/, /usr/local/fonts/sharefont/, /usr/local/fonts/Adobe/, /usr/X11R6/lib/X11/fonts/misc:unscaled, /usr/X11R6/lib/X11/fonts/75dpi:unscaled, /usr/X11R6/lib/X11/fonts/100dpi:unscaled, /usr/X11R6/lib/X11/fonts/Type1, /usr/X11R6/lib/X11/fonts/Speedo, /usr/X11R6/lib/X11/fonts/misc, /usr/X11R6/lib/X11/fonts/75dpi # Voreingestellte Schriftgröße ist 12 Punkte (120 Dezipunkte) default-point-size = 120 # 100 x 100 und 75 x 75 Auflösung default-resolutions = 100,100,75,75 # Keine Meldungen an den Syslogdaemon use-syslog = offDie Kommentare in der Datei erklären die jeweiligen Zeilen ausreichend. Wenn diese Datei jetzt als /etc/X11/fs/config abgespeichert wird, dann lautet der Aufruf des XFontServers:
xfs -config /etc/X11/fs/config -daemonDiese Zeile sollte jetzt aus einem init-Script heraus aufgerufen werden. Nachdem sie ausgeführt wurde, ist der Fontserver aktiv und hört auf den TCP-Port 7100.
Soll einem laufenden Fontserver ein neues Schriftverzeichnis hinzugefügt werden, so muß es in die Konfigurationsdatei eingefügt werden und danach dem xfs-Prozeß ein HUP-Signal geschickt werden. Das zwingt ihn, seine Konfigurationsdatei neu einzulesen und sich entsprechend zu verhalten.
FontPath "TCP/marvin:7100"in die Section "Files" aufnehmen und nach einem Neustart des X-Servers (nicht des Rechners) stehen die Schriften des Font-Servers zur Verfügung. Auch hier spielt die Reihenfolge der Angaben eine Rolle. Der FontPath wird von vorne nach hinten (oben nach unten) durchgearbeitet und die erste passende Schrift wird gewählt. Steht also der Font-Server Eintrag am Anfang des FontPath, so werden wahrscheinlich niemals lokale Schriften benutzt (es sei denn es gibt lokale Schriften, die der FontServer nicht anbietet), steht er am Ende, werden immer lokale Schriften verwendet, außer es gibt eine bestimmte Schrift nicht lokal, dann wird der Font-Server herangezogen.