我在我的工作站上运行一个 vnc 服务器并与另一台计算机连接。服务器和客户端都在运行 Debian Jessie:
$ uname -a
Linux debian-VAIO 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2+deb8u2 (2016-06-25) x86_64 GNU/Linux
Xfce 是为 vnc 服务器和
xstartup
安装的。是:$ cat ~/.vnc/xstartup
#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
export XKL_XMODMAP_DISABLE=1
exec startxfce4
在 ~/.bashrc 中,我添加了以下几行:
export LIBGL_ALWAYS_INDIRECT=y
export LD_PRELOAD='/usr/lib/x86_64-linux-gnu/libstdc++.so.6'
目前,当我使用
ssh -X
SSH 到服务器时, $DISPLAY
是 localhost:10.0
, vtk 相关命令将启动一个 X 窗口。但是,如果在 ssh 终端中启动了一个 vnc 服务器,登录到 xfce 并在其中打开一个终端,$DISPLAY
是 :1.0
并且 vtk 无法启动 X 窗口,并显示以下消息:Error: In /home/orobix/Desktop/vmtk-build/VTK/Rendering/OpenGL/vtkXOpenGLRenderWindow.cxx, line 394
vtkXOpenGLRenderWindow (0x2c30f10): Could not find a decent visual
Error: In /home/orobix/Desktop/vmtk-build/VTK/Rendering/OpenGL/vtkXOpenGLRenderWindow.cxx, line 394
vtkXOpenGLRenderWindow (0x2c30f10): Could not find a decent visual
Error: In /home/orobix/Desktop/vmtk-build/VTK/Rendering/OpenGL/vtkXOpenGLRenderWindow.cxx, line 394
vtkXOpenGLRenderWindow (0x2c30f10): Could not find a decent visual
Error: In /home/orobix/Desktop/vmtk-build/VTK/Rendering/OpenGL/vtkXOpenGLRenderWindow.cxx, line 613
vtkXOpenGLRenderWindow (0x2c30f10): GLX not found. Aborting.
我认为这可能与
xstartup
中缺少 X 服务器的配置有关。 vnc 服务器。但我不知道该怎么做。谁能帮我调试一下?如果需要,将提供任何进一步的信息。谢谢!20160823更新
我接受了 VirtualGL + TurboVNC 的建议并安装了这两个组件。使用
vglserver_config
的简单配置根据 http://www.virtualgl.org/vgldoc/2_1_1/#hd009001 完成第 6.1 部分。然后我做了vncserver
TurboVNC 使用 xstartup.turbovnc
运行 xfce :#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
OS=`uname -s`
exec startxfce4
在客户端,我使用
vncviewer
TurboVNC 连接服务器。桌面看起来与默认 vncserver 中的完全不同。然后我尝试了/opt/VirtualGL/bin/vglrun vmtkimageviewer -ifile image_volume_voi.vti
vmtkimageviewer 应该在其中打开一个窗口,但最后它给出了一个错误:
Executing vmtkimageviewer ...
X Error of failed request: GLXBadContext
Major opcode of failed request: 156 (GLX)
Minor opcode of failed request: 6 (X_GLXIsDirect)
Serial number of failed request: 17
Current serial number in output stream: 16
不幸的是,我发现
ssh -X
, 我不能像以前那样启动 X 窗口,虽然 $DISPLAY
仍然是 localhost:10.0
.输出是:Executing vmtkimageviewer ...
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 156 (GLX)
Minor opcode of failed request: 3 (X_GLXCreateContext)
Value in failed request: 0x0
Serial number of failed request: 37
Current serial number in output stream: 38
但我认为我更接近事实,因为它看起来像 VirtualGL 工作(?)。下一步该做什么?
最佳答案
Xrdp(Xvnc 或 Xvfb)使用的 X 服务器变体简单明了,根本不支持 OpenGL/GLX,因此需要 OpenGL 的程序将无法在该配置中运行。
不过可以回退到 Mesa swrast 或 llvmpipe:http://www.mesa3d.org/llvmpipe.html
关于opengl - VNC 终端中的 vtkXOpenGLRenderWindow 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39082920/