Xlib:显示":0"时缺少"GLX"扩展名

kyo*_*yon 1 opengl ubuntu xlib point-cloud-library

我正在尝试将Point Cloud Library与Ubuntu 12.04一起使用.但是当我执行点云可视化程序时,我收到以下错误:

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

这些是我的系统信息:

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

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

$ sudo lshw -C display
  *-display
       description: VGA compatible controller
       product: GF106M [GeForce GT 555M]
       vendor: NVIDIA Corporation
       physical id: 0
       bus info: pci@0000:01:00.0
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
       configuration: driver=nvidia latency=0
       resources: irq:16 memory:f2000000-f3ffffff memory:d0000000-dfffffff memory:e0000000-e3ffffff ioport:d000(size=128) memory:f4000000-f407ffff
  *-display
       description: VGA compatible controller
       product: 2nd Generation Core Processor Family Integrated Graphics Controller
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 09
       width: 64 bits
       clock: 33MHz
       capabilities: msi pm vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:49 memory:f4400000-f47fffff memory:c0000000-cfffffff ioport:e000(size=64)
Run Code Online (Sandbox Code Playgroud)

因为我的笔记本电脑配有Nvidia Gt555m显卡和optimus,我试图安装Bumblebee.但是当我执行时apt-get install bumblebee,我的电脑会停止并变成黑屏.

我怎么解决这个问题?我真的要安装大黄蜂吗?

tho*_*kra 10

有几种方法可以处理在Linux上的Optimus乱 - 恕我直言,所有这些现在取代使用Bumblebee.bbswitch(见下文),来自同一作者,是另一个故事.

使用PRIME和开源驱动程序,nouveau:

PRIME总结了David Airlie对XrandR 1.4所做的更改,以便能够使用开源驱动程序堆栈将内容卸载到专用GPU.

对于Precise Pangolin(12.04 LTS),您首先需要确保安装所谓的LTS硬件启用堆栈.如果您刚刚安装了最新的LTS版本,即12.04.3,则软件包已经是最新版本.

那么你需要做的就是调用一些需要像这样使用NVIDIA GPU的程序(如图所示glxinfo):

DRI_PRIME=1 glxinfo | grep OpenGL
Run Code Online (Sandbox Code Playgroud)

这应该打印

OpenGL vendor string: nouveau
OpenGL renderer string: Gallium 0.4 on XXXX
OpenGL version string: 3.0 Mesa 9.0
OpenGL shading language version string: 1.30
Run Code Online (Sandbox Code Playgroud)

其中XXXX是您系统中的实际GPU.

仅使用NVIDIA GPU:

这个解决方案并不是Optimus的真正意义所在,即将所需的3D任务卸载到专用GPU,而所有2D内容和桌面合成都由英特尔GPU处理.使用上述解决方案,您将永久使用NVIDIA GPU进行渲染.因此,您呈现的所有内容都通过NVIDIA GPU进行,并且仅使用Intel GPU进行屏幕显示.

有一个软件包,nvidia-prime可以在12.04.3上使用,并且正是这样 - 据我所知,我现在无法测试它.

从驱动程序版本319.12开始,您可以手动使用XRandR 1.4和专有驱动程序配置系统.有关如何执行此操作的信息,请参阅最新的README版本331.13.

打开和关闭NVIDIA GPU:

为了真正受益于Optimus提出的流行语的实际效果,您需要能够在不使用时关闭专用GPU.为此,Bumblebee的作者提出了一个名为bbswitch的内核模块.

bbswitch可以用来打开和关闭NVIDIA GPU而无需重新启动X,如果您正在使用nouveau和PRIME ,这是完美的,如果您更喜欢第二种解决方案,则可以使用X重启,即您可以编写脚本来切换来回切换英特尔和NVIDIA GPU取决于您当前的需求.对于后者,请参阅此页面以获取有关底部的说明(这是德语版,我很害怕,但您应该能够看到该怎么做).

显然,第一个将是可取的,因为它有些类似于什么擎天柱左右,但正如我们所看到的,第二个解决方案是不是真的点播卸载,因此你不用切换GPU X11会话,但会议之间.这就是切换脚本的用武之地.因此,对于浏览,办公工作和其他东西,你可以在NVIDIA GPU离线时使用英特尔GPU,如果你想做一些OpenGL的东西,比如游戏或你自己的图形开发,你可以切换到NVIDIA GPU.

在能源消耗方面,第二种解决方案实际上并不是那么有害,因为专有驱动程序已经做了相当不错的电源管理 - 开源驱动程序在过去一直非常糟糕,因为NVIDIA不会发布需要硬件文档来实际实施适当的电源管理,无需逆向工程工作和社区的帮助.现在情况好转.

我希望这已经足够了.如果您需要进一步的帮助,请发表评论.