Vorarbeiten
Bevor mit der Installation begonnen wird sollten ein paar grundlegende Dinge geklärt sein um spätere Misskonfiguration und damit auch Frust zu vermeiden. Besonders was moderne Chipsätze im Zusammenspiel mit AGP angeht gibt es doch eine Reihe von Problemen. Für einige wenige Chipsätze liefert das Howto eine Lösung.
- Vorallem solltet ihr die Kernel-Headers installieren!
- Welche Distribution habe ich (besonders Kernelversion sowie Xfree-Version)?
Bevor man mit der Installation beginnt sollte man klären was für eine Distribution man benutzt. Ist sie RPM- oder DEB-basiert? Oder hat sie vielleicht noch eine andere Paketverwaltung bzw. gar keine? Mit dem Befehl
uname -r
kann man überprüfen, welche Kernelversion man verwendet. Um die Version des XFree herauszufinden, gibt man den Befehl
X -version
ein.
- Welche Radeon-Grafikkarte habe ich?
Handelt es sich überhaupt um eine Karte, die vom properitären ATI-Treiber unterstützt wird oder kommt der Treiber des DRI Projektes - zu finden unter [8] - in Frage. Desweiteren muss klar sein welchen AGP-Standard die Karte supported AGP 4x (v2.0) oder AGP 8x (v3.0).
- Welchen Chipsatz hat mein Mainboard?
Es muss geklärt werden was für einen Chipsatz das Mainboard verwendet. Problematisch sind unter Umständen Chipsätze die AGP v3.0 (auch bekannt als AGP 8x) beherrschen. AGP v3.0 wird erst vom Kernel 2.6 richtig unterstützt, vom 2.4er „generell“ nicht. Für nForce und VIA KT400 und 600 Chips bietet dieses Howto eine Lösung. Für den SiS 648, wie er in er unter anderem in den ALDI-PC's zum Einsatz kommt, hat Benjamin Kibies unter [9] eine Lösung veröffentlicht. Für alle weiteren Chipsätze, die AGP v3.0 supporten bietet dieses Howto bislang keine Lösung an. Hier sei stattdessen auf Kernel 2.6 verwiesen. Chips die nur AGP v2.0 (4x) verstehen sollten problemlos laufen (z. Bsp. VIA KT133 bis KT333). Es sei auch gesagt, dass es keinen Sinn hat im BIOS auf AGP 4x zu schalten, da auf jeden Fall das Protokoll AGP v3.0 benutzt wird, wenn Chipsatz und Grafikkarte es unterstützen.
- Habe ich die Kernelquellen installiert?
Wenn nicht, so sollte man dies zuerst machen.
- Wieviel Wissen habe ich über GNU/Linux?
Viele werden hier vermutlich schmunzeln. Aber es ist sehr wichtig seine eigenen Fähigkeiten kritisch zu hinterfragen und einzuschätzen. Jmd. für den Linux neu ist wird bei der Einrichtung des Treibers möglicherweise an seinen Grenzen stoßen. Als besonders kritisch für Neulinge sei hier das Compilieren des Kernels erwähnt. Bei einem nForce-Chipsatz ist dies unausweichlich. Hier muss einem klar sein, ob und wie viel Energie man darin investieren will Linux zu verstehen und seine Radeon-Karte mit 3D ans laufen zu bekommen.
Es geht los – die Installation unter Kernel 2.4.x:
Getestet und ausgeführt unter SuSE 8.2 und 9.0.
- Bisherigen Konfigurationsdatei in Sicherheit bringen: Die Datei /etc/X11/XF86Config oder auch /etc/X11/XF86Config-4 sollte vorher nach /etc/X11/XF86Config.bak kopiert werden. Sollte man sich mit der Konfiguration total verzetteln, kann man einfach diese Datei wieder zurückkopieren.
- Nachsehen, ob die Kernel-Sourcen installiert sind. Wenn nicht, sie mit YaST2 nachinstallieren. Achtung: Es muss sich um die Sourcen handeln, mit denen der Kernel compiliert wurde da sonst das Kernelmodul nicht gebaut werden kann! Hat man sich also selbst einen Kernel gebaut, so muss man die entsprechenden Sourcen dafür haben.
- Mit Strg+Alt+F1 (oder F2... F6) auf eine Konsole wechseln und als root einloggen
- Um sicherzugehen das die graphische Oberfläche nicht mehr läuft, sollte man von Runlevel 5 auf 3 wechseln. Dies geht mit der Eingabe von init 3
- Mit cd verzeichnisname in das Verzeichnis wechseln, indem sich das Paket befindet.
RPM: Das RPM-Paket wird mit dem Befehl
rpm -Uhv --force fglrx-glc22-4.3.0-3.2.8.i586.rpm
eingespielt. Man sollte auf jeden Fall bei der Installation die Option --force benutzen da es Probleme in Abhängigkeiten mit Mesa geben kann aufgrund dessen sich das Paket nicht installieren lässt.
DEB: Die Datei fglrx-glc22-4.3.0-3.2.0.i586.rpm muss zuerst mit dem Tool alien in ein DEB-Paket konvertiert werden. Der Befehl hierzu lautet: alien fglrx-glc22-4.3.0-3.2.0.i586.rpm (Hinweis: alien ist oft nicht installiert. In diesem Fall muss es zuerst mit apt-get install alien eingespielt werden). Anschließend kommt die Datei fglrx-glc22-4.3.0-3.2.0.i586.deb heraus. Dieses Paket lässt sich anschließend mit dem Befehl
dpkg -i fglrx-glc22-4.3.0-3.2.0.i586.deb
einspielen.
Man sollte nun die Ausgabe beobachten. Wenn alles in Ordnung ist wird das Kernelmodul fglrx gebaut, sowie einige andere Tools installiert. Wenn hier etwas schief geht liegt das meist an fehlenden Kernelsourcen oder man verwendet gerade einen anderen Kernel als den, für den das Modul gebaut werden soll.
- Das Programm fordert auf das Programm fglrxconfig auszuführen. Die sollte man jedoch noch nicht tun! Zuerst einmal sollte man prüfen ob das Modul fglrx bereits geladen ist. Das geht mit
lsmod | grep fglrx
Es sollte etwas ausgegeben werden wie:
fglrx 160840 173
Wird nichts ausgegeben, so ist das Modul nicht korrekt geladen. Einfach versuchen es mit
modprobe fglrx
nachzuladen (Achtung: Hier wird eine Warnung ausgegeben die aber lediglich der Information dient!) und anschließend noch einmal mit lsmod das Vorhandensein prüfen. Ist es noch immer nicht da, oder gibt es beim Laden einen Fehler ist etwas bei der Installation schief gelaufen. In diesem Fall geht es mit Schritt 7 weiter. Ansonsten weiter mit Schritt 8.
- Im nun folgenden werden einige Fehlerquellen beschrieben. Hier ist es von Vorteil wenn man bereits etwas mit Linux vertraut ist. Logfiles lesen, sowie sie verstehen kann. Die Erfahrung hat mir gezeigt, dass die meisten Probleme die modernen Chipsätze darstellen (s. o.)
a) Blockade durch anderes Modul: Möglicherweise blockiert ein anderes Modul bereits die Grafikkarte. Mit
lsmod | grep radeon
prüfen ob eine solches Modul vorhanden ist. Wenn ja,
rmmod radeon
und anschließend
modprobe fglrx
ausführen.
b) Die Kernel-Mismatch Meldung: Sie ist das Standard Problem bei SuSE. Sie sagt aus, dass man zwar Sourcen installiert hat, diese aber nicht exakt so heißen wie der Kernel der läuft. Deshalb weigert sich der ATI-Treiber compiliert zu werden. Das Problem ist, dass SuSE angepasste Kernel liefert die jeweils etwas anders benannt werden. Um dies zu beheben lässt man sich mit
uname -r
den Namen seines Kernels ausgeben. Es wird etwas augegeben wie:
2.4.21-99-athlon
Diesen merken, oder notieren. Nun die Datei /usr/src/linux/include/linux/version.h mit einem Editor öffnen. In der ersten Zeile findet sich dort eine solche Zeile:
#define UTS_RELEASE "2.4.21-99“
Diese muss in die Ausgabe von uname -r abgeändert werden. Als hier in:
#define UTS_RELEASE "2.4.21-99-athlon“
Anschließend die Datei speichern und nochmals Schritt 7.b) ausführen.
c) Chipsatz Desasster: Besitzt man ein Mainboard mit nForce, KT400 oder KT600 Chipsatz funktioniert AGP nicht, da der Chipsatz von agpgart nicht unterstützt wird.
nForce: Der nForce(2) wird ab der Kernelversion 2.4.22pre8 unterstützt. Um fglrx damit ans Laufen zu bekommen compiliert man sich einen solchen Kernel und wählt in der Kernelkonfiguration unter Characeter devices -> /dev/agpgart (AGP Support) M für Modul aus. Unterhalb dessen NVIDIA chipset Support für nForce. Mit diesem Optionen baut man sich dann den Kernel. Nach einem Reboot führt man
modprobe agpgart
aus. Mit das agpgart Modul automatisch geladen wird wenn man fglrx läd undman dies nicht immer machen muss kann man in die Datei /etc/modules.conf folgendes eintragen:
pre-install fglrx /sbin/modprobe "-k" "agpgart"
Nun geht man zu Schritt 8.e und fährt mit dem HowTo fort. Hat man keine Erfahrungen mit dem Bau eines Kernels so empfehle ich darauf zu warten bis der Distributor einen entsprechenden Kernel der Version 2.4.22 anbietet, da dieser meist Patches und Erweiterungen in den Kernel einspielt, die im Default-Kernel von kernel.org nicht enthalten sind. Wer dies dennoch nicht erwarten kann sollte sich das Kernel HowTo, zu finden via Google, zu Gemüte führen. Lasst euch gesagt sein: Ich gebe keine Anleitung dazu, wie ein Kernel gebaut wird und werde auch Fragen diesbezüglich nicht beantworten!
d) KT400/ KT600: Die Datei /lib/modules/fglrx/build_mod/agpgart_be.c editieren. Bei der Treiberversion 3.2.8 sich in die Zeile 6073 bewegen und die Zeile
via_generic_setup }, // AGP v2
in
via_kt400_setup }, // AGP v2
abändern, die Datei speichern und anschließend mit Schritt 8.e) fortfahren.
e) Neukompilierung: Mit
cd /lib/modules/fglrx/build_mod
ins Modulverzeichnis von fglrx wechseln. Dort das Script make.sh ausführen mit
./make.sh
und auf die Ausgaben (Fehler u.ä.) achten. Dann
cd ../
und dort
./make_install.sh
ausführen. Lässt sich das Modul noch immer nicht compilieren, so hat man auf jeden Fall ein Problem mit den Kernelsourcen (keine Sourcen installiert, andere Sourcen als die mit denen der aktuell benutzte Kernel gebaut wurde...).
f) Fehlersuche: Für die Fehlersuche sind folgende Dinge wichtig, was wird von dmesg ausgegeben nachdem versucht wurde das Modul fglrx zu laden. Welche Informationen stehen im Logfile /var/log/XFree* wenn X gestartet wurde.
- Nun einmal zur Sicherheit unter SuSE 8.2 das Script switch2xf86_glx ausführen. Unter SuSE 9.0 gibt es dieses Script nicht mehr – es sollte aber auch nicht notwendig sein. Bei Gentoo kann man
opengl-update ati
ausführen. Die Scripts dienen dazu die Libraries richtig zu linken. Dies ist besonders wichtig wenn zuvor eine Nvidia Karte eingebaut war. Ein händische Lösung findet sich unter[10]
- Nun das Script fglrxconfig ausführen und den Anweisungen am Bildschirm folgen. Bitte unter SuSE nicht SaX2 benutzen um die Grafikkarte zu konfigurieren. Dies wird fehlschlagen! Hat man einen nForce Chipsatz auf seinem Mainboard und Benutzt das agpgart Modul des Kernels editiert man die durch fglrxconfig erzeugte Datei /etc/X11/XF86Config-4 und sucht den Eintrag:
Option "UseInternalAGPGART" "yes"
und ändert das yes in ein no ab. Damit wird fglrx angewiesen nicht das eigene agpgart, sondern das des Kernels zu benutzen.
- Jetzt folgt der Test. Mit
init 5
wieder in die grafischer Oberfäche wechseln Alternativ kann man auch
startx
eingeben. Ging alles gut sollte sich X11 starten lassen und man kann testen, ob auch OpenGL wirklich funktioniert. Dazu öffnet man am besten ein Terminalfenster wie xterm und führt glxgears oder alternativ das ATI-Tools fgl_glxgears aus. Das Tool fglrxinfo sollte in etwa folgende Ausgabe liefern:
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: Radeon 9700 Pro Athlon (3DNow!)
OpenGL version string: 1.3 (X4.3.0-3.2.0)
glxinfo | grep rendering sollte diese Ausgabe bringen:
direct rendering: Yes
- Quake installieren und Spaß haben ;-)
Lesezeichen