VirtualGL 和 TurboVNC:显示“:0.0”时缺少扩展 "GLX"

VirtualGL and TurboVNC: extension "GLX" missing on display ":0.0"

我在 AWS 上有一台带有 Nvidia GRID 卡 K520 的远程计算机,我想远程渲染 3D 图形。我使用 Ubuntu 14.04 - 64 位。远程和本地。 对于远程连接和 OpenGL 渲染,我们使用 VirtualGL 和 TurboVNC (*amd64.deb).

我正确安装了 VirtualGL 和 TurboVNC,并且我有 Nvidia 驱动程序。

据我了解,VirtualGL 在远程计算机上使用显示 :0,而 TurboVNC 使用显示 :1。

当我连接到远程机器并且我想要 运行 一个 3D 应用程序(通过 vgl运行 )时,它给我错误:

显示“:0.0”时缺少扩展名 "GLX"。

我不明白 VirtualGL 如何在带有 TurboVNC 的远程计算机上工作,它如何使用显示器 :0 以及它是否正常。

我需要设置什么吗(.conf,图形驱动程序)。我一遍又一遍地安装它,尝试搜索答案,但我没有找到解决方案。

找到解决方案

我。回顾

AWS (EC2 gl2.2xlarge) 上的远程计算机 运行ning 在 64 位 Ubuntu 14.04 上。我正确安装了 VirtualGL、TurboVNC 和 Nvidia 352.63 驱动程序 (cuda 7.0)。

  1. 我远程连接到aws实例。

  2. 运行 TurboVNC 服务器: /opt/TurboVNC/bin/vncserver

  3. 运行 TurboVNC 客户端并连接到远程计算机: /opt/TurboVNC/bin/vncviewer

  4. 当我想在远程电脑上运行应用程序时出现错误。 /opt/VirtualGL/bin/vglrun <application>

错误:显示“:0.0”时缺少扩展名“GLX”

二.解决方案

  1. 首先在远程电脑上输入: sudo xinit &

  2. 运行 远程电脑上的应用程序 /opt/VirtualGL/bin/vglrun <application>

例子: /opt/VirtualGL/bin/vglrun glxgears

sudo xinit &

sudo xinit & 是什么?

要将 OpenGL 应用程序传输到远程计算机上的 运行,我需要启动第二个 X 服务器,VirtualGL 使用该服务器与 NVIDIA GPU 通信。第二个 X 服务器将以 sudo xinit &.

开头

一些有用的检查

  1. 检查电脑上的 VGA 设备:lspci | grep VGA

这在使用 Nvidia GRID 卡 K520 的 AWS (EC2 gl2.2xlarge) 上显示:

00:02.0 VGA compatible controller: Cirrus Logic GD 5446
00:03.0 VGA compatible controller: NVIDIA Corporation GK104GL [GRID K520] (rev a1)
  1. 检查驱动程序:nvidia-smi

如果它显示一些有用的信息,那么驱动程序正在工作:

NVIDIA-SMI 352.63

驱动版本:352.63

一些有用的信息来自 xorg.conf (/etc/X11/xorg.conf)

Section "Device"
Identifier     "Device0"
Driver         "nvidia"
VendorName     "NVIDIA Corporation"
BusID          "0:3:0"
EndSection

Section "Device"
Identifier     "Device1"
Driver         "vesa"
BusID          "0:2:0"
EndSection

Section "Screen"
Identifier     "Screen0"
Device         "Device0"
Monitor        "Monitor0"
DefaultDepth    24
Option         "UseDisplayDevice" "none"
SubSection     "Display"
Depth       24
EndSubSection
EndSection