Estou interessado em encaminhar uma sessão X11 pelo SSH, a fim de iniciar um processo remoto que utiliza o OpenGL (especificamente, gazebo para qualquer pessoa familiar).
O problema em que pareço me deparar é que o gazebo trava devido a uma incompatibilidade nas placas gráficas; não consegue encontrar extensões "NV-GLX". A saída exata do erro:
Xlib: extension "NV-GLX" missing on display "localhost:10.0".
Xlib: extension "NV-GLX" missing on display "localhost:10.0".
X Error of failed request: GLXUnsupportedPrivateRequest
Major opcode of failed request: 149 (GLX)
Minor opcode of failed request: 16 (X_GLXVendorPrivate)
Serial number of failed request: 24
Current serial number in output stream: 25
A máquina remota está funcionando com uma placa NVIDIA e minha máquina local está usando uma placa AMD.
Testei o encaminhamento de gazebo X11 entre duas máquinas com placas NVIDIA. Funciona muito bem.
Tanto quanto posso dizer, parece que uma das três coisas está acontecendo:
- Estou fazendo algo errado,
- O que eu quero fazer é impossível,
- O Gazebo não é construído de maneira agnóstica com caminhos de código ramificados para hardware diferente; seja qual for o seu sistema quando ele for criado, é o que você recebe.
A máquina remota está executando o Ubuntu e minha máquina local é um Mac executando 10.8.2; Eu já sei que tenho o encaminhamento x11 configurado corretamente para uso normal, pois posso abrir coisas como o xclock no XQuartz. A solução (se existir) também funcionaria preferencialmente para outros sistemas operacionais, incluindo Windows sobre WinSCP.
xhost +
em sua máquina local e definir o seu DISPLAY no sistema remoto para 'ip-ou-nome-de-local: 0`gazebo
trabalhar, mas estou marcando isso como a resposta aceita, porque suas sugestões eram tecnicamente corretas. Eu sou capaz de encapsularglxdemo
usando todas as sugestões que você fez (ssh e xserver / xclient pela rede), mas o próprio Gazebo parece não criar caminhos de código ramificados e assume que ele não deve ser executado nessa configuração estranha. Obrigado!.