Installation von Opensource Treibern für ATI r300 Karten (veraltet)
Warnung: Die Informationen hier sind veraltet!
Debian 4.0 »Etch« bietet Opensource 3D Unterstützung bis zur Radeon 9000-Serie (r300). Mit Debian 5.0
»Lenny« kommt Unterstützung für die x100-Serie (r400) hinzu. In beiden Fällen benötigt man das Paket libgl1-mesa-dri.
Installiert man unter »Lenny« Mesa 7.2 manuell, so erhält man auch Unterstützung für die X1000-Serie (r500). Dies funktioniert jedoch nicht nach dieser Anleitung.
Warnung: Die r300 Treiber sind experimentell und können zum Einfrieren des Computers, Abstürzen von Programmen oder zum Zufrieren der Hölle führen.
1.Vorraussetzungen
Um die r300 Treiber installieren zu können braucht man ein Debian SID, mit einem Kernel in dem der drm Support deaktiviert wurde oder als Modul vorhanden ist. Getestet habe ich die Treiber mit dem 2.6.15.4 Vanilla Kernel, aber prinzipiell sollte es auch mit einem Debian Kernel funktionieren. Um den Treiber installieren zu können müssen die Kernelsources installiert sein. Außerdem sollten die *-dev Pakete von xorginstallier sein, sowie make und automake. Die Treiber funktionieren sowohl mit xorg 6.9 aus SID als auch mit xorg 7.0 aus experimental.
2. cvs Mesa und drm
Für den Treiber braucht man die neusten Versionen von Mesa und drm, welche man mit cvs erhält (das Paket cvs muss installiert sein):
cvs -d:pserver:anonymous@pdx.freedesktop.org:/cvs/mesa co Mesa
Bei der Passwortabfrage einfach mit Return bestätigen, es wird kein Passwort verlangt. Dann lädt man die Mesa Quellen herunter:
cvs -z3 -d:pserver:anonymous@pdx.freedesktop.org:/cvs/mesa co Mesa
Nun lädt man drm auf die gleiche weise herunter:
cvs -d:pserver:anonymous@anoncvs.freedesktop.org:/cvs/dri login cvs -z3 -d:pserver:anonymous@anoncvs.freedesktop.org:/cvs/dri co drm
Nun hat man zwei Verzeichnisse drm und Mesa, die im gleichen Ordner liegen sollten.
2. libdrm bauen
Um die Mesa Quellen zu kompilieren braucht man libdrm die so erstellt wird: Wechsel in das drm-Verzeichniss und rufe das autogen.sh Skript auf
cd drm ./autogen.sh
Dann installiert man die libdrm mit dem klassischen Dreisatz:
./configure make make install
3. drm Kernelmodul bauen
Bei einem 2.6 Kernel wechselt man in das Verzeichnis drm/linux-core und ruft make auf
make DRM_MODULES="radeon"
Dann kopiert man die entstandenen Module drm.ko und radeon.ko in das modules Verzeichnis
mkdir /lib/modules/`uname -r`/kernel/drivers/char/drm (falls noch nicht vorhanden) cp drm.ko /lib/modules/`uname -r`/kernel/drivers/char/drm cp radeon.ko /lib/modules/`uname -r`/kernel/drivers/char/drm depmod -a
Nun löscht man noch ein etwa vorhandenes fglrx Modul aus der /etc/modules, da dies das Laden des radeon Moduls verhindert.
4. Mesa bauen
Damit man Mesa kompilieren kann muss man zunächst die Datei /usr/X11R6/include/GL/glxproto.h editieren. Füge nach Zeile 2389 noch zwei Zeilen an:
#define X_GLXvop_HyperpipeConfigSGIX 65552 #define X_GLXvop_DestroyHyperpipeConfigSGIX 65553 #define X_GLXvop_BindTexImageEXT 5152 (neu) #define X_GLXvop_ReleaseTexImageEXT 5153 (neu)
Falls ihr die xorg 7.0 Pakete aus experimental benutzt ist ein editieren der Header-Datei unnötig.
Dann setzt man in der Datei Mesa/configs/linux-dri noch ein die dris die zu bauen sind:
DRI_DIRS = r300
Dann ruft man im Mesa Verzeichnis make linux-dri-x86 (für eine x86 Architektur) auf.
make linux-dri-x86
Andere Architekturen (x86-64, ppc) sind auch möglich aber nicht von mir getestet. Nun hat man ein Verzeichnis Mesa/lib das folgende Dateien enthalten sollte
lrwxrwxrwx 1 bert bert 10 2006-03-06 14:01 libGL.so -> libGL.so.1 lrwxrwxrwx 1 bert bert 12 2006-03-06 14:01 libGL.so.1 -> libGL.so.1.2 -rwxr-xr-x 1 bert bert 361124 2006-03-06 14:06 libGL.so.1.2 lrwxrwxrwx 1 bert bert 11 2006-03-06 14:03 libGLU.so -> libGLU.so.1 lrwxrwxrwx 1 bert bert 20 2006-03-06 14:03 libGLU.so.1 -> libGLU.so.1.3.060500 -rwxr-xr-x 1 bert bert 470324 2006-03-06 14:06 libGLU.so.1.3.060500 lrwxrwxrwx 1 bert bert 12 2006-03-06 14:04 libglut.so -> libglut.so.3 lrwxrwxrwx 1 bert bert 16 2006-03-06 14:04 libglut.so.3 -> libglut.so.3.7.1 -rwxr-xr-x 1 bert bert 226104 2006-03-06 14:06 libglut.so.3.7.1 lrwxrwxrwx 1 bert bert 11 2006-03-06 14:04 libGLw.so -> libGLw.so.1 lrwxrwxrwx 1 bert bert 15 2006-03-06 14:04 libGLw.so.1 -> libGLw.so.1.0.0 -rwxr-xr-x 1 bert bert 11112 2006-03-06 14:06 libGLw.so.1.0.0 -rwxr-xr-x 1 bert bert 2064324 2006-03-06 14:06 r300_dri.so -rwxr-xr-x 1 bert bert 2170704 2006-03-06 14:06 radeon_dri.so
Nun kopiert man die Dateien an die entsprechenden Orte (nicht vergessen die alten Dateien zu sichern)
cp libGL.so.1.2 /usr/X11R6/lib/libGL.so.1.2 cp libGLU.s.o.1.3.060500 /usr/X11R6/lib/libGLU.so.1.3 cp r300_dri.so /usr/X11R6/lib/modules/dri/r300_dri.so
Falls ihr xorg 7.0 aus experimental benutzt dann kopier ihr die Dateien so:
cp libGL.so.1.2 /usr/lib/libGL.so.1.2 cp libGLU.s.o.1.3.060500 /usr/lib/libGLU.so.1.3 cp r300_dri.so /usr/lib/xorg/modules/dri/r300_dri.so
5. xorg.conf bearbeiten
Damit der Treiber läuft muss man jetzt noch die Konfiguration des Xservers anpassen. Editiert die Section "Device" der /etc/x11/xorg.conf folgendermassen:
Section "Device"
Identifier "ATI Technologies, Inc. Radeon R300 ND [Radeon 9700 Pro]"
Driver "radeon"
Option "RenderAccel" "true"
Option "AGPMode" "4"
Option "AGPFastWrite" "off"
Option "AccelMethod" "exa"
BusID "PCI:1:0:0"
VideoRam 131072
EndSectionDer Identifier und der VideoRam sollten natürlich an eure Karte angepasst sein. Die wichtigste Option ist "AGPFastWrite" "off" , "on" führt hier 100% zum Einfrieren. Der AGPMode sollte ebenfalls an eure Karte und Mainboard angepasst werden.
Dann müsst ihr noch die drm und radeon Module mit modprobe laden
modprobe drm modprobe radeon
und den Xserver neu starten. Wenn alles glatt gegangen ist enthält die Ausgabe von glxinfo diese Informationen:
direct rendering: Yes . . OpenGL vendor string: Tungsten Graphics, Inc. OpenGL renderer string: Mesa DRI R300 20040924 AGP 4x x86/MMX/SSE2 TCL OpenGL version string: 1.3 Mesa 6.5
6. Benchmarks
Wie schlägt sich der r300 Treiber im Vergleich zum fglrx Treiber?
Die folgenden Tests wurden mit dieser Hardware durchgeführt: Pentium 4(Northwood) 2.53 GHz, Mainboard Asus P4PE, 512 MB Ram, Sapphire Radeon 9700 pro.
Quake 3 und Enemy Territory sind mit dem r300 Treiber beide spielbar, aber subjektiv weniger flüssig. Doom 3 startet mit dem r300 Treiber (noch) nicht. glxgears liefert mitdem r300 Treiber 2750 fps, mit fglrx 5500 fps (Jaaa, das ist kein Benchmark) Der OpenGL Bildschirmschoner Euphorie läuft mit fglrx flüssig, mit dem r300 Treiber ruckelt er und es kommt zu Graphikfehlern.
7. Links
http://www.mesa3d.org http://dri.freedesktop.org/wiki/Building