3D unter SuSE-Linux

Supportdatenbank (wessels_3d)
Bezieht sich auf

SuSE Linux: Versionen ab 7.1
XFree86: Versionen ab 4.0.1

Anliegen

Sie möchten die 3D-Fähigkeiten Ihrer Grafikkarte auch unter SuSE Linux nutzen um verschiedene Applikationen zu starten, die diese Funktion benötigen bzw. ausnutzen.

Vorgehen

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
  • Voodoo Graphics
  • Voodoo2
  • Voodoo Banshee
  • Voodoo 3/4/5
  • xf86_glx
  • mesa3dfx
  • glide_vg
    (voodoo graphics)
  • glide_vg2 (voodoo2)
dri / glx switch2xf86_glx
ATI
  • Rage128er Serie
  • Radeon Serie
xf86_glx dri / glx
dri / glx
fglr200 / dri / glx
switch2xf86_glx
FireGL
  • FireGL 1
  • FireGL 2/3/4
  • FireGL 8700/8800
  • xf86_glx

  • xfiregl23 für
    Diamond FireGL Karten

  • xfglr200(!)
    für 8700/8800
    (Serie x)
dri / glx
fgl1 / dri / glx
fgl23 / dri / glx
switch2xf86_glx
Intel
  • i810
  • i815
  • i830
xf86_glx dri / glx switch2xf86_glx
Matrox
  • G200
  • G400
  • G450
  • G550
xf86_glx dri / glx switch2xf86_glx
NVIDIA NVIDIA_kernel(!)
NVIDIA_GLX(!)
glx switch2nvidia_glx
PowerVR
  • Kyro
  • Kyro2
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.

Probleme und Support

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.

Überprüfen der Hardware mit 3Ddiag (ab SuSE Linux 7.3)

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.asp

Benö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\
================================================================

Einträge in der XF86Config

Alle Einträge für die 3D Funktionalität beschränken sich auf zwei Sections der /etc/X11/XF86Config, diese sind:

  1. Section "Module"
  2. Section "Device"

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).

Setzen der Links für die OpenGL-Bibliotheken

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.

Benutzerrechte

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.

Testen der 3D Funktion

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

Dokumentation

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

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).


Siehe auch:
o Konfiguration des X Servers mit SaX2
o Konfiguration des X Servers mit SaX2 (ab 8.1)
o Unterstützung für Grafikkarten mit Kyro-Chipsatz

Stichwörter: 3D, GLX, DRI, FIREGL, NVIDIA, 3DFX, VOODOO, GEFORCE, BANSHEE, RADEON, KYRO, ATI, RADEON, ALLINWONDER, MATROX

Kategorien: XFree86 , Grafikkarten , Fenstermanager

SDB-wessels_3d, Copyright SuSE Linux AG, Nürnberg, Germany - Version: 16. Jul 2002
SuSE Linux AG - Zuletzt generiert: 08. Nov 2002 von wessels (sdb_gen 1.40.0)