SuSE Linux: Versionen ab 7.1
XFree86: Versionen ab 4.0.1
Die 3D-Funktionalität wird grundlegend durch die Module DRI, GLX und für die FireGL-Chipsätze mit den fireGL Modulen gewährleistet. Nachfolgend finden Sie eine Auflistung der Grafikkartentypen und welche 3D-Module von diesen benötigt werden:
Hersteller | Grafikkartentyp | Voraussetzung (Paket) | Modul | Script |
---|---|---|---|---|
3dfx |
|
|
dri / glx | switch2xf86_glx |
ATI |
|
xf86_glx | dri / glx dri / glx fglr200 / dri / glx |
switch2xf86_glx |
FireGL |
|
|
dri / glx fgl1 / dri / glx fgl23 / dri / glx |
switch2xf86_glx |
Intel |
|
xf86_glx | dri / glx | switch2xf86_glx |
Matrox |
|
xf86_glx | dri / glx | switch2xf86_glx |
NVIDIA |
|
NVIDIA_kernel(!) NVIDIA_GLX(!) |
glx | switch2nvidia_glx |
PowerVR |
|
powervr(!) | dri / glx | switch2xf86_glx |
(!) = proprietäre Treiber
Die 3D Funktionalität kann nach wie vor unter Linux Probleme verursachen und unter Umständen auch einen Systemstillstand nicht ausgeschlossen werden. Sollten Sie eine Instabilität des Systems, bedingt durch 3D, feststellen, ist davon abzuraten, 3D weiter einzusetzen und auf MESA Software Rendering auszuweichen.
Viele Hersteller bieten mittlerweile umfangreiche Dokumentationen zu ihren Treiber an, in denen unter anderem auch die verschiedenen Fehlermeldungen und Vorgehensweisen zur Problembehebung erläutert werden. Auch lassen sich im Internet diverse Hilfeforen zum Thema 3D finden.
Sollten Sie dennoch Fragen zur 3D Konfiguration haben oder Hilfe bei Problemlösungen suchen, können wir für derartige Probleme keinen kostenfreien Support anbieten. Jedoch können Sie unsere Advanced Support Services in einem solchen Fall zu Rate ziehen.
Um Ihre Hardware auf 3D Fähigkeit zu überprüfen, führen Sie bitte den Befehl 3Ddiag aus. Die Ausgabe teilt Ihnen folgendes mit:
Beispiel für 3Ddiag mit einer NV6 (NVIDIA TNT2 M64 Vanta). Die einzelnen Abschnitte werden entsprechend kommentiert:
Verifying 3D configuration based on XFree86 4 for 3D board "nVidia Coorporation Vanta [NV6] (10de@002d)":
Karteninformationen
Tests for package "NVIDIA_glx": package ... done. package files ... done. Tests for package "NVIDIA_kernel": package ... done. package files ... done.
Paketinformationen: Hier wird geprüft, ob die speziellen Treiber, die für die NVIDIA Karten notwendig sind, bereits installiert sind. Bedenken Sie bei NVIDIA Karten unbedingt, dass die Treiber, die während der Installation installiert werden, nur Dummy Treiber sind und keine 3D Funktionalität bieten. Die orignalen Treiber dürfen wir aus lizenzrechtlichen Gründen nicht auf unseren CDs anbieten. Die Treiber können Sie sich herunterladen unter:
http://www.nvidia.com/content/drivers/drivers.aspBenötigt werden die Pakete NVIDIA_kernel*.rpm und NVIDIA_GLX*.rpm.
Tests for correct OpenGL libraries/glx extensions: Symbolic Links ... done. /etc/sysconfig/3ddiag (SCRIPT_3D=switch2nvidia_glx) ... done.
Überprüfen der Links auf die OpenGL-Bibliotheken
Test for correct XFree86 version ... done.
Test der XFree86 Version
Tests for XFree86 configuration: Config File /etc/X11/XF86Config ... done. Driver ... failed! ================================================================ 3D Hardware acceleration is not used. To use 3D Hardware acceleration please specify the entry Driver "nvidia" in the Section "Device" of your /etc/X11/XF86Config.
Überprüfen der XF86Config. In diesem Fall wurde für die NV6 der spezielle NVIDIA Treiber nicht eingetragen, was 3Ddiag auch gleich bemängelt.
================================================================ Color Depth ... done. Extensions ... failed! ================================================================ 3D Hardware acceleration is not used. To use 3D Hardware acceleration please specify these entries Load "glx" in the Section "Module" of your /etc/X11/XF86Config. ================================================================ Options ... done.
Um 3D zu aktivieren, müssen wie bereits oben beschrieben, entweder das glx, dri (oder beide) sowie das fireGL Modul eingetragen werden. Die NVIDIA Karten arbeiten ausschliesslich mit dem glx Modul, welches Sie extra mit dem Paket NVIDIA_GLX*.rpm installieren müssen. Da glx nicht in die XF86Config eingetragen wurde, gibt 3Ddiag eine entsprechende Meldung aus.
----------------------- NOTE ----------------------------------- If 3D hardware OpenGL configuration is not stable enough, you should switch back to 'Mesa Software Rendering'. You can verify this configuration with the command "3Ddiag --mesasoft". ----------------------- NOTE ----------------------------------- Checking GLU/glut runtime configuration: GLU ... done (package mesaglu) glut ... done (package mesaglut)
Hinweise auf Mesasoft: Wenn Sie, wie breits erwähnt, festellen, dass Ihr System mit 3D instabil läuft, sollten Sie unbedingt auf das sogenannte Software Rendering wechseln. Dazu entfernen Sie alle Einträge zu speziellen Treibern oder 3D Modulen aus der Datei /etc/X11/XF86Config und führen Sie wie oben beschrieben das Kommando
3Ddiag --mesasoft
aus.
Sollte keine 3D taugliche Karte gefunden worden sein erscheint folgende Meldung:
================================================================ No 3D capable graphic chipset found! You should consider to use Mesa Software Rendering'. You can verify this configuration with the command 3Ddiag --mesasoft\ ================================================================
Alle Einträge für die 3D Funktionalität beschränken sich auf zwei Sections der /etc/X11/XF86Config, diese sind:
Die Sections sehen im einzelnen wie folgt aus:
Section "Module" Load "type1" Load "speedo" Load "extmod" Load "freetype" EndSection
Hier fügen Sie lediglich die Module hinzu, die Sie zum Betrieb Ihrer Grafikkarte benötigen. Die Section sieht anschliessend wie folgt aus:
Section "Module" Load "type1" Load "speedo" Load "extmod" Load "freetype" Load "glx" EndSection
Die Section "Device":
Section "Device" BoardName "RIVA TNT2 Model 64" BusID "1:0:0" Driver "nv" Identifier "Device[0]" Screen 0 VendorName "NVidia" EndSection
Der NVIDIA Treiber bietet eine grosse Anzahl an Konfigurationsmöglichkeiten, die im README erläutert werden. In jedem Fall sollten Sie sich dieses README durchlesen um die eine oder andere Funktion zu aktivieren oder zu deaktivieren. Nachfolgend ein Beispiel, wie eine solche Section "Driver" aussehen könnte:
Section "Device" BoardName "RIVA TNT2 Model 64" # Typ der Karte BusID "1:0:0" Driver "nvidia" # 3D Treiber Identifier "Device[0]" Option "SWCursor" # Bei Darstellungsproblemen # mit dem Mauscursor Screen 0 VendorName "NVidia" Option "NvAGP" "3" # Lädt zuerst NvAGP dann # agpgart. # Anschliessender ist ein # Reboot erforderlich! # Nähere Informationen finden # Sie im README Option "NoLogo" # Kein NVIDIA Logo wenn X # startet Option "CursorShadow" # Nette Spielerei EndSection
Eine weitere, manchmal wichtige Option ist Option "IgnoreEDID". Nach der Installation der NVIDIA Pakete finden Sie die Dokumentation zum Treiber unter /usr/share/doc/packages/nv_glx/README. Für Kyro Grafikkarten beachten Sie bitte auch den Artikel "Unterstützung für Grafikkarten mit Kyro-Chipsatz" (http://sdb.suse.de/de/sdb/html/wessels_kyro2.html).
Normalerweise werden z.B. für die NVIDIA Treiber, wenn Sie diese mit dem Yast Online Update (YOU) installieren, die Links auf die entsprechenden Bibliotheken automatisch gesetzt, da 3Ddiag auch in SuSEconfig inplementiert ist. Wenn Sie allerdings die Treiber mit dem RPM Kommando installieren und die XF86Config per Hand anpassen, müssen Sie die Links manuell setzen oder 3Ddiag ausführen.
Um die Links richtig zu setzen gibt es die switch-Kommandos, die Sie als user root ausführen. Da es noch weitere switch-Kommandos im System gibt, nachfolgend die drei, die für 3D zuständig sind:
switch2mesasoft switch2nvidia_glx switch2xf86_glx
Die Grundeinstellung nach einer Installation ist, dass die Links für die 3D Beschleunigung auf Software Rendering gesetzt sind. Alle Applikationen, die diese Funktion nutzen, greifen dabei auf den Link /usr/lib/libGL.so.1 zu, welcher auf die richtige OpenGL Bibliothek unter /usr/lib/GL/ geleitet wird (Die Darstellung weicht wg. der HTML-Darstellung etwas ab):
linux:~ # ll /usr/lib/libGL* lrwxrwxrwx 1 root root /usr/lib/libGL.so.1 -> GL/libGL.so.1.3.mesasoft lrwxrwxrwx 1 root root /usr/lib/libGLU.so.1 -> libGLU.so.1.3 -rwxr-xr-x 1 root root /usr/lib/libGLU.so.1.3
Wenn Sie nun die entsprechenden Scripte switch2xf86_glx oder switch2nvidia_glx ausführen, werden diese Dateien wie folgt umgeändert:
linux:/usr/lib/GL # switch2nvidia_glx linux:/usr/lib/GL # ll /usr/lib/libGL* lrwxrwxrwx 1 root root /usr/lib/libGL.so.1 -> GL/libGL.so.1.0.2960.nv_glx lrwxrwxrwx 1 root root /usr/lib/libGLU.so.1 -> libGLU.so.1.3 -rwxr-xr-x 1 root root /usr/lib/libGLU.so.1.3 lrwxrwxrwx 1 root root /usr/lib/libGLcore.so.1 -> libGLcore.so.1.0.2960.nv_glx -rwxr-xr-x 1 root root /usr/lib/libGLcore.so.1.0.2960.nv_glx
linux:/usr/lib/GL # switch2xf86_glx linux:/usr/lib/GL # ll /usr/lib/libGL* lrwxrwxrwx 1 root root /usr/lib/libGL.so.1 -> GL/libGL.so.1.2.xf86_glx lrwxrwxrwx 1 root root /usr/lib/libGLU.so.1 -> libGLU.so.1.3 -rwxr-xr-x 1 root root /usr/lib/libGLU.so.1.3 -rwxr-xr-x 1 root root /usr/lib/libGLcore.so.1.0.2960.nv_glx
Falls nun Probleme mit 3D auftauchen, sollten Sie switch2mesasoft ausführen, um alle Bibliotheken zurück auf Software Rendering zu stellen und die XF86Config in Ihren ursprünglichen Zustand zurückzusetzen.
Beim aktivieren der 3D Funktion müssen Sie darauf achten, dass die Benutzer, die 3D auf Ihrem System benutzen dürfen, in der Gruppe video eingetragen sind. Nur diese Benutzer haben die entsprechenden Rechte, um auf die entsprechenden Geräte (z.B. /dev/nvidia*, /dev/3dfx, /dev/dri/card0) zuzugreifen.
Um die User in die Gruppe video aufzunehmen, fügen Sie den Benutzernamen der entsprechenden Gruppe in der Datei /etc/group hinzu.
Um nun zu testen, ob alle Einstellungen richtig sind, stehen Ihnen eine Reihe von Programmen zur Verfügung, mit denen Sie die Funktionalität von 3D überprüfen:
Mit dem Kommando
glxinfo | grep rendering
prüfen Sie, ob 3D aktiviert ist. Die Ausgabe sollte den folgenden Wert zeigen:
direct rendering: Yes
damit Programme, die 3D benötigen, gestartet werden können.
Als Testprogramme können Sie folgende Applikationen benutzen:
Beispiel Gears: Starten Sie gears aus einem Terminalfenster (ALT+F2 -> xterm -> Ausführen). Es startet ein kleines Fenster mit drei drehenden Zahnrädern, im Terminalfenster werden Ihnen dann die fps-Werte (Frames per Second) angezeigt. Alles was unter 150fps liegt, kann nicht als Hardware beschleunigt angesehen werden. Sollte die Beschleunigung gar nicht aktiv sein, erhalten Sie folgende Meldung:
GLUT: Fatal Error in gears: OpenGL GLX extension not supported by display: :0.0
Paket | Dokumentation unter | Download / Serie | |
nVidia | NVIDIA_kernel*.rpm NVIDIA_GLX*.rpm |
/usr/share/doc/packages/nv_glx/README | http://www.nvidia.com/content/drivers/drivers.asp |
DRI | xf86*.rpm | /usr/X11R6/lib/X11/doc/README.DRI http://dri.sf.net |
Serie x |
Mesa/Glide | mesa3dfx | /usr/share/doc/packages/mesa3dfx/README.SuSE /usr/share/doc/packages/mesa/README.3DFX |
x3d |
Kyro | powervr | /usr/share/doc/powervr/README | http://www.powervr.com/Downloads.asp |
Beispielwerte für 3D beschleunigte Grafikkarten finden Sie ebenfalls in unserer Supportdatenbank unter "Beispielwerte für 3D beschleunigte Grafikkarten" (http://sdb.suse.de/de/sdb/html/wessels_3d_results.html).