7

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

问题

我有:

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

它有巨大的系统要求并且需要 OpenGL。

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

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

我不想坐在服务器机房里处理这个应用程序。

所以,问题来了......我如何从远程 Windows 机器运行这个应用程序?

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

4

5 回答 5

10

解决方案

我安装了两个软件:

油灰

XMing-mesa台面部分很重要。

腻子配置

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 框。运行程序

希望,成功!

于 2008-09-19T22:45:11.500 回答
6

如果您希望在本地计算机上执行 OpenGL 渲染,则使用 Windows X 服务器(如 Xming)是一个很好的解决方案。但是,如果您希望仅通过将图像发送到本地计算机来在远程端进行渲染,您需要一个可以处理远程 OpenGL 渲染的专用 VNC 系统,例如VirtualGL

于 2008-09-19T22:59:10.607 回答
2

您也可以使用 VNC(如跨平台远程桌面)X 更有效,因为它只发送绘制命令而不是像素,但如果您使用的是 opengl,则很可能大部分数据都是渲染图像。

VNC 的另一大优点是您可以在服务器上本地启动程序,然后使用 VNC 连接到它,断开连接,从另一台机器重新连接等,而不会干扰主运行的程序。

于 2008-09-19T22:46:35.757 回答
0

对于 OpenGL,运行 X 服务器绝对是更好的解决方案。只需确保将应用程序开发为联网即可。它不应该使用即时模式进行渲染,并且应该很少传输纹理。

为什么在这种情况下 X 服务器是一个更好的解决方案(相对于 VNC)?因为您可以在工作站上获得加速,而 VNC 解决方案通常甚至不会在大型机上加速。因此,只要在 X 服务器上缓冲数据(使用顶点数组、顶点缓冲区对象、纹理对象等),您应该获得比使用 VNC 更高的速度,尤其是对于复杂场景,因为 VNC 必须将它们分析、传输和解码为像素。

于 2008-11-29T18:42:48.570 回答
0

如果您需要服务器 glx 1.2 版,Xming (Mesa 2007) 的免费版本可以正常工作。但是,如果您的应用程序需要 1.4 版,例如 qt5,Cygwin 的 X Server 可以免费使用以下命令运行它:

[在服务器上]

sudo vi /etc/ssh/ssh_config

添加:

X11转发是

X11DisplayOffset 10

X11UseLocalHost 否

AllowTcpForwarding 是

TCPKeepAlive 是

ClientAliveInterval 30

ClientAliveCountMax 10000

sudo vi ~/.bashrc

添加:

导出显示=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
于 2020-04-18T18:43:14.527 回答