2008-09-19 21 views
6

En un espíritu de ayuda, este es un problema que tuve y resolví, por lo que responderé la pregunta aquí.¿Cómo puedo ejecutar una aplicación OpenGL instalada en una máquina Linux desde mi máquina Windows?

Problema

tengo:

Una aplicación que tiene que ser instalado en la empresa en RedHat o SuSE.

Tiene enormes requisitos de sistema y requiere OpenGL.

Forma parte de un conjunto de herramientas que deben funcionar juntas en una máquina.

Esta aplicación se utiliza para una tarea que requiere mucho tiempo en términos de horas-hombre.

No quiero sentarme en la sala del servidor trabajando en esta aplicación.

Entonces, surgió la pregunta ... ¿cómo puedo ejecutar esta aplicación desde una máquina remota de Windows?

Esbozaré mi solución. Siéntase libre de comentar sobre alternativas. Esta solución también debería funcionar para entornos más simples. Mi caso es algo extremo.

+0

¡Se supone que debe publicar su solución como una respuesta no como parte de la pregunta! –

+0

Mírame, soy estúpido. Doh! – scubabbl

+0

Allí, lo arreglé. Me siento tonto ahora. – scubabbl

Respuesta

8

Solución

He instalado dos piezas de software:

PuTTY

XMing-mesa La mesa parte es importante.

configuración de 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 

lauching

Run Xming que simplemente poner en marcha un proceso y poner un icono en la bandeja del sistema. Lanza masilla, apuntando a tu caja de linux, con la configuración anterior. Ejecutar el programa

Afortunadamente, ¡Éxito!

+0

Nunca he encontrado que sea necesaria la configuración de Keepalive; esto podría ser específico de algún firewall demasiado protector que esté ejecutando. –

+0

He hecho esto antes; realmente util. =] – strager

+1

Este es un método muy útil, pero encontré que para su trabajo necesitaba configurar "Connection-> SSH-> X11-> X display location: localhost: 0", y no localhost: 0: 0 como estaba publicado – RonenKi

2

Usted podría también utilizar VNC (como plataformas de escritorio remoto) X es más eficiente ya que sólo envía dibujar comandos en lugar de píxeles, pero si usted está usando OpenGL es probable que la mayor parte de los datos es una imagen renderizada de todas formas.

Otra gran ventaja de VNC es que puede iniciar el programa localmente en el servidor y luego conectarse a él con VNC, desconectar la conexión, volver a conectar desde otra máquina, etc. sin interrumpir el programa principal en ejecución.

+0

Probé VNC, lo único que obtuve en la ventana real de OpenGL fue un patrón de tablero de ajedrez. – scubabbl

+0

Suena como que OpenGL usa las características de hardware de la tarjeta gráfica. Hay implementaciones mejoradas de VNC para Windows que enganchan el controlador de gráficos. –

+0

No existe el problema de que el VNC en el servidor no sea compatible con OpenGL; toda la máquina de Windows ve con cualquier VNC es un mapa de bits. (Todavía tengo que ver un servidor X11 VNC que sea compatible con GLX). – timday

6

Si desea que la representación de OpenGL se realice en su máquina local, usar un servidor de Windows X, como Xming, es una buena solución. Sin embargo, si desea que la representación se realice en el extremo remoto con solo las imágenes enviadas a la máquina local, desea un sistema VNC especializado que pueda manejar la representación remota de OpenGL, como VirtualGL.

0

Para OpenGL, ejecutar un servidor X es definitivamente una mejor solución. Solo asegúrese de que la aplicación esté desarrollada para conectarse en red. NO debe usar el modo inmediato para renderizar y las texturas deben transferirse RARAMENTE.

¿Por qué el servidor X es una mejor solución en este caso (a diferencia de VNC)? Porque obtienes aceleración en la estación de trabajo, mientras que la solución VNC no suele acelerarse en el mainframe. Así que mientras los datos estén almacenados en el servidor X (usando matrices de vértices, objetos de bóveda de vértices, objetos de textura, etc.) debería obtener una velocidad mucho mayor que con VNC, especialmente con escenas complejas ya que VNC tiene que analizarlas, transferirlas y descodificarlas como pixeles

Cuestiones relacionadas