O driver da Nvidia quebra o vncserver no CentOS 7.4, há algum problema?

2
CentOS Linux release 7.4.1708 (Core) 
uname -r output: 3.10.0-693.2.2.el7.x86_64
NVidia driver: NVIDIA-Linux-x86_64-375.66.run

Ao usar o driver da placa de vídeo Nvidia com a placa gráfica Nvidia GeForce GT 720 no CentOS 7.4, ele funciona bem para o monitor de computador com fio no console. No entanto, ao tentar se conectar ao vncserver, você recebe apenas uma tela preta em branco na conexão. Eu removi o driver da Nvidia e o VNC funciona novamente. Aparentemente eu acabei de descobrir que o driver Nouveau trabalha com VNC, mas não com o monitor de computador com fio no console.

Existe uma solução para usar o driver da Nvidia e conseguir que o VNC funcione? Possíveis alterações nos arquivos de configuração ou uma GUI mais simples para usar com o Gnome? Atualmente estou usando metacity no arquivo ~ user / .vnc / xstartup. Ou existe outra boa alternativa para usar o vncserver / tigervnc?

    
por Edward_178118 15.10.2017 / 11:23

2 respostas

0

O TurboVNC + VirtualGL é uma boa alternativa .

Prós:

  • Bom desempenho.
  • Funciona com ambientes de desktop, que exigem aceleração 3D (como o Gnome3 ), com -3dwm .
  • A renderização remota em 3D funciona mesmo com GPUs sem título .

O contras é que pode ser complicado configurar. Acabei de terminar a configuração no meu CentOS 7 e NVidia K80. Duvido que minha configuração seja perfeita, mas aqui está um conjunto de pontos que gostaria de destacar:

  1. Guias oficiais ( 1 , 2 , 3 , 4 pode parecer um tanto longo e assustador à primeira vista, mas eles são fáceis de seguir. No entanto, eles perdem algumas informações importantes ( 1 , 2 , 3 , 4 ).

  2. Eu usei drivers kmod-nvidia de elrepo, lista negra nouveau com duas linhas echo -e "blacklist nouveau\noptions nouveau modeset=0" > /etc/modprobe.d/disable-nouveau.conf , não com uma única linha, como sugerido em muitos outros guias ( 1 , 2 ).

  3. A verificação dos registros a seguir é um bom ponto de partida, quando algo dá errado: /var/log/messages , /var/log/Xorg.0.log , ~/.vnc/*.log . A maioria das mensagens de erro que eu encontrei já foram discutidas e bastante fáceis para o Google.

  4. Preste atenção na verificação xdpyinfo -display :0 sanity lá. Se não estiver funcionando, responda a n / n / n em vglserver_config e desabilitando o selinux . Além disso, pessoalmente, acabei substituindo gdm por lightdm .

  5. Embora em geral o Gnome3 funcione bem, alguns erros estranhos acontecem de tempos em tempos (por exemplo, o Firefox funciona, mas a abertura do arquivo baixado com o gerenciador de arquivamento interno falha com um erro como isso . Então, acabei instalando o KDE Plasma, para que -3dwm não seja mais necessário. (Mas eu ainda gosto do servidor TurboVNC, porque é rápido).
por 21.02.2018 / 20:39
0

Meu entendimento da causa raiz é que a NVIDIA instala suas próprias bibliotecas GL que quebram outros ambientes X.

$ ldd /usr/bin/Xvnc | egrep GL
libGL.so.1 => /lib64/libGL.so.1 (0x00007f7ed8f5b000)

Um truque é fazer o jumper do NVIDIA libGL.so, direcionando o vncserver para o / usr / lib64 ANTES de / usr / lib64 / nvidia:

$ diff -cbtw /usr/bin/vncserver*
*** /usr/bin/vncserver  2018-12-08 11:07:14.871180204 -0500
--- /usr/bin/vncserver.rhel71   2014-03-10 12:17:32.000000000 -0400
***************
*** 216,223 ****

  # Now start the X VNC Server

! $cmd = "export LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH ; ";
! $cmd .= $exedir."Xvnc :$displayNumber";
  $cmd .= " -desktop " . &quotedString($desktopName);
  $cmd .= " -httpd $vncJavaFiles" if ($vncJavaFiles);
  $cmd .= " -auth $xauthorityFile";
--- 216,222 ----

  # Now start the X VNC Server

! $cmd = $exedir."Xvnc :$displayNumber";
  $cmd .= " -desktop " . &quotedString($desktopName);
  $cmd .= " -httpd $vncJavaFiles" if ($vncJavaFiles);
  $cmd .= " -auth $xauthorityFile";
[merc_user@pair-1-host ~]$

Isso está funcionando para mim com o Red Hat 7.1 e o CUDA 9-2.

    
por 08.12.2018 / 17:22