本着帮助的精神,这是我遇到的问题并解决了,所以我将在这里回答这个问题。
问题
我有:
必须在Redhat或SuSE企业上安装的应用程序。
它有很大的系统要求,需要OpenGL。
它是需要在一台机器上一起操作的一套工具的一部分。
此应用程序用于人工时间的时间密集型任务。
我不想坐在服务器室里工作这个应用程序。
所以,问题出现了......如何从远程Windows机器运行此应用程序?
我将概述我的解决方案。随意评论替代品。此解决方案也适用于更简单的环境。我的情况有点极端。
答案 0 :(得分:9)
<强>解决方案强>
我安装了两个软件:
XMing-mesa台面部分很重要。
PuTTY配置
Connection->Seconds Between Keepalives: 30
Connection->Enable TCP Keepalives: Yes
Connection->SSH->X11->Enable X11 forwarding: Yes
Connection->SSH->X11->X display location: localhost:0:0
<强>空空强>
运行 Xming ,只需启动一个进程并在系统托盘中放置一个图标。 使用上面的配置启动putty,指向你的linux盒子。 运行程序
希望成功!
答案 1 :(得分:6)
如果您希望在本地计算机上执行OpenGL渲染,使用Windows X服务器(如Xming)是一个很好的解决方案。但是,如果要在远程端完成渲染,只需将图像发送到本地计算机,则需要一个可以处理远程OpenGL渲染的专用VNC系统,如VirtualGL。
答案 2 :(得分:2)
您还可以使用VNC(如跨平台远程桌面) X更有效率,因为它只发送绘图命令而不是像素,但如果你使用的是opengl,那么很可能大部分数据都是渲染图像。
VNC的另一大优势是您可以在服务器上本地启动程序,然后使用VNC连接它,断开连接,从另一台机器重新连接等,而不会干扰主运行程序。
答案 3 :(得分:0)
对于OpenGL,运行X服务器绝对是一个更好的解决方案。只需确保应用程序开发为联网。它不应该使用立即模式进行渲染,并且应该对RARELY传输纹理。
为什么X服务器在这种情况下是一个更好的解决方案(而不是VNC)?因为你在工作站上获得加速,而VNC的解决方案通常甚至不会在大型机上加速。因此,只要数据在X服务器上缓冲(使用顶点数组,顶点缓冲区对象,纹理对象等),您应该比使用VNC获得更高的速度,尤其是对于复杂的场景,因为VNC必须分析,传输和解码它们。像素。
答案 4 :(得分:0)
如果需要服务器glx 1.2版,则可以使用Xming的免费版本(Mesa 2007)。但是,如果您的应用程序需要版本1.4,例如qt5,则来自Cygwin的X服务器可以免费运行以使用以下命令运行它:
[在服务器上]
sudo vi /etc/ssh/ssh_config
添加:
X11转发是
X11DisplayOffset 10
X11UseLocalHost否
AllowTcpForwarding是
TCPKeepAlive是
ClientAliveInterval 30
ClientAliveCountMax 10000
sudo vi ~/.bashrc
添加:
export DISPLAY = ip_from_remote:0
现在重新启动ssh服务器
[在客户端幻灯片上]
在运行以下命令后安装Cygwin64(支持X软件包):
d:\cygwin64\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; /usr/bin/xinit /etc/X11/xinit/startxwinrc -- /usr/bin/XWin :0 -ac -multiwindow -listen tcp"
现在执行ssh客户端:
d:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -e /usr/bin/ssh -Y user_name@ip_from_server