Das Wiki ist im Nur-Lese-Modus, es wird durch ein neues Wiki ersetzt. Mehr Infos....

Index

Freien Treiber für ATI Karten installieren

Der freie Treiber wird mit dem Paket xserver-xorg-video-ati installiert.

root@debian# aptitude install xserver-xorg-video-ati

In der xorg.conf dein Eintrag unter Device in "ati" zu ändern.

root@debian# nano /etc/X11/xorg.conf
Section "Device"
        Identifier      "Standardgrafikkarte"
        Driver          "ati"
        BusID           "PCI:1:0:0"
EndSection

3D-Unterstützung

Um die 3D-Unterstützung zu aktivieren, müssen folgende Pakete installiert werden:

root@debian# aptitude install libgl1-mesa-dri libgl1-mesa-glx

Nach einem Neustart des X-Servers steht die 3D Beschleunigung zur Verfügung

Installation des freien Treibers aus dem CVS

(muss noch an neuere Debian Version angepasst werden) 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
EndSection

Der 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

ati_free (last edited 2008-01-03 15:01:31 by goeb)