Teil IV Das X Window System 235 Kapitel 8 Das X Window System Das X Window System stellt unter Unix einen Quasi-Standard für graphische Benutzeroberflächen dar. Aber das X Window System ist weit mehr, X11 ist ein netzwerkbasiertes System. Anwendungen, die auf Rechner erde laufen, können ihre Ausgaben auf Rechner sonne darstellen, sofern die Rechner durch ein Netzwerk verbunden sind. Dieses Netz kann ein LAN sein, die Rechner können aber auch tausende Kilometer voneinander entfernt stehen und über das Internet miteinander kommunizieren. X11 entstand als Gemeinschaftsproduktion von DEC (Digital Equipment Corporation) und dem Projekt Athena am MIT (Massachusetts Institute of Technology). Die erste Version (X11R1) wurde im September 1987 freige- geben. Seit Release 6 hat das X Consortium, Inc., ab 1996 The Open Group die Entwicklung des X Window Systems übernommen. XFree86 TM ist eine frei verfügbare Implementierung von X-Servern für PC- Unix-Systeme (vgl. http://www.XFree86.org). XFree86 wurde und wird auch weiterhin ­ verstreut über die ganze Welt ­ von Programmierern entwickelt, die sich 1992 zum XFree86-Team zusammengeschlossen haben. Daraus entstand die 1994 gegründete Firma The XFree86 Project, Inc., deren Ziel es ist, XFree86 TM einer breiten Öffentlichkeit zur Verfügung zu stellen und sowohl forschend als auch entwickelnd an der Zukunft des X Window System mitzuarbeiten. An dieser Stelle sei dem XFree86-Team auch für die gute Zusammenarbeit und für das zur Verfügung-Stellen von Beta-Versionen gedankt, ohne die die- ses Dokument1 und die vorliegende CD sicher nicht in dieser Form möglich gewesen wären. Die folgenden Abschnitte behandeln die Konfiguration des X-Servers ­ ein in früheren Zeiten sehr heikles Kapitel. Zu diesem Zweck werden die Program- me SaX (sax)2 und xf86config besprochen, mit denen eine einfache Kon- figuration des X Window System möglich ist. Im Gegensatz zu xf86config arbeitet SaX direkt mit dem X-Server zusammen und ist mit der Maus be- dienbar. Installieren Sie also am besten mit YaST das Programm SaX (Paket sax, Serie x) und die abhängigen Pakete, insbesondere das Paket xvga16 sowie ­ falls bereits bekannt ­ den zu Ihrer Grafikkarte passenden X-Server; 1 Teile dieser Beschreibung des X11-Systems wurden dem Kapitel XFree86 Konfigurieren aus [HHMK96] entlehnt, das uns von Dirk Hohndel freundlicherweise zur Verfügung gestellt wurde. 2 SaX (engl. SuSE Advanced X Configuration Tool) macht XF86Setup (Paket xfsetup, Serie x) obsolet. 237 8. Das X Window System die X-Server sind in der Serie xsrv verzeichnet (vgl. Abschnitt 3.4.3 auf Seite 94). Sollten Sie es versäumt haben, einen Server auszuwählen, so wird SaX dies feststellen und via YaST einen geeigneten Server nachinstallieren lassen. Um die zur Verfügung stehende Hardware (Grafikkarte, Monitor, Tastatur) optimal nutzen zu können, besteht die Möglichkeit, die Konfiguration ma- nuell zu optimieren. Auf einige Aspekte der Optimierung wird eingegangen, andere werden nicht gesondert behandelt. Detaillierte Information zur Kon- figuration des X Window System findet sich in verschiedenen Dateien im Verzeichnis /usr/doc/packages/xf86 sowie natürlich in der Manual- Page von XF86Config (man XF86Config). Bei der Konfiguration des X Window Systems sollte besonders sorgsam vorgegangen werden! Auf keinen Fall sollte X gestartet werden, bevor die Konfiguration abgeschlossen wurde. Ein falsch eingestelltes System kann zu irreparablen Schäden an der Hardware führen; besonders gefährdet sind Festfrequenz-Monitore. Die Autoren dieses Buches und die SuSE GmbH lehnen jede Verantwor- tung für eventuell entstandene Schäden ab. Der vorliegende Text wurde mit größtmöglicher Sorgfalt erstellt. Dennoch kann nicht davon ausgegan- gen werden, dass die hier vorgestellten Methoden korrekt sind und Ihrer Hardware keinen Schaden zufügen. 8.1 Konfiguration mit SaX Das Programm SaX (engl. SuSE Advanced X Configuration Tool) dient der einfachen Installation des X Window System. Es ist vollständig mit der Maus oder der Tastatur schon auf der grafischen Oberfläche zu bedienen. Von ei- nigen Spezialfällen abgesehen, z. B. sehr aktuelle oder sehr alte Hardware, kann es die verwendeten Komponenten selbst erkennen, sodass das Aufset- zen eines X-Servers einfach von der Hand geht. 8.1.1 Erstinstallation Zur erstmaligen Installation des X Window System ­ der grafischen Benutzer- Oberfläche eines jeden Linux-Systems ­ müssen einige Rechnerdaten be- kannt sein: * Der verwendete Monitor (Produktname). * Der Tastaturtyp. * Der Maustyp und die Schnittstelle, an der sie angeschlossen ist. * Der Hersteller und der Name der Grafikkarte. Sie müssen das Programm SaX (sax) als Benutzer `root' starten. Sie können SaX auch von YaST aus starten: `Administration des Systems' und weiter mit `XFree86[tm] konfigurieren' (vgl. Abschnitt 3.6 auf Seite 100). Auf der Kommandozeile wird das Programm aufgerufen mit: 238 8.1. Konfiguration mit SaX erde:/root # sax Sobald das Programm gestartet ist, wird zunächst nach installierten PCI- Steckkarten gesucht. Wenn eine PCI-Grafikkarte gefunden wurde, wird diese identifiziert und im Programm unter `Graphikkarte' angezeigt. Nach dem PCI-Scan wird das Hauptfenster geöffnet, in dem die Karteikar- ten für die Maus (`Maus'), die Tastatur (`Tastatur'), die Grafikkarte (`Grafikkarte'), den Monitor (`Monitor') und die Bildschirmober- fläche (`Bildschirm') dargestellt werden. Sodann lädt SaX aus einer mitgelieferten Datenbank zahlreiche Hardware-Informationen, aus denen im Folgenden die eigenen Komponenten ausgewählt werden können. Die bei der Überprüfung des Systems gefundenen Daten werden unter den jeweili- gen Punkten dargestellt; so finden Sie z. B. Ihren Grafikkartentyp unter der Karteikarte `Graphikkarte'. SaX versucht zwar, Ihre Hardware möglichst vollständig zu erkennen; um aber sicher zu gehen, dass die Konfiguration vollständig und richtig ist, müs- sen Sie auf jeden Fall alle Einstellungen des SaX überprüfen, und gegebe- nenfalls korrigieren! Das Programm stellt Ihnen dazu im Wesentlichen fünf Karteikarten" zur Verfügung, nämlich `Maus', `Tastatur', `Graphikkarte', `Mo- nitor' und `Bildschirm'. Alle Karten sind mit einem Einfachklick auf den entsprechenden Titel ( Reiter" der jeweiligen Karte) zu erreichen. Für den Fall, dass Ihre Maus noch nicht richtig konfiguriert ist, haben Sie alternativ die Möglichkeit, das Programm mit der Tastatur zu steuern. Durch mehrmaliges Drücken der Tab -Taste (= Tab ) können Sie die Einzelnen Ein- gabefelder einer Karteikarte anzusteuern. Um die verschiedenen Karteikarten zu erreichen, drücken Sie solange Tab , bis der Titel der aktuellen Karteikar- te schwarz umrahmt ist; dann können Sie mit bzw. die gewünschte Karteikarte auswählen. Nach dem Bestätigen mit (= Enter ) wird die- se angezeigt. Auf jeder Karteikarte befinden sich mehrere Bedienelemente, wie z. B. Schaltflächen (engl. buttons), Auswahllisten (engl. listboxes) und Eingabefelder (engl. entry fields). Auch diese lassen sich vollständig über die Tastatur manipulieren. Um einen Button zu erreichen (z. B. `Anwenden'), drücken Sie solange Tab , bis dieser gewünschte Button schwarz umrahmt ist. Mit der oder der wird der Button dann niedergedrückt und die gewünschte Aktion ausgelöst. Mit F10 gelangen Sie in die Menüliste am oberen Rand. Um einen Eintrag in einer Listbox zu selektieren, drücken Sie solange die Taste Tab , bis die betreffende Box umrahmt ist. Mit und können Sie durch die farbige Markierung einen Eintrag aussuchen, der dann durch Druck auf Enter gesetzt, d. h. aktiv wird. Die Maus Die Karteikarte `Maus' ist nach dem Start des Programms als erste zu sehen (Abbildung 8.1 auf der nächsten Seite). Wenn Sie Ihre Maus im Laufe der Linux-Erstinstallation schon konfiguriert haben, z. B. beim Einrichten von gpm, werden diese Daten von SaX über- nommen, und Ihre Maus steht Ihnen sofort auch unter dem X Window System 239 8. Das X Window System Abbildung 8.1: SaX: Mauseinstellungen zur Verfügung. ­ Sie können in diesem Fall mit der weiteren Konfiguration fortfahren. Falls Sie jedoch Ihre Maus nicht konfiguriert haben, ist dies jetzt nachzuho- len. Drücken Sie zweimal Tab , und wählen Sie die passende Maus unter `Hersteller' aus (mit und können Sie die Liste durchgehen); mit Enter wird der von Ihnen markierte Hersteller als Einstellung festgesetzt. Gehen Sie mit Tab in die Auswahlliste `Modell' und wählen Sie den richtigen Maustyp. ­ Durch Druck auf die `Anwenden'-Taste können Sie überprüfen, ob Ihre Auswahl richtig war. Danach sollte sich der Mauszeiger bewegen lassen. Falls Sie nicht genau wissen, welchen Maustyp Sie haben oder falls Ihre Maus nicht aufgeführt wird und bei einer seriellen Maus `Microsoft' mit der Type `Standard Mouse' es nicht tut, wählen Sie das Untermenü `Erweitert' an, um direkt ein Maus-Protokoll festzulegen. Dort lassen sich zudem weitergehende Optionen konfigurieren, z. B. die Baudrate und die 3-Tasten-Emulation". Über `Erweitert' stehen im Einzelnen die folgenden Karten zur Verfügung: `Treiber': Im Falle eines unbekannten Herstellers kann hier das Maus- `Protokoll' direkt festgelegt werden. Auch ist die Gerätedatei (engl. device) auszuwählen. Für eine Busmouse sollten Sie die entsprechende PS/2-Variante ausprobieren. `Eigenschaften': Fein-Einstellungen festlegen, wie schnell die Maus ansprechen soll. `Optionen': 3 Tasten emulieren etc. `Test': Im unteren Teil der symbolischen Maus im Rahmen `Test- feld' können Sie die Mauskonfiguration überprüfen (Abbildung 8.2 auf der nächsten Seite). Wenn die Maus richtig eingerichtet ist, blinken beim 240 8.1. Konfiguration mit SaX Abbildung 8.2: SaX: Erweiterte Mauseinstellungen Klicken der Maustasten blinken die Maustasten-Symbole auf dem Bild- schirm. Die Tastatur Als Tastatur ist standardmäßig ein Windows 95/98-Keyboard mit der Tasta- turbelegung Deutsch eingetragen (Abbildung 8.3). Sollten Sie eine andere Tastatur haben, müssen Sie hier die richtigen Einstellungen vornehmen; denn das Keyboard ist eine der wenigen Hardwarekomponenten, die nicht selbstän- dig erkannt werden. Durch Vergleichen Ihrer Tastatur mit dem am Bildschirm angezeigten `Ta- staturabbild' können Sie leicht das für Sie passende Modell unter `Modell' einstellen. Vergessen Sie auch nicht, als `Sprache' German einzustellen, falls dies nicht sowieso der Fall ist. Neben dem Button `Lö- schen' gibt es ein Testfeld, in welchem Sie die getroffene Tastatureinstel- lung durch Tippen von verschiedenen Buchstaben und Zeichen überprüfen können ­ vergessen Sie die Umlaute nicht! Der Schalter `"Tote" Tasten verlegen' dient bei deutschen Tasta- turen dazu, dass alle Zeichen auf der Tastatur ­ auch z. B. die Tilde ­ unter X durch einfaches Drücken sofort dargestellt werden. Einstellungen in `Erweitert' benötigen Sie wahrscheinlich nicht ... Durch den `Anwenden'-Knopf werden auch hier die Änderungen wirksam. Die Grafikkarte Auf der `Graphikkarte'-Karteikarte können in der linken Auswahllis- te der Hersteller und in der rechten Liste das jeweilige Kartenmodell selek- tiert werden (Abbildung 8.4). SaX versucht, die Grafikkarte selbständig zu 241 8. Das X Window System Abbildung 8.3: SaX: Tastatur erkennen, was für PCI-Grafikkarten im Allgemeinen sehr zuverlässig funk- tioniert. Das Utility greift dabei auf eine umfangreiche Datenbank aktueller Grafikhardware zurück; vgl. das Paket cdb (engl. Component Data Base). Die gefundene Hardware wird farbig hervorgehoben. Abbildung 8.4: SaX: Grafikkarte Unter dem Knopf `Erweitert' verbergen sich fortgeschrittene Einstell- optionen (Abbildung 8.5 auf der nächsten Seite). Diese kommen zum Zuge, wenn Sie den X-Server direkt auswählen (`Server-Einstellungen'), die Größe des Speichers auf der Grafikkarte den Ramdac-Wert spezifizieren bzw. einen speziellen Ramdac- oder Clock-Chip (unter `Chipsätze') für 242 8.1. Konfiguration mit SaX Ihre Grafikkarte selbst einstellen wollen. Setzen Sie den Ramdac-Wert ins- besondere dann etwas herunter, wenn es zu Fehldarstellungen bei Fenster- Operationen kommt, z. B. wenn beim Verschieben eines Fensters Fragmente der Titelzeile kurzzeitig aufblinken. Abbildung 8.5: SaX: Grafikkarte ­ Erweiterte Möglichkeiten Manche Grafikkarten benötigen besondere `Optionen', die hier im erwei- terten Menü ihren Platz gefunden haben; für einen Standardfall wird dieser Punkt nicht benötigt. ISA-Karten werden nicht automagisch" erkannt; für diese muss vom Be- nutzer der passende Server von Hand" ausgewählt werden. Falls Sie bei der Auswahl Ihrer Grafikkarte die Fehlermeldung "The SVGA server is not installed..." lesen, so müssen Sie mit YaST das in der Fehlermeldung angegebene Paket nachinstallieren (vgl. Abschnitt 3.4 auf Seite 93). Der Monitor Die letzte große Hürde auf dem Weg zu einem laufenden X-Server ist noch die Einstellung des verwendeten Monitors. Auch hier lässt sich aus der linken der beiden Listen auf der Karteikarte `Monitor' der `Hersteller' des Monitors auswählen. Durch einen weiteren Mausklick ist es möglich, das ei- gene Modell aus der rechten Liste (`Type') auszuwählen. Sollte der eigene Monitor wider Erwarten nicht in der Liste zu finden sein, können durch den Druck auf den `Erweitert'-Knopf monitorspezifische Horizontal- und Vertikalfrequenzen eingegeben werden. Diese stehen gewöhnlich in Ihrem Handbuch zum Monitor. Falls Ihnen keinerlei Daten über den Monitor bekannt sind, stellt SaX standardmäßig die Horizontalfrequenzen von 29-61 kHz und die Vertikalfre- quenzen von 60-70 Hz ein. Diese sind für die meisten Monitore unschädlich. Falls jedoch beim Starten des X-Servers das Bild dunkel bleibt, oder sehr stark flimmert, sollten Sie den Server mit Strg + Alt + - sofort wieder 243 8. Das X Window System beenden; mit - ist die Rücklöschtaste" gemeint! Andernfalls kann der Monitor beschädigt oder zerstört werden! Der Bildschirm Wenn Sie mit der Installation Ihrer Grafikkarte Erfolg gehabt haben, stehen Ihnen eine Vielzahl von Auflösungen und Farbtiefen zur Verfügung, die im `Bildschirm'-Menü verwaltet werden können (Abbildung 8.6). ­ Die `Bildschirm'-Karte erinnert im Layout eventuell an andere Betriebssys- teme ;-) Abbildung 8.6: SaX: Bildschirm Auf der `Arbeitsoberfläche' können Sie zu jeder Farbtiefe (`Far- ben') eine Auflösung (`Auflösungen') auswählen. Wenn Sie eine Liste mehrerer Auflösungen für eine bestimmte Farbtiefe ein- stellen wollen, können Sie dies im Experten-Modus (`Erweitert', Abbil- dung 8.7) tun: `Auflösung': Diese Karte untergliedert sich in die Bereiche: `Mögliche' Auflösungen. `Aktuelle' Auflösungen. `Farben' Die Auswahlliste mit den Farbtiefen. Auf der vertikalen Knopfreihe an der rechten Seite soll zunächst die Farb- tiefe ausgewählt werden (`Farben'), für die die Bildschirmauflösungen konfiguriert werden sollen. Der X-Server kann in verschiedenen Farbtiefen starten, z. B. in 8 Bit- Farbtiefe, was 256 gleichzeitig darstellbare Farben bedeutet. In der je- weiligen Farbtiefe gibt es wiederum verschiedene Bildschirmauflösun- gen, z. B. die Auflösung 800x600. Nicht alle Auflösungen stehen in al- len Farbtiefen zur Verfügung. So sind auf manchen Karten 1600x1200 244 8.1. Konfiguration mit SaX Abbildung 8.7: SaX: Bildschirm Punkte bei 32 Bit-Farbtiefe unmöglich, da dazu die meisten Grafikkar- ten zu wenig Speicher haben. Bei 8 Bit-Farbtiefe stehen verschiedene Auflösungen zur Verfügung (von z. B. 1600x1200 bis zu 640x480), die in der `Actual Re- solution List' eingetragen sind. Diese Auflösungen sind durch Strg + Alt + + bzw. Strg + Alt + - während des laufenden Be- triebs in der Reihenfolge der Liste durchwechselbar ( + bzw. - müssen vom Nummernblock genommen werden!). Der erste Eintrag in der Liste ist immer der, in dem der X-Server startet. Aus der Liste der `Möglichen' Auflösungen muss man die gewünsch- ten Auflösungen in die Liste `Aktuelle' verschieben. Dazu klickt man auf die Auflösung, um diese zu markieren, und dann auf den Knopf `E', um diese Auflösung in die Liste der `Aktuellen' Auflösungen ein- zufügen. Mit `V' verschieben Sie die ungewünschten Einträge wieder zurück. Die Reihenfolge der Einträge in der Liste `Aktuelle' lässt sich durch die Pfeiltasten am unteren Ende des Listenfensters `Aktuelle' ver- ändern. Dazu markiert man den Eintrag, den man verschieben möchte, und klickt mit der linken Maustaste auf den Auf- oder Ab-Pfeil. Dadurch tauscht der Eintrag seinen Platz mit seinem Vorgänger bzw. mit seinem Nachfolger. Sobald Sie mit Ihren Einstellungen bei 8 Bit-Farbtiefe zufrieden sind, können Sie über die Knöpfe rechts eine andere Farbtiefe zur Konfigura- tion auswählen, z. B. 16 Bit. Nun sehen Sie in der Liste `Mögliche' die für diese Farbtiefe möglichen Bildschirmauflösungen, welche ­ wie oben beschrieben ­ manipuliert werden können. `Virtuelle-Auflösung': Auf dieser Karte lassen sich die Einstel- lungen für virtuelle Bildschirmgrößen vornehmen; wenn Sie wirklichen ein virtuellen Bildschirmbereich haben möchten, dann sind die Werte bei `Virtuell X' (= Breite) bzw. `Virtuell Y' (= Höhe) zu erhöhen ­ in der Regel ist dies jedoch nicht erwünscht! 245 8. Das X Window System Zum Hintergrund: Das X Window System bietet die Möglichkeit, eine virtuelle Desktopgröße zu definieren. So kann man auf einem Desktop arbeiten, der größer als der sichtbare Bildschirm ist, z. B. mit einer Bild- schirmgröße 1152x864 bei einer Monitor-Auflösung von 800x600. `Spezielles': Diese Karte erlaubt es, eine eigene Auflösung zu erzeu- gen. Weiterhin kann man dort die `Qualität' der Modelines" be- stimmen, also zwischen zwei Berechnungsarten auswählen. Nun sollten Sie festlegen, mit welcher Farbtiefe der X-Server standardmä- ßig (engl. default) starten soll. Dazu ist auf der `Bildschirm'-Karte die gewünschte Farbtiefe (via `Farben') aktuell zu machen. Ist dies gesche- hen, wählen Sie den Knopf `Aktuellen Modus Bearbeiten', um so einen Teststart des X-Servers einzuleiten ... Testen der Konfiguration Nach kurzer Rechenzeit erscheint eine Mitteilungsbox; klicken Sie ­ wenn Sie einverstanden sind ­ auf `OK'. Danach sollte das Hintergrundbild auf- tauchen und ein zweigeteiltes Fenster erscheinen, in dessen linker Hälfte ei- nige Informationen über die momentane Auflösung und die Horizontal- bzw. Vertikalfrequenz des Videomodus angezeigt werden. In der rechten Hälfte befinden die sich zwei Tastenfelder `Größe' und `Position', die es erlauben, das Bild optimal zu justieren. Die Pfeiltasten im Feld `Größe' dienen dazu, das Bild in horizontaler und vertikaler Rich- tung zu dehnen und zu stauchen; im Feld `Position' verändert man die relative Lage des Bildes auf dem Monitor. Justieren Sie damit das Bild nach Ihren Wünschen! Als Kontrolle, ob das Bild richtig justiert ist, befinden sich in den vier Ecken des Monitorbildes kleine Vierecke. Diese sollten bei optimaler Bildlage voll- ständig ohne Farbverfälschungen sichtbar sein. Mit SaX lässt sich jedoch nur die Feinjustierung des Monitorbildes errei- chen, sie kann die manuelle Nachjustierung mit den Monitortasten nicht ersetzen! Nach der richtigen Einstellung des Bildes haben Sie zwei Möglichkeiten, das Fenster zu schließen: `Speichern': Sie beenden Ihre X Window System-Konfiguration und speichern die momentanen Einstellungen. Damit kehren Sie zur Kom- mandozeile zurück. `Abbrechen': Sie wollen SaX beenden, ohne die Einstellungen zu über- nehmen. Tippen Sie ggf. Alt + F1 , um auf die erste Konsole zurückzugelangen. 8.1.2 Rekonfiguration SaX greift Ihnen auch stark unter die Arme, wenn es darum geht, einen laufenden X-Server besser Ihren Wünschen anzupassen. 246 8.1. Konfiguration mit SaX Dazu liest SaX die schon bestehende /etc/XF86Config aus, in der das X Window System die Konfigurationsdaten speichert, und analysiert sie. Da- durch ist es nicht unbedingt notwendig, sämtliche Einstellungen von der Maus bis zum Monitor selbst zu tätigen, denn SaX übernimmt die funktio- nierende bestehende Konfiguration des X-Servers. SaX stellt diese Daten auf den oben beschriebenen Karteikarten zur Verfügung. Dennoch hat der Benutzer sämtliche Freiheiten in der Neueinstellung seiner X-Server-Konfiguration: Er kann aus der umfangreichen Monitordatenbank sein Modell heraussuchen, und somit seine Konfiguration besser an die Fä- higkeiten des Monitors anpassen, und darüber hinaus bequem die Bildlage justieren. Auch stellt ihm SaX eine komfortable Oberfläche zur Verwaltung der Menge an Farbtiefen und der Auflösungen der Grafikkarte zur Verfügung, die schnell durch einen Mausklick auf die Karteikarte `Bildschirm' zu erreichen ist. 8.1.3 Troubleshooting Hier sollen die häufigsten und größten Probleme angesprochen werden, die bei der X-Konfiguration mit SaX auftreten können: * Sollte das Monitorbild beim Testen der Konfiguration stark flimmern, oder ein schwarzes oder zerrissenes Bild zeigen, so müssen Sie sofort den X-Server beenden, ansonsten kann Ihr Monitor schaden nehmen. Drücken Sie dazu Strg + Alt + - ­ Achtung nicht Tab , sondern - ist's: die Rücklöschtaste"! Sie sollten danach zur Karteikarte `Monitor' gehen, und einen pas- senderen Monitor aussuchen, oder Ihre Monitordaten von Hand eingeben. Dasselbe gilt, falls das Bild während der Bildjustierung zu flimmern be- ginnen sollte. * Für hartnäckige Fälle stellt SaX Kommandozeilenoptionen zur Verfü- gung, z. B.: --server vga16: Beim ersten Starten von SaX wird der VGA16- Server benutzt, anstelle des speziell zur Karte passenden X-Servers. Der VGA16-Server sollte fast auf allen VGA-Karten laufen. Dieser Server wird automatisch verwendet für den Fall, dass Ihre Grafikkarte nicht erkannt wird, oder wenn Sie eine ISA-Karte haben. Die aktuelle Dokumentation zu SaX liegt im Verzeichnis /usr/doc/ packages/sax. Wenn beim Starten von SaX oder bei den Konfigura- tionsschritten etwas Unvorhergesehenes passiert, dann wird dies in den Dateien /root/ServerLog und /root/StartLog protokolliert. Wenn Sie diese Dateien anschauen, können Sie Aufschlüsse erhalten, wie weiter vorzugehen ist. 8.1.4 Start des X Window System Das X Window System kann jetzt von jedem User mit startx gestartet werden. Eine vorkonfigurierte grafische Oberfläche für den fvwm-Windowmanager wird mit dem Beispiel-User zur Verfügung gestellt. Es empfiehlt sich also, 247 8. Das X Window System startx von diesem Account aus ­ und nicht als `root' ­ aufzurufen. In der Datei ~/.X.err landen Fehlerausgaben des X11-Servers. Der startx- Aufruf versteht einige Optionen; so kann z. B. mit tux@erde: > startx -- -bpp 16 die Farbtiefe von 16 Bit angewählt werden. 8.1.5 Checkliste zum Einrichten von Grafikkarten X läuft, aber es kommt noch zu Darstellungsfehlern bzw. es besteht der Wunsch, das Bild zu optimieren. * Hauptursache vieler Darstellungsprobleme: Eine zu hoch gewählte vsync-Frequenz. Da hsync und DotClock hiervon linear abhänigig sind, ergeben sich daraus die meisten Probleme. Eine Reduktion der Bildwiederholrate auf z. B. 80 Hz ergibt immer noch ein praktisch flimmerfreies Bild, das zudem wesentlich schärfer ist als eines, das beispielsweise mit 160 Hz dargestellt wird. Bei 80 Hz Bildwie- derholrate beträgt der Pixeltakt nur die Hälfte des Pixeltaktes bei 160 Hz. Probieren Sie daher bitte die maximal verwendete vertikale Ablenkfre- quenz abzusenken. Wählen Sie hierzu den Karteireiter `Monitor' un- ter SaX, und stellen Sie unter `Erweitert' eine geringere maximal zulässige Ablenkfrequenz ein. Auf modernen Bildschirmen liegt eine an- genehme Bildwiederholrate zwischen 80 und 90 Hz. * Bisweilen gibt es auch Probleme mit dem Hardwarecursor": Es wird dann ein viereckiger Block bzw. etwas, das wie ein Barcode" aus- sieht, dargestellt (anstelle des Mauscursors). Probates Gegenmittel: Option "sw_cursor" in die Section "Device" einsetzen. * Konfigurationshinweise und bei Problemen erster Anlaufpunkt: Die README-Dateien ­ diese sind nach Chipsatzherstellern getrennt ­ im Verzeichnis /usr/X11R6/lib/X11/doc/, die Manpages zu den X-Servern, natürlich die FAQ zu XFree86 (http://www.xfree86. org) und die SuSE-Seiten für Updates: http://www.suse.de/de/support/xsuse/ Die folgende Tabelle ist nach Wahrscheinlichkeit geordnet, d. h. in der Regel wird man mit Schritt 1, spätestens mit dem zweiten Schritt Erfolg haben. Schritt 3 ist meistens der Holzhammer ;-) Faktisch alle Optionen werden in die Sektion Device der Datei /etc/ XF86Config eingetragen. * Kein Mauscursor, sondern Barcode oder farbiges Quadrat. 1. Option sw_cursor in Section Device. 2. Option no_imageblt oder no_bitblt. 3. Option noaccel. * Bild zu schmal oder gestaucht. Monitoreinstellungen sind schon am Limit. 248 8.2. Konfiguration mit xf86config 1. Vermutlich ist die Bildwiederholrate bzw. die hsync-Frequenz zu hoch eingestellt und am Limit des Monitors. Abhilfe: vsync- und/oder hsync-Frequenz reduzieren. 2. Mit dem Programm xvidtune das Bild verschieben. Evtl. ist speziell dieser eine Mode nicht so ganz passend. 3. Parameter +hsync +vsync an die Modeline anhängen und probie- ren, + durch - zu ersetzen. * Beim Verschieben von Fenstern bleiben Striche, Batzer" oder Fens- terreste stehen. Diese verschwinden auch nach Beenden der Bewe- gung nicht. Erst ein Refresh des Desktops beseitigt sie. 1. Bildwiederholrate oder Auflösung reduzieren. 2. Je nach Chipsatz entsprechende Optionen aus den README-Dateien in /usr/X11R6/lib/X11/doc/ ansetzen. Zum Beispiel die Op- tionen fifo_conservative oder slow_dram. Achtung: Dies ist aber vom Grafikchipsatz abhängig! 3. Option noaccel, evtl. reicht auch schon no_imageblt oder no_bitblt. * Noise" ­ Bildstörungen beim Verschieben von Fenstern oder Be- trachten von Videos, die aber verschwinden, wenn der Bildinhalt sta- tisch ist. 1. Bildwiederholrate, Farbtiefe oder Auflösung reduzieren. 2. Speichertakt der Karte heruntersetzen oder Waitstates entfernen bzw. einfügen. Geht manchmal mit set_mclk (nicht bei allen Chipsät- zen!). Genaueres im README-Verzeichnis. Achtung, diese Option ist gefährlich (Karte kann übertaktet werden). 3. Evtl. ist auch der Bus übertaktet. Bustakt des PCI/VLB- oder ISA- Busses überprüfen. * Beim Start von XFree86 wird der Bildschirm schwarz. 1. Bildwiederholrate reduzieren. 2. Andere Fehlerquellen in Betracht ziehen: System auf IRQ-Konflikte überprüfen (z. B. PS/2-Maus benötigt IRQ 12). 8.2 Konfiguration mit xf86config In den meisten Fällen ist SaX als Konfigurations-Werkzeug dem Programm xf86config bei der einfachen Konfiguration des X Window System überlegen. In den wenigen Fällen aber, in denen ein Konfiguration mittels SaX fehl- schlägt, gelingt diese in der Regel mit xf86config. Zur Konfiguration müssen folgende Daten bekannt sein: * Maus-Typ, -Port, an den die Maus angeschlossen wurde, und Baudrate, mit der die Maus betrieben wird (letzteres ist in der Regel optional). * Spezifikation der Grafikkarte. * Monitordaten (Frequenzen etc.). 249 8. Das X Window System Sind diese Daten bekannt, bzw. liegen Monitor- und Kartenbeschreibung in greifbarer Nähe, so kann mit der Konfiguration begonnen werden. Diese kann nur vom Benutzer `root' vorgenommen werden! Gestartet wird die Konfiguration mit: erde:/root # /usr/X11R6/bin/xf86config Maus Nach der Begrüßungsseite wird im ersten Menü nach dem Maustyp gefragt. Es erscheint die folgende Auswahl: 1. Microsoft compatible (2-button protocol) 2. Mouse Systems (3-button protocol) 3. Bus Mouse 4. PS/2 Mouse 5. Logitech Mouse (serial, old type, Logitech protocol) 6. Logitech MouseMan (Microsoft compatible) 7. MM Series 8. MM HitTablet Ausgabe 8.2.1: Auswahl der Maus für X Bei der Festlegung des Maustyps ist zu beachten, dass viele der neueren Logitech-Mäuse Microsoft-kompatibel sind oder das MouseMan-Protocol verwenden. Die Auswahl Bus Mouse bezeichnet alle Typen von Busmäu- sen, auch Logitech! Der passende Maustyp wird durch Angabe der davor stehenden Nummer ausgewählt. Es folgt evtl. (z. B. bei Auswahl von Typ 1) die Abfrage, ob ChordMiddle aktiviert werden soll. Dies ist bei manchen Logitech Mäu- sen, bzw. Trackballs notwendig, um die mittlere Maustaste zu aktivieren: Please answer the following question with either 'y' or 'n'. Do you want to enable ChordMiddle? Wird eine Maus mit zwei Tasten verwendet, so kann durch Beantwortung der nächsten Frage mit `y' die Emulation eines dritten Knopfes eingeschaltet werden: Please answer the following question with either 'y' or 'n'. Do you want to enable Emulate3Buttons? Die dritte Maustaste wird emuliert, indem das gleichzeitige Drücken der bei- den Maustasten als Betätigen der mittleren Maustaste gewertet wird. Als nächstes wird nach der Schnittstelle gefragt, an der die Maus angeschlos- sen ist: Now give the full device name that the mouse is connec- ted to, for example /dev/tty00. Just pressing enter will use the default, /dev/mouse. Mouse device: Wurde bereits bei der Systeminstallation ein Port für die Maus angegeben, so sollte hier die Vorgabe (/dev/mouse) übernommen werden. 250 8.2. Konfiguration mit xf86config Tastatur Nun wird gefragt, ob der linken Alt -Taste der Wert Meta (ESC) und der rechten Alt -Taste der Wert ModeShift (AltGr) zugeordnet werden soll: Please answer the following question with either 'y' or 'n'. Do you want to enable these bindings for the Alt keys? Hier sollte `y' gewählt werden, damit die über Alt Gr erreichbaren Zei- chen der deutschen Tastatur eingegeben werden können, und die linke Alt - Taste als Meta-Taste3 verwendet werden kann. Monitor Als nächstes muss der Monitor spezifiziert werden. Kritisch sind die Vertikal- und die Horizontal-Frequenzen. Diese sind in der Regel im Monitorhandbuch angegeben. Eine Angabe von falschen Frequenzbereichen kann zur irreparablen Zer- störung des Monitors führen! Das X-Window-System spricht nur Video- Modi an, die den Monitor in den angegeben Frequenzbereichen betreiben. Die Angabe von Frequenzen, für die der Monitor nicht spezifiziert ist, kann diesen überlasten! Für einige Monitore können auch in /usr/X11R6/lib/X11/doc/ Monitors4 die Werte nachgesehen werden. Zur Angabe der Horizontalfrequenz wird folgende Auswahl präsentiert: hsync in kHz; monitor type with characteristic modes 1 31.5; Standard VGA, 640x480 @ 60 Hz 2 31.5 - 35.1; Super VGA, 800x600 @ 56 Hz 3 31.5, 35.5; 8514 Compatible, 1024x768 @ 87 Hz interl. (no 800x600) 4 31.5, 35.15, 35.5; Super VGA, 1024x768 @ 87 Hz il., 800x600 @ 56 Hz 5 31.5 - 37.9; Extended Super VGA, 800x600 @ 60 Hz, 640x480 @ 72 Hz 6 31.5 - 48.5; Non-Interlaced SVGA, 1024x768 @ 60 Hz, 800x600 @ 72 Hz 7 31.5 - 57.0; High Frequency SVGA, 1024x768 @ 70 Hz 8 31.5 - 64.3; Monitor that can do 1280x1024 @ 60 Hz 9 31.5 - 79.0; Monitor that can do 1280x1024 @ 74 Hz 10 Enter your own horizontal sync range Enter your choice (1-10): Ausgabe 8.2.2: Eingabe der Horizontalfrequenzen des Monitors Nur wenn die genauen Monitordaten nicht bekannt sind, sollte eine der Vor- gaben übernommen werden. Mit Auswahl `10' können die genauen Fre- quenzen angegeben werden. Nach Angabe der Horizontalfrequenzen werden die Vertikalfrequenzen abge- fragt. Auch hier wird wieder eine Auswahl vorgegeben: 3 z. B. im Emacs. 4 Diese Angaben sind natürlich ohne Gewähr! 251 8. Das X Window System 1 50-70 2 50-90 3 50-100 4 40-150 5 Enter your own vertical sync range Enter your choice (1-5): Ausgabe 8.2.3: Detaillierte Vertikalfrequenzen Wieder sollte die Angabe der genauen Werte der Übernahme eines der Punkte `1' bis `4' vorgezogen werden. Es wird dann die Eingabe eines Namens für die Monitorbeschreibung, Enter an identifier for your monitor definition: die Angabe des Herstellers, Enter the vendor name of your monitor: und die Modellbezeichnung Enter the model name of your monitor: verlangt. Hier kann ein entsprechender Namen eingeben werden oder aber mit Enter die Vorgabewerte übernommen werden. Die Spezifikation des Monitors ist damit beendet. Grafikkarte/X-Server Weiter geht es mit der Spezifikation der verwendeten Grafikkarte: Do you want to look at the card database? Bei Eingabe von `y' wird eine Auswahl von vorkonfigurierten Grafikkarten präsentiert. Aus dieser Liste kann durch Angabe der entsprechenden Nummer eine Kar- tendefinition ausgewählt werden. Es sollte jedoch nicht blind eine Definition übernommen werden, da es selbst bei Karten gleichen Typs zu Variationen in Clock-Chip und RAMDAC (engl. Random Access Memory Digital-to- Analogue Converter) kommen kann! Aus diesem Grund wird, trotzdem eine Definition ausgewählt wurde, an spä- teren Punkten der Konfiguration wieder nach Clock-Chip, RAMDAC, etc. gefragt. Es wird dann allerdings eine aus der Kartendefinition stammende Vorgabe als zusätzliche Option präsentiert. Die Kartendefinitionen beinhalten Informationen zu Clock-Chip, RAMDAC und zu verwendendem X-Server. Außerdem werden ggf. wertvolle Hinweise zum Umgang mit der Karte in die Device-Section der Datei XF86Config geschrieben. Falls die gesuchte Karte nicht aufgeführt ist, so ist das kein Grund zur Beun- ruhigung. In diesem Fall kann mit `q' zur normalen Konfiguration zurück- gekehrt werden. Es ist dabei zu beachten, dass eine Grafikkarte nur dann aus- gewählt werden sollte, wenn diese genau mit der verwendeten Karte überein- stimmt! Die Auswahl einer Karte mit einer ähnlichen Bezeichnung ist nicht zu empfehlen. Ähnliche Namen bedeuten noch lange nicht ähnliche Hardwa- re ... 252 8.2. Konfiguration mit xf86config Weitere Informationen zur Konfiguration der Grafikkarte werden in Kapitel Abschnitt 8.3 auf Seite 255 beschrieben. Nach der Spezifikation der Karte folgt die Auswahl des X-Servers: 1 The XF86_Mono server. This a monochrome ser- ver that should work on any VGA-compatible card, in 640x480 (more on some SV- GA chipsets). 2 The XF86_VGA16 server. This is a 16-color VGA ser- ver that should work on any VGA-compatible card. 3 The XF86_SVGA server. This is a 256 color SVGA ser- ver that supports a number of SVGA chipsets. It is accelerated on some Cir- rus and WD chipsets; it supports 16/32-bit color on certain Cirrus configurations. 4 The accelerated servers. These include XF86_S3, XF86_Mach32, XF86_Mach8, XF86_8514, XF86_P9000, XF86_AGX, XF86_W32 and XF86_Mach64. These four server types correspond to the four diffe- rent "Screen" sections in XF86Config (vga2, vga16, svga, accel). 5 Choose the server from the card definition, XF86_S3. Which one of these four screen types do you intend to run by default (1-4)? Ausgabe 8.2.4: Auswahl des X-Servers 1 Ein Server für monochrome (Schwarz/Weiß) Monitore. Sollte mit jeder VGA kompatiblen Grafikkarte funktionieren und zumindest eine Auflö- sung von 640x480 Punkten liefern. 2 Der 16-Farb-Server XF86_VGA16. Sollte mit jeder VGA kompatiblen Grafikkarte funktionieren. 3 Der SVGA-Server XF86_SVGA. Dieser 256-Farb-Server unterstützt eine große Anzahl von SVGA-Karten. Bei einigen Cirrus- und WD-Karten wird die Grafikbeschleunigung ausgenutzt. Bei manchen Cirrus-Karten kann auch der 16- bzw. 32-Bit Farbmodus aktiviert werden. 4 Server für beschleunigte Grafikkarten. Hier stehen mehrere Server zur Aus- wahl (s. u.) 5 Diesen Punkt gibt es nur dann, wenn in der vorhergehenden Auswahl eine Kartendefinition ausgewählt wurde. Es wird hier der Server vorgeschla- gen, der zu der ausgewählten Karte passt. Wurde ein Server ausgewählt, so folgt die Frage, ob ein symbolischer Link vom ausgewählten Server nach /usr/X11R6/bin/X gemacht werden soll. Wird diese Frage mit `y' beantwortet, so wird noch nachgefragt, ob der Link in /var/X11R6/bin angelegt werden soll: Do you want to set it in /var/X11R6/bin? 253 8. Das X Window System Diese Frage ist unbedingt zu bejahen, da auf den /usr-Baum nicht unbedingt in jedem Fall geschrieben werden kann. Anschließend erscheint ggf. (wenn in obiger Auswahl `4' angegeben wurde) ein Menü mit den verfügbaren X-Servern für beschleunigte Grafikkarten: Select an accel server: 1 XF86_S3 2 XF86_Mach32 3 XF86_Mach8 4 XF86_8514 5 XF86_P9000 6 XF86_AGX 7 XF86_W32 8 XF86_MACH64 Which accel server: Ausgabe 8.2.5: Beschleunigte X-Server Diese Server unterstützen jeweils die entsprechende Karte. Das Anlegen des Links setzt voraus, dass der passende Server bereits installiert wurde, d. h., dass bei der Installation des X-Window-Systems bereits der richtige Server ausgewählt wurde. Nach der Auswahl des X-Servers muss die Grafikkarte noch näher spezifiziert werden. Als erstes wird nach der Menge des vorhandenen Videospeichers gefragt: How much video memory do you have on your video card: 1 256K 2 512K 3 1024K 4 2048K 5 4096K 6 Other Enter your choice: Ausgabe 8.2.6: Angabe des Grafikspeichers Anschließend wird nach Name, Hersteller und Typ der Karte gefragt. Falls eine Grafikkarte ausgewählt wurde, genügt es, Return zu drücken. Enter an identifier for your video card definition: Enter the vendor name of your video card: Enter the model (board) name of your video card: Wenn als X-Server ein Server für beschleunigte Grafikkarten ausgewählt wur- de, wird jetzt nach dem RAMDAC setting gefragt. Diese sind nur für S3 und AGX Server relevant: In den meisten Fällen ist es am besten, die Eingabetaste zu drücken und keine Auswahl vorzunehmen. Wenn eine Grafikkarte ausgewählt wurde, die ein 254 8.2. Konfiguration mit xf86config 1 AT&T 20C490 (S3 server) att20c490 2 AT&T 20C498/21C498/22C498 (S3) att20c498 3 AT&T 20C505 (S3) att20c505 4 BrookTree BT481 (AGX) bt481 5 BrookTree BT482 (AGX) bt482 6 BrookTree BT485/9485 (S3) bt485 7 Sierra SC15025 (S3, AGX) sc15025 8 S3 GenDAC (86C708) (autodetected) s3gendac 9 S3 SDAC (86C716) (autodetected) s3_sdac 10 STG-1700 (S3) stg1700 11 TI 3020 (S3) ti3020 12 TI 3025 (S3) ti3025 13 TI 3020 (S3, autodetected) ti3020 14 TI 3025 (S3, autodetected) ti3025 15 TI 3026 (S3, autodetected) ti3026 16 IBM RGB 514 (S3, autodetected) ibm_rgb514 17 IBM RGB 524 (S3, autodetected) ibm_rgb524 18 IBM RGB 525 (S3, autodetected) ibm_rgb525 19 IBM RGB 526 (S3) ibm_rgb526 20 IBM RGB 528 (S3, autodetected) ibm_rgb528 21 ICS5342 (S3, ARK) ics5342 22 ICS5341 (W32) ics5341 23 IC Works w30C516 ZoomDac (ARK) zoomdac 24 Normal DAC normal Ausgabe 8.2.7: Angabe des RAMDAC bestimmtes RAMDAC setting unterstützt, so wird dies angezeigt und sollte ausgewählt werden. Nachdem diese Fragen beantwortet wurden, kann für beschleunigte Karten der Clock-Chip, sofern vorhanden, ausgewählt werden. Durch Auswahl eines Clock-Chips werden keine Clocks-Zeilen mehr benötigt, da die benötigten Clocks programmiert werden können: 1 Chrontel 8391 ch8391 2 ICD2061A and compatibles (ICS9161A, DCS2824) icd2061a 3 ICS2595 ics2595 4 ICS5342 (similar to SDAC, but not completely compatible) ics5342 5 ICS5341 ics5341 6 S3 GenDAC (86C708) and ICS5300 (autodetected) s3gendac 7 S3 SDAC (86C716) s3_sdac 8 STG 1703 (autodetected) stg1703 9 Sierra SC11412 sc11412 10 TI 3025 (autodetected) ti3025 11 TI 3026 (autodetected) ti3026 12 IBM RGB 51x/52x (autodetected) ibm_rgb5xx Ausgabe 8.2.8: Angabe des Clockchips Wird eine Grafikkarte ohne Clock-Chip eingesetzt, so genügt es, die Eingabe- taste zu drücken, um keinen Clock-Chip auszuwählen. Wenn eine Grafikkarte im Auswahlmenü ausgewählt wurde, wird der Clock-Chip, falls vorhanden, automatisch angezeigt. Wurde kein Clock-Chip ausgewählt, schlägt xf86config vor, X -probeonly zu starten, um die von der Karte unterstützten Clock-Timings zu ermitteln. Diese 255 8. Das X Window System werden dann automatisch in eine Clocks-Zeile in der Datei XF86Config eingetragen. An dieser Stelle muss klar gesagt werden, warum die automatisch ermittelten und eingetragenen Clock-Timings sehr gefährlich sein können: Hat die Gra- fikkarte einen programmierbaren Clock-Chip, dann kann der X-Server beim Proben nicht zwischen den verschiedenen Clocks der Karte umschalten und erkennt deshalb nur die Clocks 0, 1 und gelegentlich 2. Alle anderen Werte sind mehr oder weniger zufällig (in der Regel wiederholen sich die Clocks 0, 1 und 2 und werden daher durch Nullen ersetzt). Alle Clocks außer 0 und 1 hängen aber stark von der Vorprogrammierung des Clock-Chips ab, also kann Clock 2 beim Proben einen anderen Wert gehabt haben (der in die XF86Config eingetragen wurde) als bei einem späteren Start des X-Servers. Dann sind natürlich alle Timings falsch und der Monitor könnte beschädigt werden. Ein guter Hinweis auf einen programmierbaren Clock-Chip und die damit verbundenen Probleme sind viele Nullen oder sich immer wiederholende Timing-Werte. Solche Werte dürfen keinesfalls in die Datei XF86Config übernommen werden! Verwenden Sie also beim Ermitteln der Clock-Chips oder des Clock-Timings folgende Strategie: * Am besten ist es, einen vorhandenen programmierbaren Clock-Chip anzugeben (wenn einer vorhanden ist). Er wird dann passend program- miert, die XF86Config enthält keine Clock-Angaben. Sie können auch die Chips auf der Karte mit den im Menü angebotenen Clock-Chips ver- gleichen und so den richtigen Chip herausfinden. Fast alle modernen S3- Karten haben einen programmierbaren Clock-Chip. * Wenn Sie keinen programmierbaren Clock-Chip auf der Grafikkarte haben, starten Sie am besten X -probeonly und vergleichen Sie die (bei unbelastetem Rechner) ermittelten Clock-Werte mit denen im Hand- buch der Grafikkarte. Stimmen die Werte annähernd überein (±2), tragen diese in die Datei XF86Config ein. Falls im Handbuch nichts angeführt wird, können Sie die Timing-Werte mit X -probeonly ermitteln lassen (am besten auf einem unbelasteten Rechner). Prüfen Sie die ermittelten Werte auf Gültigkeit, da sich bei einigen Karten die Clock-Werte nicht auslesen lassen (viele Nullen oder sich immer wiederholende Werte deuten auf ungültige Werte). Tragen Sie gültige Werte danach selbst in die Datei XF86Config ein. Aber lassen sie keine Werte weg, versuchen sie nicht, Werte umzuordnen oder sonst irgendwie zu verändern. Die Werte müssen exakt in der gleichen Reihenfolge eingetragen werden. Wird der P9000-Server benutzt, so muss einfach in beliebiger Reihenfolge für jeden Mode die gewünschte Clock in der Clocks-Zeile angegeben werden. * Generell gilt: Bei programmierbaren Clock-Chips darf es keine Clocks- Zeile in der XF86Config geben (Ausnahme: P9000). Bei Karten ohne programmierbare Clock-Chips sollte es eine Clocks- Zeile" in der XF86Config geben. Dadurch wird das lästige und un- 256 8.3. Optimieren der Installation des X Window Systems ter Umständen gefährliche automatische Ermitteln der Clocks bei jedem Start des X-Window-Systems vermieden. Außerdem gibt es dann bei Kar- ten mit nicht lesbaren Clocks keine falschen Werte und kein Risiko für den Monitor. Soll jetzt (und in Kenntnis der voranstehenden Absätze) versucht werden, die Clocks automatisch zu erkennen, muss auf die Frage: Do you want me to run 'X -probeonly' now? mit `y' geantwortet werden. Der Bildschirm wird dann kurz schwarz, an- schließend erscheint eine Liste der erkannten Clocks oder eine Meldung, dass keine Clocks erkannt wurden. Falls ein Clock-Chip ausgewählt wur- de, erscheint die Frage, ob X -probeonly gestartet werden soll, nicht, da die Clocks dann automatisch programmiert werden. In diesem Fall wird direkt zum nächsten Konfigurationspunkt gesprungen. Wurde die letzte Frage mit `y' beantwortet, und bleibt der Bildschirm dann länger als ca. 30 Sekunden dunkel, so sollte der Testvorgang unbe- dingt mit Strg + Alt + bzw. Strg + c abgebrochen werden! Notfalls müssen Rechner und Monitor abgeschaltet werden, um die Hardware nicht zu gefährden! Abspeichern der Konfiguration Die Konfiguration ist damit abgeschlossen. Die Konfigurationsdatei muss je- doch noch gespeichert werden. Es empfiehlt sich, die X-Window-Konfigura- tionsdatei XF86Config im Verzeichnis /etc zu speichern. So ist sicherge- stellt, dass auch im Netzwerk jeder Rechner eine eigene" Konfiguration hat, selbst wenn sich mehrere Rechner das /usr-Dateisystem teilen. An dieser Stelle muss `/etc/XF86Config' übernommen werden! ­ Da- mit ist das Programm xf86config und die Konfiguration des X Window Sys- tem beendet. 8.3 Optimieren der Installation des X Window Systems Die Programme XF86Setup und xf86config erstellen die Datei XF86Config, standardmäßig in /etc. Dies ist die primäre Konfigurationsdatei für das X Window System. Hier finden sich die gemachten Angaben zu Maus, Monitor und Grafikkarte. XF86Config setzt sich aus mehreren Abschnitten, sog. Sections zusam- men, die sich mit jeweils einem Aspekt der Konfiguration beschäftigen. Eine Section hat stets die Form: Section eintrag 1 eintrag 2 eintrag n EndSection Es existieren folgende Typen von Sections: 257 8. Das X Window System Files Dieser Abschnitt beschreibt die verwendeten Pfade für Zeichensätze und die RGB-Farbtabelle. ServerFlags Hier werden allgemeine Schalter angegeben. Keyboard Dient der Beschreibung der Tastatur und des ver- wendeten Treibers. Im Fall von Linux kann dies nur Device "Standard" sein. Pointer Gibt die nötigen Definitionen für den verwendeten Pointer an. In der Regel wird dies eine Maus sein, denkbar wäre aber auch ein LightPen oder Grafik- Tablett. Wichtige Angaben sind das Protocol und das Device. Monitor Beschreibt den verwendeten Monitor. Elemente die- ses Abschnittes sind ein Name, auf den später bei der Definition des Screens verwiesen wird, sowie die Beschreibung der Bandbreite (Bandwidth) und der Synchronisationsfrequenzen (HorizSync und VertRefresh). Die Angaben erfolgen in MHz, kHz bzw. Hz. Grundsätzlich lehnt der Server jede Modeline ab, die nicht der Spezifikation des Monitors entspricht. Damit soll verhindert werden, dass durch Experimente an den Modelines versehentlich zu hohe Frequenzen an den Monitor geschickt werden. Device Dieser Abschnitt definiert eine bestimmte Grafikkar- te. Diese wird durch den angegeben Namen referen- ziert. Screen Diese Section schließlich fügt einen Driver (z. B. vga2 oder accel), einen Monitor und ein Device zusammen und es ergeben sich daraus die notwendigen Angaben für XFree86. Der Unterab- schnitt Display erlaubt die Angabe der virtuellen Bildschirmgröße (Virtual), des ViewPort und der verwendeten Modes mit diesem Screen. Tabelle 8.1: Abschnitte (engl. sections) in /etc/XF86Config Näher betrachtet werden die Sections Monitor, Device und Screen. In der Manual-Page von XFree86 (man XFree86) finden sich weitere Informationen zu den verbleibenden Sections. In XF86Config können mehrere Monitor- und Device-Abschnitte vor- kommen. Auch mehrere Screen-Abschnitte sind möglich; welcher davon verwendet wird, hängt vom aufgerufenen Server ab. Screen-Section Zunächst soll die Screen-Section näher betrachtet werden. Diese bringt, wie gesagt, eine Monitor- mit einer Devices-Section zusammen und bestimmt, 258 8.3. Optimieren der Installation des X Window Systems welche Auflösungen mit welcher Farbtiefe bereitgestellt werden sollen. Eine Screen-Section kann beispielsweise wie in Datei 8.3.1 aussehen. Section "Screen" Driver "accel" Device "Miro Crystal 40SV" Monitor "EIZO T563-T" DefaultColorDepth 16 Subsection "Display" Depth 8 Modes "1024x768" "800x600" "640x480" ViewPort 0 0 Virtual 1024 768 EndSubsection Subsection "Display" Depth 16 Modes "1280x960" "1152x864" "1024x768" "800x600" ViewPort 0 0 Virtual 1280 960 EndSubsection Subsection "Display" Depth 32 Modes "1024x768" "800x600" "640x480" ViewPort 0 0 Virtual 1024 768 EndSubsection EndSection Datei 8.3.1: Die Screen-Section der Datei /etc/XF86Config Die Driver-Zeile legt fest, für welchen X-Server diese Definition gelten soll. Die auf Seite 251 aufgelisteten Server werden angegeben durch die Schlüsselwörter in Tabelle 8.2. Accel Für die speziellen beschleunigten Server Mono Nicht-VGA 1 und 4 Bit Server SVGA Super VGA Server VGA2 1 Bit (Monochrom-) VGA Server VGA16 4 Bit VGA Server Tabelle 8.2: Schlüsselwörter für X-Server in /etc/XF86Config In XF86Config kann je Server eine Screen-Section vorhanden sein, die dann benutzt wird, wenn der entsprechende Server gestartet wird. Die nächsten zwei Zeilen, Device und Monitor, bezeichnen die Grafik- karte und den Monitor, die zu dieser Definition gehören. Dies sind nichts weiter als Verweise auf die Device- und Monitor-Sections mit den entspre- chenden Namen. Auf diese Sections wird später noch genauer eingegangen. 259 8. Das X Window System Mittels der DefaultColorDepth-Angabe kann ausgewählt werden, in welcher Farbtiefe der Server startet, wenn er ohne eine explizite Angabe der Farbtiefe gestartet wird. 260 8.3. Optimieren der Installation des X Window Systems Es folgt für jede Farbtiefe eine Display-Subsection. Die Farbtiefe, für die die Subsection gilt, wird durch das Schlüsselwort Depth festgelegt. Mögli- che Werte für Depth sind 8, 15, 16, 24 und 32. Nicht alle X-Server unter- stützen jeden der Werte, 24 und 32 sind bei vielen Karten im Prinzip gleich- wertig, bei anderen steht 24 für den packed-pixel 24 bpp Modus, während 32 den padded-pixel 24 bpp Modus auswählt. Nach der Farbtiefe wird mit Modes eine Liste von Auflösungen festgelegt. Diese Liste wird vom X-Server von links nach rechts durchlaufen. Für je- de Auflösung wird in der Monitor-Section eine passende Modeline ge- sucht, die mit einer der in der Monitor-Section angegeben Clock-Rate über- einstimmt, bzw. mit einer Clock-Rate, auf die sich die Karte programmieren lässt. Die erste in diesem Sinne passende Auflösung ist die, in der der X-Server startet (der sog. Default-Mode). Mit den Tasten Strg + Alt + Grau + kann in der Liste nach rechts, mit Strg + Alt + Grau - nach Links ge- wandert werden. So kann die Bildschirmauflösung zur Laufzeit des X Win- dow Systems variiert werden. Die letzten beiden Zeilen der Subsections beziehen sich auf die Größe des virtuellen Bildschirms und die Verankerung des sichtbaren Ausschnittes in diesem. Die Größe des virtuellen Bildschirms hängt vom Speicherausbau der Videokarte und der gewünschten Farbtiefe ab, nicht aber von der ma- ximalen Auflösung des Monitors. Hat die Karte z. B. 1 MB Video RAM, so kann, bei 8 Bit Farbtiefe, der virtuelle Bildschirm bis zu 1024x1024 Pixel groß sein. Speziell bei den beschleunigten Servern empfiehlt es sich jedoch nachdrücklich, nicht den gesamten Speicher der Videokarte für den virtuellen Bildschirm zu verwenden, da der nicht verwendete Speicherbereich auf der Videokarte von diesen Servern für verschiedene Caches für Zeichensätze und Grafikbereiche verwendet wird. Die Größe des virtuellen Bildschirms wird mit Virtual angegeben. Mit Viewport wird der sog. Viewport festgelegt. Dies ist der Punkt, an dem die obere linke Ecke des physikalisch sichtbaren Bildschirmausschnittes in den Virtuellen Bildschirm eingeblendet wird. Die Angabe von 0 0 bedeutet, dass die oberen linken Ecken ursprünglich aufeinander zu liegen kommen. Der sichtbare Ausschnitt wird über den virtuellen Bildschirm bewegt, indem die Maus an den Rand des Bildschirms bewegt wird. Der Viewport ist also nur beim Start des X Window Systems von Bedeutung, und dann auch nur in dem Fall, in dem die Größe des virtuellen Bildschirms nicht mit der tatsächlichen Auflösung übereinstimmt. Device-Section Eine Device-Section beschreibt eine bestimmte Grafikkarte. Es können be- liebig viele Device-Sections in XF86Config enthalten sein, solange sich ihr Name, der mit dem Schlüsselwort Identifier angegeben wird, unter- scheidet. Auf eine detaillierte Beschreibung der Device-Section soll hier verzichtet werden. Stattdessen sei auf die ausführliche ­ leider in Englisch abgefasste 261 8. Das X Window System ­ Dokumentation in /usr/X11/lib/X11/doc und auf die Manual-Page von XFree86 (man XFree86) verwiesen. In der Datei /usr/X11R6/lib/X11/doc/Devices findet sich eine Sammlung von Device-Sections. Wird eine der dort aufgeführten Kar- ten eingesetzt, so sollte die entsprechende Device-Section in die Datei /etc/XF86Config übernommen werden, und die Screen-Section durch Eintragen des entprechenden Devices angepasst werden. Ist die gesuchte Karte dort nicht aufgelistet, so bedeutet dies noch nicht, dass die Karte von XFree86 nicht unterstützt wird! Dies heißt zunächst nur, dass noch niemand eine Device-Section für diese Karte an das XFree86- Team geschickt hat. Eine Liste der unterstützten Karten findet sich im Ver- zeichnis /usr/X11/lib/X11/doc in der Datei README, in der Datei AccelCards werden die beschleunigten Karten nochmals genauer aufge- schlüsselt. Monitor-Section Die Monitor-Sections beschreiben, analog zu den Device-Sections, jeweils einen Monitor. /etc/XF86Config kann wieder beliebig viele, unter- schiedlich benannte Monitor-Sections enthalten. In der Screen-Section wird festgelegt, welche Monitor-Section ausschlaggebend ist. Für die Monitordefinition gilt, noch mehr als für die Beschreibung der Grafik- karte, dass das Erstellen einer Monitor-Section nur von erfahrenen Benutzern gemacht werden sollte. Ein wesentlicher Bestandteil der Monitor-Sections sind die sog. Modelines, in denen Horizontal- und Vertikal-Timings für die jeweilige Auflösung angegeben werden. Ohne ein grundlegendes Verständnis der Funktionsweise von Monitor und Grafikkarte sollte an den Modelines nichts verändert werden, da dies u. U. zur Zerstörung des Monitors führen kann! Diejenigen, die sich (zu)trauen, eigene Monitorbeschreibungen zu entwi- ckeln, sollten mit der Dokumentation im Verzeichnis /usr/X11/lib/ X11/doc vertraut sein. Besonders zu erwähnen ist [FCR93], wo die Funk- tion der Hardware und das Erstellen von Modelines detailliert beschrieben wird. Eine deutsche Einführung in dieses Thema findet sich im XFree86-Ka- pitel in [HHMK96]. Vorgefertigte Monitor-Sections, die in XF86Config übernommen werden können, finden sich in der Datei /usr/X11/lib/X11/Monitors. Ein dort nicht aufgeführter Monitor sollte mit den VESA Standard Timings be- trieben werden, wie sie in der Monitor-Section stehen, die von XF86Setup bzw. xf86config erstellt wird. Wichtig ist in diesem Fall, dass die Werte für die Horizontal- und Vertikal-Frequenzen richtig angegeben wurden! Auch hier gilt wieder, dass getestete Konfigurationen gerne in die Liste mit aufgenommen werden, wenn sie der SuSE GmbH bzw. dem XFree86-Team mitgeteilt werden. 262 Kapitel 9 Der Windowmanager ­ Ihr Fenster zum Rechner Wenn erst einmal der X-Server konfiguriert ist, will man auch in den Genuss eines bunten Desktops mit Fenstern, Menüs und vielen anderen Dingen kom- men, die ein ordentlicher Desktop" haben muss. ­ In diesem Kapitel zu den Windowmanagern geht es um folgende Themen: * Der Windowmanager ­ seine Aufgaben * KDE ­ das K Desktop Environment * Fvwm2 ­ ein klassischer Windowmanager unter Linux * SuSEwm ­ der elegante Weg zur eigenen Konfigurationsdatei * Die Praxis ­ verschiedene Einstellungen festlegen Auch wenn es Sie gleich zur Praxis drängt: Das grundsätzliche Verständnis sollten Sie haben. Also zuerst etwas Theorie! 9.1 Theorie zur grafischen Benutzeroberfläche 9.1.1 Aufbau des X Window System Anders als in monolithischen graphischen Benutzeroberflächen, wie z. B. bei Windows, werden die verschiedenen funktionalen Schichten unter Linux genau voneinander getrennt. Dadurch erscheint die Handhabung zwar auf den ersten Blick komplex, aber sie ist letztlich sehr flexibel; das System genügt somit hohen Anforderungen. Die erste Schicht über der Hardware ist das Betriebssystem, das die Basisauf- gaben wie beispielsweise das Speichermanagement übernimmt. Darüber liegt der X-Server (X Window System). Der X-Server" entspricht zum einen dem Grafiktreiber" (um einen in anderen Systemen gängigen Be- griff zu gebrauchen); zum anderen stellt er ein netzwerkweites Abstraktions- layer zur Verfügung. So kann man die Dienste eines X-Servers über ein gan- zes Netzwerk (auch das Internet) verteilt in Anspruch nehmen kann. Dieses sind also die Aufgaben des X-Servers: * Ansprache der Grafikkarte, * Zeichnen von Punkten, Linien, Rechtecken und Texten sowie 263 9. Der Windowmanager ­ Ihr Fenster zum Rechner * Verteilung des Ganzen über ein Netzwerk oder über den lokalen Rechner bzw. Zugriff darauf. Auch wenn wohl die meisten Benutzer die Dienste des X-Servers nur auf dem Arbeitsplatzrechner, also lokal, in Anspruch nehmen, so ist die integrier- te und für den Benutzer transparente Netzwerkfähigkeit dennoch von Vorteil. Damit gibt es eine einheitliche Schnittstelle, ohne dass dabei die grafische Gestaltung des Desktops eingeschränkt wird. Nur deswegen ist es möglich verschiedene grafische Oberflächen zu entwickeln und trotzdem jedes Pro- gramm auf jedem Desktop darstellbar sein zu lassen. Im Netzwerkbetrieb ist es außerdem möglich, auf dem Rechner im Büro eine Anwendung laufen zu lassen, deren Bildschirmausgaben auf dem heimischen PC dargestellt werden. Hierbei spielt es keine Rolle, ob nur einzelne Anwen- dungen oder der gesamte Desktop auf dem entfernten Rechner laufen. Auch spielt die Hardware-Architektur und das Betriebssystem ­ sofern es X11 un- terstützt ­ keine Rolle mehr. Man muss z. B. nicht mehr unbedingt im glei- chen Zimmer wie die lärmende, leistungsstarke Workstation sitzen, sondern kann an einem anderen, weniger starken Rechner im gemütlichen Büro arbei- ten, wobei die jeweilige Anwendung selbst auf der Workstation ausgeführt wird. Da Linux ein Multiusersystem ist, können auch mehrere Nutzer gleich- zeitig über X-Terminals auf einem Rechner arbeiten; ein X-Terminal ist ein kleiner Rechner ohne Festplatte der über das Netzwerk bootet Damit aus Rechtecken, die die Grundelemente für die uns schon bekannten verschiedenen Fenster und Bedienelemente zur Verfügung stellen, auch tat- sächlich z. B. frei verschiebbare Fenster oder Menüs werden, bedarf es der Dienste eines Windowmanagers. Fenster sind deswegen sehr wichtig, weil man damit die verschiedenen Ap- plikationen übersichtlich nebeneinander laufen lassen kann und Menüs zur bequemen Bedienung des Rechners möglich werden. Der Windowmanager ist also eine zusätzliche Schicht zwischen dem X- Server, den Applikationsprogrammen und dem Benutzer, wie Abbildung 9.1 zeigt. Dass Entwickler von X-Anwendungen direkt auf X zugreifen können, sei hier nur der Vollständigkeit halber erwähnt. Unter Linux gibt es mehrere Windowmanager, wobei zwischen den reinen Windowmanagern und den Arbeitsplätzen" bzw. den Arbeitsumgebungen" (engl. Desktop Environments) unterschieden werden sollte. Während sich die reinen Windowmanager darauf beschränken als Fenstermanager aufzutreten, gehört zu einem Desktop Environment" neben dem Windowmanager eine gewisse Anzahl von Anwendungen, die über ein einheitliches Aussehen und eine einheitliche Bedienung verfügen. Mit SuSE Linux werden die folgenden Windowmanager mitgeliefert: * Fvwm ­ lange Zeit der Windowmanager unter Linux * Fvwm95 ­ Windows 95 nachempfunden * AfterStep ­ mit Look and Feel von NeXTSTEP * WindowMaker ­ ebenso, aber komplett neu implementiert * Enlightenment ­ opulent ausgestattet 264