워크 스테이션에서 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를 현재
,의 $DISPLAY
이 localhost: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과 유사하므로 (?) 사실 인 것처럼 생각합니다. 다음을 위해 무엇을해야합니까?
내가 이런 식으로해서는 안된다는 뜻입니까? 나는 툴킷을 사용하고 있으며 그것을 재 컴파일하기가 어렵다. – purplezzh
@purplezzh : 두 가지 옵션이 있습니다. 1)'libGL.so'를 서버 측에서 GLX 확장없이하고 소프트웨어 래스터 라이저를 사용하여 렌더링하는 것으로 대체하십시오. 2) OpenGL을 완벽하게 지원하는 원격 디스플레이 시스템을 사용하십시오. OpenGL/GLX 자체는 네트워크 투명합니다. 그것이 ssh -X가 작동하는 이유입니다. OpenGL 커맨드는 단순히 네트워크를 통해 보내지고 작업중인 터미널의 X 서버/OpenGL 드라이버는 무거운 짐을 싣고 있습니다. 그러나 대역폭 효율이 좋지 않으며 VirtualGL과 같은 것을 사용하는 것이 더 적합 할 수 있습니다. http://www.virtualgl.org/About/Introduction – datenwolf
@purplezzh : 또한 잘 작동하는 것은 * Xpra *를 사용하여 렌더링을 수행하기 위해 시스템에 설치된 실제 GPU를 사용하도록 구성하는 것입니다. Xpra와 Xrdp를 결합 할 수도 있습니다. 단점은 Xorg 드라이버 모델에서 한 번에 하나의 X 서버 만 GPU에 액세스 할 수 있다는 것입니다. – datenwolf