Das Gleiche für Xorg
Wer eine Grafikkarte mit einem sehr neuen Grafik-Chip hat, wird entdecken, dass dieser Chip in der gerade aktuellen XFree86-Distribution vielleicht noch gar keine Unterstützung erfährt. Das ist ärgerlich, aber es gibt unter Umständen Abhilfe. Indem die XFree86-Entwicklerquellen installiert und kompiliert werden, lässt sich ein einigermaßen lauffähiges XFree86 bereitstellen, das den viel zu neuen Grafik-Chip vielleicht sogar schon unterstützt. Haken an der Sache: Es gibt für diese Entwicklerquellen weder Port noch Package, so dass Handarbeit angesagt ist. Auch kann es gerne passieren, dass nach dem Kompilieren nichts geht, oder schon das Kompilieren selbst nicht klappt, oder es in einigen Details klemmt -- aber dafür sind es ja schließlich auch die Entwicklerquellen.
Wie schon gesagt, eigentlich geht es hier um die Entwicklerquellen. Allerdings wird XFree86 immer auf die gleiche Weise konfiguriert, egal ob es aus den Paketen installiert, oder selbst compiliert wurde. Wer einfach ein gewöhnliches Standard-X installieren möchte, macht
pkg_add -r XFree86
und liest wahlweise das entsprechende Kapitel im FreeBSD-Online-Handbuch, oder weiter unten im Abschnitt "XFree86-Konfiguration" weiter.
Ich habe XFree86 per cvsup geholt und dafür folgende Konfigurations-Datei gebastelt:
*default host=anoncvs.xfree86.org *default base=/usr *default prefix=/usr/src *default release=cvs *default tag=. *default delete *default use-rel-suffix *default compress xc-all
Danach mit
cvsup -g -L 2 <Konfigurations-Dateiname>
den Sourcetree vom XFree86-Server holen. Der wird dann nach /usr/src/xc gepackt, was per T-DSL vielleicht 20 Minuten oder so dauert.
Ich habe dann erstmal das schon vorhandene X in Sicherheit gemoved und daraufhin das frische X compiliert. Um bei den Beispielverzeichnissen zu bleiben:
cd /usr/src/xc make World make install make install.man
Das kann jetzt je nach MHz ein bisschen dauern, also erstmal ein bis mehrere Kaffee trinken gehen.
Anschließend liegt X wie gewohnt unter /usr/X11R6 herum und lässt sich ebenfalls wie gewohnt konfigurieren. Viele Leute haben noch das alte xf86config von X Version 3 im Kopf, aber das braucht man eigentlich nicht mehr, es geht (meistens) viel schöner.
Man wechsle in seinen Lieblingsordner:
cdund tippe sodann
XFree86 -configure
woraufhin X die Grafikkarte zu erkennen versucht. Mit PCI-Karten scheint das nahezu immer zu klappen (mit einigen Karten getestet), bei ISA-Karten geht das nicht so richtig gut (obgleich aber was Brauchbares dabei herauskommt und sei es bloß 640x480 in schwarz-weiß), einen Rechner mit VESA-Karten hatte ich gerade nicht zur Hand. Außerdem erzeugt X eine schon sehr gut brauchbare Konfigurationsdatei im aktuellen Ordner namens XF86Config.new, zu deren Test man auch gleich aufgefordert wird, inklusive Hinweis, was zu tippen ist. Also kurz abgetippt, oder die Maus für Copy&Paste benutzt:
XFree86 -xf86config XF86Config.new
woraufhin das altbekannte Karomuster mit dem Mauskreuz in der Mitte des Bildschirms erscheinen sollte. Oder wengistens sowas Ähnliches, so dass man erkennen kann, dass X irgendetwas an der Grafikkarte herumtreibt und es ihm gelingt, die Grafikchips zu etwas zu bewegen. Hauptsache kein sofortiger Abbruch inklusive fieser Fehlermeldungen. Bis das Karomuster kommt, können durchaus schonmal Minuten vergehen, also Geduld. Wenn's da ist, testweise ein bisschen an der Maus herumschieben, um zu sehen, ob das Kreuz sich bewegen lässt und dann mit Ctrl-Alt-Backspace den X-Server wieder beenden.
Das war's. Naja fast. Man sollte nun in die Konfigurationsdatei noch ein paar Sachen eintragen.
In dem Abschnitt "InputDevice" für die Tastatur etwa (je nach Geschmack und Tastatur) z.B. dies eintragen:
option "xkbmodel" "pc102" option "xkblayout" "de"
In dem anderen InputDevice-Abschnitt (für die Maus) sollten Protokoll und Port angepasst werden. Für PS/2-Mäuse reicht dies aus (und ist höchstwahrscheinlich auch bereits eingetragen):
option "protocol" "auto" option "device" "/dev/sysmouse"
Im Abschnitt "Monitor" fehlt nun noch die Angabe für die gewünschte Bildschirmauflösung. Die wiederum läßt sich bequem über die Horizontal- und die Vertikalfrequenz einstellen, deren Maximalwerte im Monitorhandbuch bei den technischen Daten stehen. Für meinen Samsung SyncMaster 17GLsi habe ich die folgenden Werte gefunden: Horizontalfrequenz 30 bis 85 kHz, Vertikalfrequenz 50 bis 120 Hz. Daraus ergeben sich dann diese beiden Zeilen (Achtung: Falsche Werte können den Bildschirm zerstören!):
# für Samsung SyncMaster 17GLsi passend: horizsync 30-85 vertrefresh 50-120
Sodann wird wieder ein Versuch mit dem oben genannten Testkommando gemacht. Anschließend findet sich in /var/log/XFree86.0.log was der X-Server so gemacht und gefunden hat. Mit grep lassen sich dann bequem die verwendbaren Modi herausfinden:
grep Default /var/log/XFree86.0.log
Das könnte vielleicht sowas ergeben:
(**) s3(0): *Default mode "1024x768": 75.0 MHz, 56.5 kHz, 70.1 Hz
Die ausgeworfenen Zeilen enthalten alle Modi, die im Rahmen der angegebenen Horizontal- und Vertikalfrequenzen bei geringstmöglicher Farbtiefe mit dieser Grafikkarte möglich sind. Je nach Grafikkarte und Speichermenge eben dieser Grafikkarte, sowie eingestellter Farbtiefe kann die Liste erheblich von anderen abweichen.
Die erste Zahl einer Zeile ist die Bildschirmauflösung, hier also "1024x768". Man suche nun eine Zeile, in der die gewünschte Auflösung vorkommt. Die letzte Zahl einer Zeile ist die Bildwiederholfrequenz, in diesem Beispiel "70.1 Hz". Sie sollte fuer TFT-Bildschirme zwischen 60 und 75 Hz liegen, fuer Röhrenmonitore jedoch gerne größer als 75 Hz sein, damit's nicht so flimmert. Wenn eine passende Zeile gefunden ist, nur noch die vorletzte Zahl der Zeile notieren, denn das ist die Horizontalfrequenz. In diesem Beispiel beträgt sie "56.5 kHz". Diese Zahl wird dann im "Monitor"-Abschnitt eingetragen (die "vertrefresh"-Zeile kann so bleiben, wie sie ist, außer es gibt Mehrdeutigkeiten mit der Horizontalfrequenz):
horizsync 56.5
Der Abschnitt "Screen" sollte um die Default-Farbtiefe ergänzt werden, sonst nimmt X immer das Kleinste, was gerade noch geht, was aber durchaus unansehnlich sein kann:
defaultdepth 24
Achtung: Es kann sein, dass bei Vergrößerung der Farbtiefe keine passenden Grafikmodi mehr vorhanden sind, weil die Grafikkarte zu wenig Speicher hat, oder die eingestellten Frequenzgrenzen überschritten werden. Der X-Server quittiert dies mit der Nachricht: "No Screens Found". In diesem Fall einfach für die nun gewählte Farbtiefe noch mal das obige Testkommando laufen lassen und anschließend mit grep das Logfile nach Modi durchsuchen.
So, das war's jetzt wirklich. Zwischendurch das Ganze immer wieder mit dem schon bekannten Kommando testen. Zum Abschluss der Konfiguration diese Datei unter dem Namen XF86Config nach /etc/X11 kopieren (oder dort einen Link auf die XF86Config.new erzeugen), z.B.
cp ~/XF86Config.new /etc/X11/XF86Config
Nun kann man sich noch mit den Lieblings-Windowmanagern beschäftigen und darüber aufregen, das man mit der Maus auf dem Tisch riesige Entfernungen zurücklegen muss, damit sich der Pfeil auf dem Bildschirm millimeterweise voranbewegt. Letzteres lässt sich raffiniert schon im Kernel lösen und ist daher ein gaaanz anderes Kapitel.
Es sei hingewiesen auf einen zweiten Weg der X-Konfiguration, bei dem man aber mehr nachdenken muss, weil mehr Fragen gestellt werden. Vielleicht klappt damit aber eine Installation, wenn es für eine Grafikkarte keinen Treiber gibt und nur noch der vesa- oder der vga-Treiber in Frage kommen. Es heißt xf86cfg und hat wahlweise einen Grafikmodus, der aber nicht immer so klasse ist, weil die Grafikkarte gegenüber X schon bekannt sein muss (wenn kein Treiber passt, dann gibt's halt auch keine grafische Konfiguration, basta) oder der Treiber zwar läuft, aber für den Bildschirm unmöglich darzustellende Frequenzen benutzt --- kommt gerne bei TFT-Displays vor --- oder auch einen reinen Textmodus, der mit ncurses arbeitet und folgendermaßen gestartet werden kann:
xf86cfg -textmode
Ich persönlich bevorzuge die bereits beschriebene "XFree86 -configure"-Methode, da sie mich bisher immer noch am schnellsten zum Ziel geführt hat.
In der allereinfachsten Variante entfernt man eine im eigenen home-Verzeichnis vorhandene .xinitrc-Datei (oder nennt sie vorübergehend anders) und tippt startx ein:
rm ~/.xinitrc startx
oder auch
mv ~/.xinitrc ~/.xinitrc.bak startx
Daraufhin materialisiert sich X inklusive eines twm mit drei xterms und einer Uhr auf dem Bildschirm.
Alles Weitere, also xdm, .xinitrc, kde und so weiter, wird auch gut im FreeBSD-Online-Handbuch beschrieben.
Apropos kde: Folgendermaßen lässt es sich installieren und starten:
cd /usr/ports/x11/kde3 make all install clean cd echo startkde > .xinitrc startx
(Das "make" kann ein bisschen dauern, also Geduld!)
Dies hier geht auch und ist sogar ganz erheblich schneller, aber lange nicht so elegant, weil damit nur eine eher alte Version eingerichtet wird:
pkg_add -r kde echo startkde > .xinitrc startx
Noch ein ganzes Ende schneller geht's mit xfce:
pkg_add -r xfce startxfce
Alle Angaben ohne Gewär für Richtigkeit. Jede Haftung ausgeschlossen. Anwendung auf eigene Gefahr. Wer nicht weiß, was er tut, lässt die Finger weg. Keine Haftungsübernahme für Inhalte gelinkter Seiten.
URL dieser Seite:
http://www.don-alfredo.net/xfree86.html
Letzte Bearbeitung am 8. April
2007 durch den Netzmeister.
Copyright
© 1998 - 2007 Alfred Zimmel
Alle Rechte vorbehalten.