2016-08-22 2 views
1

워크 스테이션에서 vnc 서버를 실행하고 다른 컴퓨터와 연결합니다. 서버와 클라이언트 모두 데비안 제시를 실행 : Xfce와는 VNC 서버를 설치하고 xstartup되어VNC의 터미널에서 vtkXOpenGLRenderWindow 오류가 발생했습니다.

$ uname -a 
Linux debian-VAIO 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2+deb8u2 (2016-06-25) x86_64 GNU/Linux 

것은 다음 ~/.bashrc에에서

$ cat ~/.vnc/xstartup 
#!/bin/sh 
xrdb $HOME/.Xresources 
xsetroot -solid grey 
export XKL_XMODMAP_DISABLE=1 
exec startxfce4 

, 나는 아래의 라인을 추가했습니다 :

export LIBGL_ALWAYS_INDIRECT=y 
export LD_PRELOAD='/usr/lib/x86_64-linux-gnu/libstdc++.so.6' 
내가 ssh -X으로 서버에 ssh를 현재

,의 $DISPLAYlocalhost:10.0, 그리고 VTK 관련 명령 X 윈도우를 시작합니다. VNC 서버가 XFCE에 로그인하고 그것에서 터미널을 열고, SSH를 터미널에서 시작되는 경우 그러나 $DISPLAY:1.0하고 VTK는 다음과 같은 메시지와 더불어, X 창을 시작하는 데 실패 : 내가 생각

Error: In /home/orobix/Desktop/vmtk-build/VTK/Rendering/OpenGL/vtkXOpenGLRenderWindow.cxx, line 394 
vtkXOpenGLRenderWindow (0x2c30f10): Could not find a decent visual 

Error: In /home/orobix/Desktop/vmtk-build/VTK/Rendering/OpenGL/vtkXOpenGLRenderWindow.cxx, line 394 
vtkXOpenGLRenderWindow (0x2c30f10): Could not find a decent visual 

Error: In /home/orobix/Desktop/vmtk-build/VTK/Rendering/OpenGL/vtkXOpenGLRenderWindow.cxx, line 394 
vtkXOpenGLRenderWindow (0x2c30f10): Could not find a decent visual 

Error: In /home/orobix/Desktop/vmtk-build/VTK/Rendering/OpenGL/vtkXOpenGLRenderWindow.cxx, line 613 
vtkXOpenGLRenderWindow (0x2c30f10): GLX not found. Aborting. 

vnc 서버의 xstartup에있는 X 서버의 누락 된 구성과 관련된 것일 수 있습니다. 그러나 나는 그것을 어떻게하는지 모른다. 아무도 내가 그것을 디버깅하는 데 도움이 될 수 있습니까? 필요한 경우 추가 정보가 제공됩니다. 감사!

20160823 업데이트

나는 VirtualGL + TurboVNC의 제안을 받아 들여 두 개의 구성 요소를 설치했습니다. 을 사용하는 간단한 구성은 http://www.virtualgl.org/vgldoc/2_1_1/#hd009001 파트 6.1에 따라 수행되었습니다. 그럼 난 xstartup.turbovnc과 XFCE를 실행하는 TurboVNC의 vncserver을했다 :

#!/bin/sh 
unset SESSION_MANAGER 
unset DBUS_SESSION_BUS_ADDRESS 
OS=`uname -s` 
exec startxfce4 

를 클라이언트에, 나는 서버를 연결하는 TurboVNC의 vncviewer를 사용합니다. 데스크탑은 기본 vnc 서버의 데스크탑과는 상당히 다르게 보입니다. 그럼 난 vmtkimageviewer이 창을 열어야하는

/opt/VirtualGL/bin/vglrun vmtkimageviewer -ifile image_volume_voi.vti 

을 시도했지만 결국 오류 밖으로 준다 :

Executing vmtkimageviewer ... 
X Error of failed request: GLXBadContext 
    Major opcode of failed request: 156 (GLX) 
    Minor opcode of failed request: 6 (X_GLXIsDirect) 
    Serial number of failed request: 17 
    Current serial number in output stream: 16 

그리고 불행하게도, 내가 ssh -X으로, 나는 X 윈도우를 시작할 수 없습니다 찾을를 내가 이전에했던 것처럼 $DISPLAY은 아직 localhost:10.0입니다. 출력은 다음과 같습니다.

Executing vmtkimageviewer ... 
X Error of failed request: BadValue (integer parameter out of range for operation) 
    Major opcode of failed request: 156 (GLX) 
    Minor opcode of failed request: 3 (X_GLXCreateContext) 
    Value in failed request: 0x0 
    Serial number of failed request: 37 
    Current serial number in output stream: 38 

사실 저는 VirtualGL과 유사하므로 (?) 사실 인 것처럼 생각합니다. 다음을 위해 무엇을해야합니까?

답변

1

Xrdp (Xvnc 또는 Xvfb)에서 사용하는 X 서버 변형은 간단히 OpenGL/GLX를 지원하지 않으므로 OpenGL을 필요로하는 프로그램은 해당 구성에서 작동하지 않습니다. 메사 swrast 또는 llvmpipe에

대체 그래도 가능하다 : 마지막으로 http://www.mesa3d.org/llvmpipe.html

+0

내가 이런 식으로해서는 안된다는 뜻입니까? 나는 툴킷을 사용하고 있으며 그것을 재 컴파일하기가 어렵다. – purplezzh

+0

@purplezzh : 두 가지 옵션이 있습니다. 1)'libGL.so'를 서버 측에서 GLX 확장없이하고 소프트웨어 래스터 라이저를 사용하여 렌더링하는 것으로 대체하십시오. 2) OpenGL을 완벽하게 지원하는 원격 디스플레이 시스템을 사용하십시오. OpenGL/GLX 자체는 네트워크 투명합니다. 그것이 ssh -X가 작동하는 이유입니다. OpenGL 커맨드는 단순히 네트워크를 통해 보내지고 작업중인 터미널의 X 서버/OpenGL 드라이버는 무거운 짐을 싣고 있습니다. 그러나 대역폭 효율이 좋지 않으며 VirtualGL과 같은 것을 사용하는 것이 더 적합 할 수 있습니다. http://www.virtualgl.org/About/Introduction – datenwolf

+0

@purplezzh : 또한 잘 작동하는 것은 * Xpra *를 사용하여 렌더링을 수행하기 위해 시스템에 설치된 실제 GPU를 사용하도록 구성하는 것입니다. Xpra와 Xrdp를 결합 할 수도 있습니다. 단점은 Xorg 드라이버 모델에서 한 번에 하나의 X 서버 만 GPU에 액세스 할 수 있다는 것입니다. – datenwolf

1

, 나는 모든이 완료되었다. VirtualGL만으로도 충분합니다. user's guide에 6.2 & 6.3 섹션으로 설치하고 구성하십시오. 평소대로 vncservervncviewer을 사용하면 TurboVNC가 필요하지 않습니다. OpenGL 지원이 필요한 경우 vglrun을 사용하십시오.한 가지 수정은 .bashrc에서 export LIBGL_ALWAYS_INDIRECT=y을 삭제해야한다는 것입니다.

제 경우에는 유창합니다. @ datenwolf : 다시 한번 감사드립니다!

관련 문제