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

Lub*_*sky 1 opengl ubuntu nvidia

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

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

据我所知,VirtualGL使用display:0和TurboVNC在远程机器上使用display:1.

当我连接到远程计算机并且我想运行3D应用程序(通过vglrun)时,它给了我错误:

显示":0.0"时缺少"GLX"扩展名.

我不介意VirtualGL如何在具有TurboVNC的远程机器上工作,它如何使用显示器:0,如果没关系.

我需要设置一些东西(.conf,图形驱动程序).我试着一遍又一遍地安装它,尝试了解答,但我没有找到解决方案.

Lub*_*sky 9

找到了解决方案

I.回顾

AWS上的远程计算机(EC2 gl2.2xlarge)在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. 当我想在远程PC上运行应用程序时出现错误. /opt/VirtualGL/bin/vglrun <application>

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

II.解

  1. 远程PC上的第一种类型: sudo xinit &

  2. 在远程PC上运行应用程序 /opt/VirtualGL/bin/vglrun <application>

例: /opt/VirtualGL/bin/vglrun glxgears

sudo xinit&

这是什么sudo xinit &

为了让OpenGL应用程序在远程计算机上运行,​​我需要启动第二个X服务器,VirtualGL用它来与NVIDIA gpu通信.第二个X服务器将以sudo xinit &.

一些有用的检查

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

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

00:02.0 VGA compatible controller: Cirrus Logic GD 5446
00:03.0 VGA compatible controller: NVIDIA Corporation GK104GL [GRID K520] (rev a1)
Run Code Online (Sandbox Code Playgroud)
  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 
Run Code Online (Sandbox Code Playgroud)