![](/img/trans.png)
[英]How to frame my URL to send GraphQL request to the application running inside a container on linux machine from windows machine?
[英]How can I run an OpenGL application installed on a linux machine from my windows machine?
本着乐于助人的精神,这是我遇到并解决的问题,所以我将在这里回答这个问题。
问题
我有:
必须安装在 Redhat 或 SuSE 企业上的应用程序。
它有巨大的系统要求,需要 OpenGL。
它是需要在一台机器上一起运行的一套工具的一部分。
此应用程序用于以工时为单位的时间密集型任务。
我不想坐在服务器机房里处理这个应用程序。
所以,问题来了……我如何从远程 Windows 机器运行这个应用程序?
我将概述我的解决方案。 随意评论替代方案。 此解决方案也适用于更简单的环境。 我的情况有点极端。
解决方案
我安装了两个软件:
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 框。 运行程序
希望,成功!
如果您希望在本地计算机上执行 OpenGL 渲染,使用 Windows X 服务器(如 Xming)是一个不错的解决方案。 但是,如果您希望仅将图像发送到本地计算机而在远程端完成渲染,则需要一个可以处理远程 OpenGL 渲染的专用 VNC 系统,例如VirtualGL 。
您也可以使用 VNC(如跨平台远程桌面)X 更有效,因为它只发送绘图命令而不是像素,但如果您使用的是 opengl,则大部分数据很可能无论如何都是渲染图像。
VNC 的另一大优势是您可以在服务器本地启动程序,然后使用 VNC 连接到它,断开连接,从另一台机器重新连接等,而不会干扰正在运行的主程序。
对于 OpenGL,运行 X 服务器绝对是更好的解决方案。 只需确保应用程序开发为联网即可。 它不应该使用立即模式进行渲染,并且应该很少传输纹理。
为什么在这种情况下 X 服务器是更好的解决方案(与 VNC 相对)? 因为您在工作站上获得加速,而 VNC 的解决方案通常甚至不会在大型机上加速。 因此,只要数据在 X 服务器上缓冲(使用顶点数组、顶点缓冲区对象、纹理对象等),您应该获得比使用 VNC 更高的速度,尤其是在复杂场景中,因为 VNC 必须将它们分析、传输和解码为像素。
如果您需要服务器 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.