Anleitung für Hardware 3D-Beschleunigung
1.
Einführung
Was ist 3D-Hardware-Beschleunigung und wofür brauche ich es?
Mit 3D-Hardware-Beschleunigung wird dreidimensionales Rendern vom Prozessor der
Grafikkarte übernommen, anstatt wertvolle Rechenleistung der CPU für das
Darstellen von 3D-Bildern abzuzweigen. Dies wird auch als
"Hardware-Beschleunigung" bezeichnet, im Gegensatz zur
"Software Beschleunigung", bei der die CPU mit Hilfe der Mesa
Software-Bibliotheken das Zeichnen übernimmt. Während Xorg in der Regel
2D-Hardware-Beschleunigung unterstützt, gibt es bei der 3D-Beschleunigung
einige Lücken. Spiele, 3D-CAD und Modellierungen kommen in der Regel nicht ohne
3D-Hardware-Beschleunigung aus.
Wie erhalte ich 3D-Hardware-Beschleunigung?
In den meisten Fällen existieren sowohl binäre als auch Open-Source-Treiber.
Letztere sind zu bevorzugen, da wir nun einmal Linux verwenden
und Open Source eines unserer Hauptprinzipien ist. In machen Fällen
sind binäre Treiber oft die einzige Möglichkeit, insbesondere wenn Ihre
Grafikkarte so neu ist, dass noch keine Open-Source-Treiber geschrieben wurden,
die die Features der Karte unterstützen. Binäre Treiber sind
x11-drivers/nvidia-drivers für nVidia-Karten und
x11-drivers/ati-drivers für AMD/ATI-Karten.
Was ist DRI?
Die Direct Rendering
Infrastruktur, besser bekannt unter dem Kürzel DRI ist eine effiziente
Schnittstelle, die direkten und dennoch sicheren Zugang zur Grafikhardware
ermöglicht. Sie beinhaltet Änderungen am X Server, verschiedenen
Client-Bibliotheken und dem Kernel selbst. Hauptverwendungszweck für DRI sind
schnelle OpenGL Implementierungen.
Was ist der DRM und was verbindet es mit dem normalen Xorg?
Der DRM (Direct Rendering Manager) ist eine Erweiterung zu Xorg, die 3D
Hardware-Beschleunigung für bestimmte Karten bereitstellt, indem es die
entsprechenden Kernelmodule für Direct Rendering beinhaltet.
Zweck dieser Dokumentation
Diese Dokumentation richtet sich an alle, die Direct Rendering in der Xorg
Standardumgebung nicht zum Laufen bekommen.
Der DRM funktioniert mit den folgenden Treibern:
- 3dfx
- intel
- matrox
- nouveau
- rage128
- radeon
- mach64
- sis300
- via
Weitere Informationen und Dokumentation erhalten Sie auf der DRI-Homepage.
2.
Installation von Xorg und Kernel-Konfiguration
Installation von Xorg
Lesen Sie bitte unseren Leitfaden zur Xorg Konfiguration um Xorg
zu installieren und einzurichten.
Kernelkonfiguration
Zunächst sollte der Chipsatz sondiert werden und die Unterstützung
für diesen aktiviert werden.
Befehlsauflistung 2.1: Prüfen des AGP-Chipsatzes |
# emerge pciutils; lspci | grep AGP
# 00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)
|
Wenn Ihr Chipsatz vom Kernel nicht unterstützt wird, könnten Sie unter
Umständen Erfolg damit haben agp=try_unsupported als Kernelparameter
zu übergeben. Dies wird Intels generische Routinen für AGP Unterstützung
verwenden. Um diesen Parameter hinzuzufügen editieren Sie bitte Ihre
Bootloader Konfigurationsdatei!
Dies sollte mit meisten, wenn nicht allen, Kerneln funktionieren. In diesem Fall
erfolgte die Konfiguration unter einem gentoo-sources Standardkernel.
Befehlsauflistung 2.2: Konfigurieren des Kernels |
# ls -l /usr/src/linux
lrwxrwxrwx 1 root root 22 2007-02-14 20:12 /usr/src/linux -> linux-2.6.18-gentoo-r4
# cd /usr/src/linux
# make menuconfig
|
Befehlsauflistung 2.3: Optionen in make menuconfig |
Processor type and features --->
<*> MTRR (Memory Type Range Register) support
Device drivers --->
Graphics support --->
<M> /dev/agpgart (AGP Support) --->
<M> Intel 440LX/BX/GX, I8xx and E7x05 support
<M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
<M>
|
Den Kernel kompilieren und installieren
Befehlsauflistung 2.4: Kompilieren und Installieren des Kernels |
# make && make modules_install
|
Vergessen Sie nicht die grub.conf oder lilo.conf
anzupassen und /sbin/lilo auszuführen, wenn Sie LILO benutzen.
Hinzufügen Ihres Benutzes zur Gruppe video
Als Nächstes fügen Sie Ihren Benutzer zur Gruppe video hinzu, wie im
link="/doc/de/handbook">Handbuch beschrieben:
Befehlsauflistung 2.5: Hinzufügen eines Benutzers zur Gruppe video |
# gpasswd -a username video
|
3.
Konfiguration von Direct Rendering
Konfiguration von Xorg
Hoffentlich genügt es, wenn Sie Ihren Benutzer zur Gruppe video
hinzufügen, um Direct-Rendering zu aktivieren. Es kann aber auch sein, dass Sie
eine Datei in /etc/X11/xorg.conf.d/ erstellen müssen. Sie können
Sie benennen, wie Sie wollen; stellen Sie nur sicher, dass sie mit
.conf endet. Öffnen Sie Ihren Lieblingstexteditor und erstellen
Sie eine Datei wie folgt:
Befehlsauflistung 3.1: /etc/X11/xorg.conf.d/10-dri.conf |
Section "Device"
Driver "radeon"
EndSection
Section "dri"
Mode 0666
EndSection
|
Änderungen in /etc/conf.d/modules
Sie werden den Modulnamen, den Ihre Karte verwendet, zu
/etc/conf.d/modules hinzufügen müssen um
sicherzustellen, dass das Modul automatisch beim Systemstart geladen wird.
Befehlsauflistung 3.2: /etc/conf.d/modules editieren |
modules="intel-agp"
|
Notiz:
Wenn Sie agpgart als Modul kompiliert haben, werden Sie es auch in
/etc/conf.d/modules hinzufügen müssen.
|
4.
3D Beschleunigung testen
Neustart mit dem neuen Kernel
Nachdem Sie Ihren Computer neu gestartet haben und sich als normaler Benutzer
angemeldet haben, wollen wir schauen, ob Direct Rendering aktiviert wurde und
wie gut es funktioniert. Stellen Sie bitte vor Ausführen dieser Befehle sicher,
dass das Paket mesa-progs installiert ist, da glxinfo und
glxgears in diesem enthalten sind.
Befehlsauflistung 4.1: Rendering testen |
$ startx
$ glxinfo | grep rendering
direct rendering: Yes
$ glxgears
|
Notiz:
Die FPS könnten durch die Aktualisierungsrate Ihres Monitors eingeschränkt
sein. Beachten Sie dies, falls glxgears lediglich 70-100 FPS berichtet.
games-fps/ut2004-demo oder andere 3D-Spiele sind bessere Werkzeuge zum
Benchmarken, da sie Leistungsergebnisse zurückgeben, welche im Alltag auftreten.
|
Das Meiste aus Direct Rendering herausholen
Wenn Sie weitere Features aktivieren wollen, sei es der Performance halber oder
aus anderen Gründen, sollten Sie die Feature Matrix auf
der DRI-Webseite oder die Feature
Liste auf Sourceforge konsultieren.
5.
Problembehebung
Es funktioniert einfach nicht. Ich habe kein Rendering und ich weiß
nicht warum.
Versuchen Sie ein modprobe radeon vor dem Starten des X-Servers
(ersetzen Sie radeon durch den Namen ihres Treibers).
Versuchen Sie außerdem agpgart direkt in den Kernel zu kompilieren, anstatt
ein Modul zu erstellen.
Beim Ausführen von startx erhalte ich folgenden Fehler:
"[drm] failed to load kernel module agpgart"
Dies erscheint immer, wenn agpgart direkt in den Kernel einkompiliert wird.
Sie können dies getrost ignorieren.
Ich besitze eine Radeon und möchte TV-Out nutzen
Die ursprünglich vom GATOS Projekt
entwickelten Treiber wurden in Xorgs Codebasis eingebunden. Sie brauchen
nichts besonderes, um TV-Out nutzen zu können;
x11-drivers/xf86-video-ati wird gut funktionieren.
Es funktioniert immer noch nicht. Meine Karte ist so neu und
megaobercool, dass sie nicht unterstützt wird.
Probieren Sie die binären Treiber aus. Für AMD-Karten, benutze Sie
ati-drivers; eine Auflistung gibt es unter
http://support.amd.com/us/gpudownload/Pages/index.aspx. Sollte
es für Ihre Karte noch keine Treiber geben, probieren Sie fbdev. Er ist langsam,
funktioniert aber.
Ich habe eine PCI-Karte, die nicht funktionieren will. Hilfe!
Erstellen Sie eine Konfigurationsdatei in /etc/X11/xorg.conf.d/;
benennen Sie sie, wie Sie wollen, so lange sie mit .conf endet.
Schreiben Sie folgendes hinein:
Befehlsauflistung 5.1: /etc/X11/xorg.conf.x/10-pcimode.conf |
Section "Device"
Option "ForcePCIMode" "True"
EndSection
|
6.
Referenzen
- http://forums.gentoo.org/viewtopic.php?t=46681
- http://forums.gentoo.org/viewtopic.php?t=29264
- http://dri.freedesktop.org/
- http://www.retinalburn.net/linux/dri_status.html
Feedback
Weitere Vorschläge, Fragen, etc. können an Donnie Berkholz gerichtet werden.
Die Inhalte dieses Dokuments sind, sofern nicht explizit
anders genannt, unter der Creative Commons -
Namensnennung / Weitergabe Lizenz lizenziert. Die Gentoo Name and Logo
Usage Guidelines treffen zu.
|