Xlib:缺少扩展“GLX” - 带有 NVIDIA 卡和板载显卡

ein*_*lum 19 xorg graphics intel-graphics

我有一台带有 NVIDIA GeForce 的机器,我将其用于显示目的(即显示器未连接到它),以及一些乏善可陈的板载图形芯片。(您将在下面找到相关lshw列表。)

我的 X 会话工作得很好;但是当我的大多数 X 应用程序(需要任何花哨的 GFX 或工具包)运行时,它们会发出以下错误消息:

Xlib:  extension "GLX" missing on display ":0".
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何让我的应用程序注意到非 NVIDIA GLX 库并使用它(当然无需移除 NVIDIA 卡,也无需将显示器切换到其输出端口)?

我正在使用带有 LXDE 的 Debian/Linux Stretch 64 位内核版本 4.2.6。

的输出lshw -c display

  *-display               
       description: VGA compatible controller
       product: GK106 [GeForce GTX 650 Ti Boost]
       vendor: NVIDIA Corporation
       physical id: 0
       bus info: pci@0000:02: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:17 memory:f6000000-f6ffffff memory:e0000000-e7ffffff memory:e8000000-e9ffffff ioport:e000(size=128) memory:f7000000-f707ffff
  *-display
       description: VGA compatible controller
       product: Xeon E3-1200 v2/3rd Gen Core processor 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:30 memory:f7400000-f77fffff memory:d0000000-dfffffff ioport:f000(size=64)
Run Code Online (Sandbox Code Playgroud)

的输出glxinfo

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".
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".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Run Code Online (Sandbox Code Playgroud)

的输出cat /var/log/Xorg.0.log | grep glx

[    19.287] (II) LoadModule: "glx"
[    19.787] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[    22.727] (II) Module glx: vendor="X.Org Foundation"
Run Code Online (Sandbox Code Playgroud)

附加信息:

  • 我没有glx-alternative-nvidia安装软件包。
  • 如果我从 Devuan ASCII 的实时映像 USB 启动,则不会出现问题。
  • 如果我创建一个xorg.confusing Xorg :1 -configure就是它产生的结果(2 个“设备”部分,一个与intel驱动程序相关,另一个与nouveau);但是如果我注释掉 nouveau 部分并尝试使用该配置运行 Xorg - 它不会加载,说它找不到任何屏幕。

vil*_*asv 9

nvidia-current从包存储库安装后到达这里,并卡在登录循环中。我查看了登录~/.xsession-errors,发现了提到的错误:

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

我已经卸载nvidia-current了,问题仍然存在。我也没有glx-alternative-nvidia安装。作为最后的手段,我只是从nvidia我的 Ubuntu 上卸载了所有东西(包括 CUDA 的东西),并在重新启动后工作。


小智 2

首先确定正在使用哪个 glx 模块:

$ cat /var/log/Xorg.0.log | grep glx
[     3.622] (II) LoadModule: "glx"
[     3.624] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[     3.705] (II) Module glx: vendor="NVIDIA Corporation"
Run Code Online (Sandbox Code Playgroud)

在 Debian 8 Jessie 中,我的解决方案是删除glx-alternative-nvidiapackage.json。所以重启后:

$ cat /var/log/Xorg.0.log | grep glx
[     3.581] (II) LoadModule: "glx"
[     3.582] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[     3.592] (II) Module glx: vendor="X.Org Foundation"

$ glxinfo | grep "OpenGL renderer"
OpenGL renderer string: Mesa DRI Intel(R) Haswell Desktop
Run Code Online (Sandbox Code Playgroud)

  • 我实际上只是开始使用 X.Org 功能模块...请参阅编辑。 (2认同)