问题
I had installed OpenGL and freeglut in Ubuntu 10.04 and it worked fine in 10.04 and 10.10. But after I upgraded to 11.04, the applications I've developed using OpenGL is not running properly. They're compiling without errors, but when I try to execute them, I get there errors:
For GLUT:
Xlib: extension "GLX" missing on display ":0.0".
freeglut (./a.out): OpenGL GLX extension not supported by display ':0.0'
For just OpenGL:
Xlib: extension "GLX" missing on display ":0.0".
main: X server has no OpenGL GLX extension
A few things I tried:
$glxgears Xlib: extension "GLX" missing on display ":0.0". Error: couldn't get an RGB, Double-buffered visual $glxinfo 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".
Edit: It is unlikely that this is because I don't have the graphics drivers as all I have is on board graphics.
This is my system graphics information from sysinfo
$sysinfo GRAPHIC CARD VGA controller Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07) (prog-if 00 [VGA controller]) Subsystem: Toshiba America Info Systems Device ff50
Edit 2: And it seems I have a driver installed for that.
$lshw -C display *-display:0 description: VGA compatible controller product: Mobile 4 Series Chipset Integrated Graphics Controller vendor: Intel Corporation physical id: 2 bus info: pci@0000:00:02.0 version: 07 width: 64 bits clock: 33MHz capabilities: msi pm vga_controller bus_master cap_list rom configuration: driver=i915 latency=0 resources: irq:44 memory:f4000000-f43fffff memory:d0000000-dfffffff ioport:1800(size=8)
Look at "configuration: driver="
回答1:
Those messages simply tell you, that your graphics drivers are not installed properly. GLX is the extension of the X11 protocol for making OpenGL work in X11 windows. There are 3 parts to a GLX enabled system:
- A kernel module, doing the talking to the GPU (this is either the Linux-Kernel DRM, or fglrx of ATI/AMD or nvidia from NVidia).
- A X server GLX extension module, talking to the kernel module, converting OpenGL operations into the GPU specifric commands.
- The client side libGL.so which also implements the GLX protocol. There's the DRI2 based libGL of Mesa, and the proprietary libGL.so of either ATI/AMD or NVidia.
For OpenGL to work properly those three components must be properly installed and loaded to work in harmony. If that's not the case you won't be able to use OpenGL (or only use a software rasterizer, which is not properly installed either on your system).
回答2:
You could need Bumblebee. But this is supported only for 12.04 and from 13.10 up. Oficial instructions here: https://wiki.ubuntu.com/Bumblebee
You need to open your terminal and enter the commands below.
If on 12.04.3, replace linux-headers-generic with linux-headers-generic-lts-raring.
sudo add-apt-repository ppa:bumblebee/stable
Enable the Universe and Multiverse repositories (for bumblebee and nvidia packages respectively).
sudo apt-get update
Install Bumblebee using the default proprietary nvidia driver:
sudo apt-get install bumblebee bumblebee-nvidia linux-headers-generic
Reboot
All should be ok now.
来源:https://stackoverflow.com/questions/8545291/opengl-glx-extension-not-supported