codifica opengl através de SSH, executa o programa através da exibição da máquina

3

Estou trabalhando na 5ª edição da Bíblia Opengl. Devido a uma recente falha de hardware, minha máquina principal é agora um laptop antigo que não suporta o padrão opengl para o meu tutorial. Eu tenho um servidor headless rodando o Ubuntu 11.10 que tem uma placa gráfica capaz. Eu gostaria de codificar embora SSH e ter o meu programa compilado exibir em um monitor conectado ao servidor. Como eu faria isso?

    
por Paul 27.12.2011 / 23:34

2 respostas

2

Você não especificou muito sobre seu ambiente, então vamos um por um. Primeiro, se você estava rodando o Ubuntu (ou qualquer GNU / Linux) em sua máquina anterior, você provavelmente está usando o X Windows para exibição em seus aplicativos OpenGL. Dada essa suposição, tudo o que você precisa é de um servidor X Windows em funcionamento em seu servidor "sem cabeça" (note que quando você anexa um monitor, ele não fica mais sem cabeça). Se você não o tiver instalado (o que seria o caso se você instalasse o Ubuntu Server Edition, por exemplo), você precisa instalá-lo primeiro, verifique isto:

Note que não é aconselhável instalar o X (ou qualquer coisa não necessária) em servidores puros por várias razões, veja a seção Argumentos Contra uma GUI no link acima para ver alguns deles e decidir se é algo que você quer fazer ou não.

Quando você instalou (que pode verificar, por exemplo, executando dpkg -s xserver-xorg-code no terminal e verificando Status line) e ativou, é possível testá-lo iniciando, e. xeyes ou outros aplicativos de amostra X. Primeiro, verifique se você tem DISPLAY conjunto de variáveis de ambiente:

$ echo $DISPLAY
:0.0

A partir disso:

você pode ver que essa variável tem o seguinte formato:

hostname:displaynumber.screennumber

com hostname omitido acima, significando localhost . Se isso funcionar (por exemplo, executando xeyes na verdade exibe os olhos engraçados que rastreiam o mouse), tudo está definido como X.

Se você não tem um servidor SSH instalado, você precisa instalá-lo - é bastante simples, aqui está um dos muitos tutoriais:

Verifique se o seu ssh está funcionando executando ssh <target IP> do seu laptop, por exemplo:

$ ssh 10.0.0.5

se o IP do seu servidor for 10.0.0.5. Se isso for bem sucedido, está tudo pronto.

Agora que você pode executar o SSH no servidor, tudo o que precisa fazer é executar xeyes na conexão SSH. Pode ser que sua variável DISPLAY não esteja definida quando você ssh, então se echo $DISPLAY não retornar nada, você pode executar isto:

$ export DISPLAY=:0.0

desde que você use bash , o que provavelmente é o caso.

Se, por outro lado, você quiser executar o próprio aplicativo no laptop e exibir apenas no servidor, tudo o que precisa fazer é alterar a variável DISPLAY e ela funcionará, por exemplo:

$ export DISPLAY=10.0.0.5:0.0

fornecendo esse IP do seu servidor é 10.0.0.5. Você pode tentar o acima no terminal seguinte por xeyes e você deve ver novamente aqueles olhos engraçados exibidos no monitor do seu servidor.

Espero que isso ajude.

    
por 28.12.2011 / 01:50
2

Eu tive problema semelhante. Uma boa solução para isso é o link VirtualGL

É muito fácil de configurar. Aqui está o manual .

Ele executa o aplicativo no servidor e redireciona a saída do OpenGL para o cliente como quadros brutos (afinal compactados para um melhor desempenho).

    
por 07.01.2012 / 13:07