不支持OpenGL GLX扩展

我在Ubuntu 10.04中安装了OpenGL和Freeglut,在10.04和10.10中工作正常。 但是在升级到11.04之后,我使用OpenGL开发的应用程序运行不正常。 他们正在编译没有错误,但是当我尝试执行它们时,我得到的错误:

对于GLUT:

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

仅用于OpenGL:

 Xlib: extension "GLX" missing on display ":0.0". main: X server has no OpenGL GLX extension 

我尝试了几件事情:

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

编辑:这是不可能的,因为我没有graphics驱动程序,因为我有所有的graphics。

这是来自sysinfo的系统graphics信息

 $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 

编辑2:它似乎我有一个驱动程序安装的。

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

看看“configuration:驱动程序=”

这些消息只是告诉你,你的图形驱动程序安装不正确。 GLX是X11协议的扩展,用于在X11窗口中运行OpenGL。 启用GLX的系统有3个部分:

  • 一个内核模块,与GPU交谈(这是Linux内核DRM,或ATI / AMD的fglrx或NVidia的nvidia)。
  • AX服务器GLX扩展模块,与内核模块交谈,将OpenGL操作转换为GPU指令命令。
  • 客户端libGL.so也实现了GLX协议。 有Mesa的基于DRI2的libGL,以及ATI / AMD或NVidia的专有libGL.so。

为了使OpenGL正常工作,这三个组件必须正确安装并加载才能协调工作。 如果不是这种情况,您将无法使用OpenGL(或仅使用软件光栅化程序,该程序没有正确安装在您的系统上)。

你可能需要大黄蜂。 但这仅支持12.04和13.10。 官方说明在这里: https : //wiki.ubuntu.com/Bumblebee

您需要打开您的终端并输入下面的命令。

如果在12.04.3上,用linux-headers-generic- lts raring替换linux-headers-generic

sudo add-apt-repository ppa:bumblebee/stable

启用Universe和Multiverse存储库(分别为bumblebee和nvidia包)。

sudo apt-get update

使用默认的专有nvidia驱动安装Bumblebee:

sudo apt-get install bumblebee bumblebee-nvidia linux-headers-generic

重启

现在一切都应该好了。