如何在带有 nvidia gfx 卡的 Ubuntu 14.04 LTS 中启用间接 GLX 上下文 (+iglx)

如何在带有 nvidia gfx 卡的 Ubuntu 14.04 LTS 中启用间接 GLX 上下文 (+iglx)

我在一个中心位置运行用于 Qt 软件开发的 Linux 主机。

在我的 Windows 机器上,我使用 Xming 作为本地 X 服务器,并使用 putty 连接到该 Linux 主机。通过此配置,我可以在 Linux 主机上使用所有 X(xclock、xterm)和 GLX(qtcreator、gxlinfo、glxgears...)程序。

我的主要工作站是带有 nvidia gfx 卡的 ubuntu 14.04 LTS。当我使用“ssh -p port# -YC my.dev.host.com”通过 ubuntu 系统连接到 linux 主机时,我也可以使用所有 X 程序 (xclock, xterm) 程序,但我不能用GLX 程序(qtcreator、gxlinfo、glxgears……)。

据我所知学到了这是因为 X-server 在 1.16 版本中默认不支持间接 GLX 上下文。

所以我的问题是:如何在我的 ubuntu 14.04 LTS 安装中启用间接 GLX 上下文(X 服务器和 nvidida 驱动程序)以使 X 服务器按预期工作。

感谢您的任何帮助!

陣容

以下是 glxgears 的输出,也许有帮助:

[email protected]:~# LIBGL_DEBUG=verbose glxgears 
libGL: screen 0 does not appear to be DRI2 capable
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
libGL: Can't open configuration file /root/.drirc: No such file or directory.
libGL: Can't open configuration file /root/.drirc: No such file or directory.
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  154 (GLX)
  Minor opcode of failed request:  3 (X_GLXCreateContext)
  Value in failed request:  0x0
  Serial number of failed request:  35
  Current serial number in output stream:  37

答案1

当我通过“ssh -X”运行某些 GL 应用程序时,我遇到了类似的问题,并通过在 /usr/share/lightdm/lightdm.conf.d/50-xserver-command.conf 中的 xserver-command 中添加“+iglx”解决了该问题。

[SeatDefaults]
# Dump core
xserver-command=X -core +iglx

之后,您可以重新启动或按 Ctrl-Alt-F1,登录,然后“sudo service lightdm restart”。

我希望这有帮助!

答案2

添加选项的另一种方法(与显示管理器无关)是将以下部分添加到 /etc/X11/xorg.conf:

Section "ServerFlags"
    Option "IndirectGLX" "on"
EndSection

答案3

我在运行自定义 OpenGL 程序时遇到了同样的问题ssh -X。上述解决方案经过轻微修改后即可使用

Section "ServerFlags"  
    Option "AllowIndirectGLX" "on"  
    Option "IndirectGLX" "on"  
EndSection  

它适用于运行 kubuntu-desktop 的 ubuntu 16.04 服务器,该服务器带有通过 apt 安装的 NVIDIA GTX 1070 GPU 和 NVIDIA 二进制驱动程序。

相关内容