如何从我的Windows机器上运行安装在linux机器上的OpenGL应用程序?

时间:2008-09-19 22:41:21

标签: linux opengl x11 sysadmin putty

本着帮助的精神,这是我遇到的问题并解决了,所以我将在这里回答这个问题。

问题

我有:

必须在Redhat或SuSE企业上安装的应用程序。

它有很大的系统要求,需要OpenGL。

它是需要在一台机器上一起操作的一套工具的一部分。

此应用程序用于人工时间的时间密集型任务。

我不想坐在服务器室里工作这个应用程序。

所以,问题出现了......如何从远程Windows机器运行此应用程序?

我将概述我的解决方案。随意评论替代品。此解决方案也适用于更简单的环境。我的情况有点极端。

5 个答案:

答案 0 :(得分:9)

<强>解决方案

我安装了两个软件:

PuTTY

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