Problema de drivers de vídeo somente ao tunelar o X pelo ssh

0

Sou um sysadmin relutante que herdou a responsabilidade de configurar um servidor RHEL 6.7 (operando em uma máquina virtual VMware) para substituir um servidor físico antigo.

Neste novo servidor, certos aplicativos X11 não funcionam corretamente quando o usuário está logado neste servidor remotamente via protocolo ssh e tunneling X. Especificamente, o conjunto de aplicativos de neurociência do FreeSurfer não funciona remotamente por meio do ssh. No entanto, se o usuário executar o mesmo programa com as mesmas opções do mesmo usuário em uma sessão local no servidor (acessado remotamente via NoMachine em vez de ssh), ele será executado muito bem.

Por exemplo, o comando a seguir exibe o hemisfério direito do cérebro dos dados de ressonância magnética contidos na pasta mySubject usando as cores da região do cérebro designadas no arquivo aparc.annot :

tksurfer mySubject rh pial -annotation aparc.annot

Em uma sessão local no servidor, ele é executado sem erros. Se o usuário efetuar login remotamente via ssh -Y user@hostname (encapsulando a exibição X no seu PC do CentOS 6), o usuário recebe o seguinte erro:

libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast

Eu fiz algumas pesquisas na net e descobri que essas mensagens de erro são normalmente associadas a um aplicativo que requer que os drivers da Nvidia sejam instalados. Eu tenho relutado em instalar os drivers da Nvidia por medo de potencialmente estragar o servidor X.

Existe alguém por aí executando o RHEL dentro de um ambiente VMware com êxito com os drivers Nvidia instalados? Em caso afirmativo, qual foi o procedimento para instalar os drivers de maneira a manter a compatibilidade com o ambiente da máquina virtual?

Quando executo lspci | grep VGA neste servidor, recebo a seguinte saída:

00:0f.0 VGA compatible controller: VMware SVGA II Adapter
    
por Matt 25.03.2016 / 00:03

1 resposta

2

Você deseja renderizar o aplicativo remotamente e apenas transmitir o resultado para seu nó.
Uma solução seria usar virtualgl (possivelmente com turbovnc para simplificar): link link

Basicamente, você deseja instalar o virtualgl, instalar o turbovnc e seguir o procedimento em link :

Procedimento

Follow the procedure described in Chapter 6 for starting a TurboVNC session and connecting to it.
Open a new terminal inside the TurboVNC desktop.
In the same terminal window, open a Secure Shell (SSH) session into the VirtualGL server:

/opt/VirtualGL/bin/vglconnect {user}@{server}

Replace {user} with your username on the VirtualGL server and {server} with the hostname or IP address of that server. Refer to the VirtualGL User’s Guide for additional vglconnect options.
In the SSH session, set the VGL_COMPRESS environment variable to rgb

Passing an argument of -c rgb to vglrun achieves the same effect.
In the SSH session, start a 3D application using VirtualGL:

/opt/VirtualGL/bin/vglrun [vglrun options] {application_executable_or_script} {arguments}

Uma abordagem completamente diferente seria passar o dispositivo nvidia pci para a vm usando o GPU-PASSTHROUGH. Isso requer suporte da BIOS e do host IIRC, mas permitiria que você usasse os drivers nvidia diretamente dentro da VM.
Por favor, note vmware suporte para nvidia passthrough parece ser apenas para produtos de grade, não seus produtos de geforce de grau de consumidor.
Alguns links para essas soluções:

link

link

Existem outros, não tenho certeza se o seu caso de uso é apropriado para essa abordagem.

    
por 28.03.2016 / 15:22