2014-04-14 14 views
5

Muszę uruchomić kod, zawiera on biblioteki GL/glut.h i GL/glew.h. kod zostanie skompilowany dobrze, przez instrukcję:Kod OpenGL nie działa: rozszerzenie GLGL OpenGL nie jest obsługiwane przez wyświetlacz

$ gcc test.c -lglut -lGLEW -lGL 

Ale kiedy go uruchomić, pojawia się następujący błąd:

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

Ten sam kod nie działa na moim innym systemem, który nagle zepsute, a nawet bez bootowania, więc MUSZĘ zrobić to na tym.

Wyjście $ glxinfo jest:

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

Również wyjście $ lspci jest:

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) 

Proszę mi pomóc, myślę, sterowniki ekranu NVIDIA nie są poprawnie zainstalowane , ale nie mogę rozwiązać tego problemu. Mam również zainstalowany CUDA.

+0

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

Odpowiedz

1

Nie jest to problem programistyczny, ale problem z konfiguracją systemu. Zasadniczo mówi ci, że konfiguracja twojego systemu nie obsługuje OpenGL.

GLX to rozszerzenie protokołu X11 używane do konfigurowania kontekstów OpenGL na rysunkach X11. Jest to jednak rozszerzenie zapewniane przez sterownik urządzenia. Używasz karty NVidia. Domyślam się, że jest to waniliowa instalacja systemu, który nie instaluje automatycznie zastrzeżonych sterowników nvidia i nie konfiguruje otwartych sterowników nouveau.

Serwer X11 prawdopodobnie używa sterownika nv lub fbdev lub vesa; żaden z nich nie obsługuje OpenGL/GLX.

Rozwiązanie: Zainstaluj i skonfiguruj odpowiedni sterownik. Albo nouveau, albo sterowniki, które możesz pobrać z http://www.nvidia.com/object/unix.html i zainstalować.

Mówisz, że masz zainstalowane CUDA, musisz skonfigurować sterownik nvidia w pliku /etc/X11/xorg.conf, ponieważ jeśli nouveau lub nv są zainstalowane, to poprzedź je.

Należy również pamiętać, że za każdym razem, gdy wykonujesz aktualizację jądra, musisz ponownie zainstalować sterowniki CUDA.