不支持OpenGL GLX扩展

Spa*_*owG 12 opengl ubuntu glut xlib 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'
Run Code Online (Sandbox Code Playgroud)

对于OpenGL:

Xlib:  extension "GLX" missing on display ":0.0".
main: X server has no OpenGL GLX extension
Run Code Online (Sandbox Code Playgroud)

我试过的一些事情:

$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".
Run Code Online (Sandbox Code Playgroud)

编辑:这不太可能是因为我没有图形驱动程序,因为我拥有的只是板载图形.

这是我从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
Run Code Online (Sandbox Code Playgroud)

编辑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)
Run Code Online (Sandbox Code Playgroud)

看看"配置:驱动="

dat*_*olf 9

这些消息只是告诉您,您的图形驱动程序未正确安装.GLX是X11协议的扩展,用于使OpenGL在X11窗口中工作.启用GLX的系统有3个部分:

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

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

  • @Ekevoo:我们可以排除最后一个`libgl1-mesa-glx`就是这样,它首先检测到一个问题(它正在实现GLX客户端,它告诉你,它在服务器上缺少GLX功能) ).看看`/ var/log/Xorg.<n> .log`文件.X服务器告诉你那里缺少什么.忽略警告(WW),因为总会有一些警告,寻找错误(EE). (3认同)
  • @SparrowG:lshw只告诉你要安装哪个驱动程序,而不是安装它.在你的情况下`apt-get install xserver-xorg-video-intel libgl1-mesa-dri libgl1-mesa-glx`并重启X应该可以解决问题. (2认同)

Qsi*_*ris 6

你可能需要大黄蜂.但这仅支持12.04和13.10.官方指示:https://wiki.ubuntu.com/Bumblebee

您需要打开终端并输入以下命令.

如果在12.04.3,取代Linux的头-通用Linux的头-通用- LTS-铆足了劲.

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

重启

一切都应该好了.