2014-04-14 16 views
5

Ich muss einen Code ausführen, enthält die Bibliotheken GL/glut.h und GL/glew.h. Der Code wird gut zusammengestellt, die durch den Befehl:OpenGL-Code nicht ausgeführt: OpenGL GLX-Erweiterung wird von der Anzeige nicht unterstützt

$ gcc test.c -lglut -lGLEW -lGL 

Aber wenn ich es laufen lasse, erhalte ich folgende Fehlermeldung:

freeglut (./a.out): OpenGL GLX extension not supported by display ':0.0' 

Der gleiche Code hat funktioniert auf meinem anderen System, das plötzlich hat zusammengebrochen und nicht einmal booten, also muss ich es auf diesem einen machen.

Die Ausgabe von $ glxinfo ist:

name of display: :0.0 
Xlib: extension "GLX" missing on display ":0.0". 
Xlib: extension "GLX" missing on display ":0.0". 
Xlib: extension "GLX" missing on display ":0.0". 
Xlib: extension "GLX" missing on display ":0.0". 
Xlib: extension "GLX" missing on display ":0.0". 
Error: couldn't find RGB GLX visual or fbconfig 

Xlib: extension "GLX" missing on display ":0.0". 
Xlib: extension "GLX" missing on display ":0.0". 
Xlib: extension "GLX" missing on display ":0.0". 
Xlib: extension "GLX" missing on display ":0.0". 
Xlib: extension "GLX" missing on display ":0.0". 
Xlib: extension "GLX" missing on display ":0.0". 
Xlib: extension "GLX" missing on display ":0.0". 

Auch lspci die Ausgabe von $ ist:

00:00.0 Host bridge: Intel Corporation Device 0150 (rev 09) 
00:01.0 PCI bridge: Intel Corporation Device 0151 (rev 09) 
00:16.0 Communication controller: Intel Corporation Cougar Point HECI Controller #1 (rev 04) 
00:1a.0 USB Controller: Intel Corporation Cougar Point USB Enhanced Host Controller #2 (rev 04) 
00:1b.0 Audio device: Intel Corporation Cougar Point High Definition Audio Controller (rev 04) 
00:1c.0 PCI bridge: Intel Corporation Cougar Point PCI Express Root Port 1 (rev b4) 
00:1c.5 PCI bridge: Intel Corporation Cougar Point PCI Express Root Port 6 (rev b4) 
00:1d.0 USB Controller: Intel Corporation Cougar Point USB Enhanced Host Controller #1 (rev 04) 
00:1f.0 ISA bridge: Intel Corporation Device 1c5c (rev 04) 
00:1f.2 SATA controller: Intel Corporation Cougar Point 6 port SATA AHCI Controller (rev 04) 
00:1f.3 SMBus: Intel Corporation Cougar Point SMBus Controller (rev 04) 
01:00.0 VGA compatible controller: nVidia Corporation GT218 [GeForce 210] (rev a2) 
01:00.1 Audio device: nVidia Corporation High Definition Audio Controller (rev a1) 
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06) 

Bitte helfen Sie mir, ich glaube, die nvidia-Display-Treiber nicht richtig installiert , aber ich kann dieses Problem nicht lösen. Ich habe auch CUDA installiert.

+0

bezogen http://stackoverflow.com/questions/8545291/opengl-glx-extension-not-supported?rq=1 –

Antwort

1

Dies ist kein Programmierproblem, sondern ein Systemkonfigurationsproblem. Im Wesentlichen sagt es Ihnen, dass die Konfiguration Ihres Systems OpenGL nicht unterstützt.

GLX ist die X11-Protokollerweiterung, die zum Einrichten von OpenGL-Kontexten auf X11-Zeichen verwendet wird. Dies ist jedoch eine Erweiterung, die vom Gerätetreiber bereitgestellt wird. Sie verwenden eine NVidia-Karte. Meine Vermutung ist, dass dies eine Vanilla-Installation eines Systems ist, das die proprietären nvidia-Treiber nicht automatisch installiert und weder die offenen nouveau-Treiber konfiguriert.

So verwendet der X11-Server wahrscheinlich entweder den oder den fbdev oder den vesa Treiber; Keines davon unterstützt OpenGL/GLX.

Lösung: Installieren und konfigurieren Sie den richtigen Treiber. Entweder nouveau oder die Treiber können Sie von http://www.nvidia.com/object/unix.html herunterladen und installieren.

Sie sagen, Sie haben CUDA installiert, dann müssen Sie den nvidia Treiber in der /etc/X11/xorg.conf Datei konfigurieren, da wenn Nouveau oder NV installiert sind auch die vorangestellt werden.

Denken Sie auch daran, dass Sie jedes Mal, wenn Sie ein Kernel-Update durchführen, die CUDA-Treiber neu installieren müssen.