수년 동안 저는 집을 나갈 때 "집 컴퓨터"로 VNCing(ssh를 통해)하고 엄격한 vnc 서버 환경에서 Evolution(이메일, 연락처 등을 위해)을 실행하는 습관을 가졌습니다.
이것은 가정용 컴퓨터가 Debian/Squeeze를 실행할 때 제대로 작동했지만 이제 Wheezy로 업데이트되었으므로 VNC 서버 세션 출력에서 Evolution을 시작해 보십시오.
Xlib: extension "GLX" missing on display ":1".
Failed to connected to any renderer:
XServer appears to lack required GLX support
ightvncserver가 GLX를 지원하지 않는다는 것은 놀라운 일이 아니지만 Evolution이 GL 백엔드로 이동한 것은("clutter" 툴킷을 사용하여?) 놀랍습니다. (분명히 말하자면 Evolution은 데스크톱에서 완벽하게 실행됩니다. 컴퓨터에는 DKMS를 통한 NVIDIA 드라이버가 있습니다.)
이 문제를 해결할 전망은 무엇입니까? 내 의견은 다음과 같습니다.
- 이 문제를 해결하기 위한 Evolution의 명령줄 옵션이 있습니까?
- VNC 서버에서 GLX 지원을 받을 수 있는 방법이 있습니까? (tightvncserver 대안이 이를 지원합니까?)
저는 대기 시간이 길고 대역폭이 낮은 링크를 통해 VNC를 사용하는 경향이 있습니다. 이전에 X11을 통해 원격으로 Evolution을 실행해 본 적이 있는데 VNC가 훨씬 더 잘 작동하지 않았습니다.
데비안 친화적인(apt-get -able) 솔루션이 선호됩니다.
답변1
vnc를 통해 qtcreator를 작동시키려고 할 때 동일한 문제가 발생하여 결국 작동하지 않는 이유와 해결 방법을 알아냈습니다.
http://minkirri.apana.org.au/wiki/DevJournal
VirtualGL이 필요하지 않으며 대안보다 더 나쁠 수도 있습니다. 중요한 것은 표준 데비안 패키지를 사용하면 작동한다는 것입니다.
VirtualGL은 애플리케이션 서버 측 하드웨어 가속에 사용됩니다. GLX는 x 서버 측 하드웨어 가속에 사용됩니다. VNC를 정상적으로 사용하는 경우 애플리케이션 서버와 x 서버는 vnc 서버와 동일한 시스템에 있으므로 VirtualGL과 GLX 사이에는 큰 차이가 없습니다.
문제는 가장 일반적인 두 vnc 서버인 Tightvncserver 및 vnc4server가 자체 내부 x 서버가 있는 x 프록시 서버이며 GLX를 지원하지 않는다는 것입니다. 3D 응용 프로그램을 계속 사용할 수 있지만 이전 응용 프로그램 서버측 소프트웨어 렌더링을 사용해야 합니다. 즉, 일반적으로 설치된 하드웨어 렌더링 버전과 충돌하는 응용 프로그램 서버에 libgl1-mesa-swx11을 설치해야 함을 의미합니다. libgl1-mesa-glx.
또는 하드웨어 렌더링 GLX를 지원하는 일반 x-server를 설치하고 실제 x-server 화면을 캡처할 수 있는 vncserver인 x11vnc를 사용할 수 있습니다.
누군가가 libvncserver(x11vnc에서 사용)를 사용하여 적절한 GLX 지원을 갖춘 새로운 x-proxy vnc-server를 작성했다면 좋을 것입니다. ightvncserver와 vnc4server 모두 약간 까다로워지고 있습니다.
답변2
더 많은 연구를 해본 결과, 모든 길은 다음으로 이어지는 것 같습니다.가상 GL(문서), 아직 시도하지는 않았지만(설정 지침이 약간... 위협적입니다). 문서일부 .debs를 가리킵니다., 그리고 열려 있는 항목이 있습니다.데비안용 ITP.
대안으로 Mesa를 통해 GLX를 지원하는 긴밀한 vncserver를 구축하는 것이 가능할 것 같습니다(예:여기). 물론 GPU 가속은 아니지만(하지만 그래픽 성능이 얼마나 향상될 수 있을까요?)이메일필요? ? ? );더 걱정스러운 점은(최소한 제가 마지막으로 시도했을 때) 데비안에서는 컴퓨터에 동시에 두 개 이상의 OpenGL 라이브러리 세트를 설치하는 것을 허용하지 않으며 기본 사용을 위해 하드웨어 가속을 포기하고 싶지 않습니다. .
어떻게든 성공하면 여기에서 업데이트하겠습니다. 물론 다른 (가능한) 솔루션/포인터에도 여전히 관심이 있습니다.
진행 상황: 적절한 .deb를 통해 VirtualGL을 설치하고 지침을 따르면(처음 생각만큼 나쁘지는 않습니다. 여러 플랫폼 적용 범위로 인해 다소 부피가 커집니다) GLX가 vnc 서버에서 지원되므로 하드웨어가 가속화되었습니다. 이런 상황은 처음 봤어요!
/opt/VirtualGL/bin/vglrun glxgears
진화는 이 메커니즘을 통해서도 작동하여 내 주요 문제를 해결합니다.
그러나 이 접근 방식에는 몇 가지 중요한 문제가 있습니다. 누군가가 호스트에 로그인한 경우에만 작동합니다.아니요gdm3 "greeter"가 표시되면 vglrun에서 "Cannot open display: 0" 오류가 발생하고 모든 종류의 디스플레이 전환(가상 콘솔로 ctrl-alt-Fn을 실행하는 등)이 종료됩니다. vglrun 응용 프로그램에서 "픽셀을 읽을 수 없습니다" 오류가 발생합니다. 그런데 화면 잠금은 괜찮은 것 같습니다. 내 목적에 대해서는 괜찮습니다. (VNC를 통해 연결된 시스템의 기본 사용자이고 항상 로그인되어 있으며 ctrl-alt-Fn과 같은 기술적인 작업을 수행할 가능성이 가장 적은 다른 사람들이 있습니다.) 데스크탑에서), 다른 사람들에게는 이상적이지 않을 수 있습니다.
고쳐 쓰다: 실제로 gdm3 "인사말"을 표시할 때 VNC+GLX를 활성화하도록 수정되었습니다. xhost +LOCAL:
의 시작 부분 근처에 줄을 놓으 십시오 /etc/gdm3/Init/Default
. 스크립트 vglserver_config
는 실제로 이 작업을 수행하려고 시도하지만(안전하지 않은 설정의 경우) gdm3의 구성 파일에 대해서는 아무것도 모릅니다(그러나 gdm 및 xdm은 확인합니다). 더 나은 접근 방식(및 설정 중에 vglurs 그룹을 사용하여 더 안전한 옵션을 선택했다고 가정할 때 구성 스크립트가 수행하려는 작업)은 거기에 하나를 두는 것이지만 예상을 누르지 vglgenkey
않으면 아무 것도 수행하지 않는 것 같습니다. /etc/opt/VirtualGL/vgl_xauth_key
a)를 생성합니다.
고쳐 쓰다:/etc/opt/VirtualGL/vgl_xauth_key
실제로, Debian-gdm 사용자를 vglurs 그룹에 추가하면 gdm3 생성을 활성화할 수 있습니다. 그러나 이는 문제를 다른 곳으로 옮길 뿐이며, vglrun은 이제 /var/run/gdm3/(root:Debian-gdm 권한이 있음)에서 무언가를 잠글 수 없다고 불평합니다. 나는 이제 내 능력을 넘어섰고 끔찍할 정도로 안전하지 않은 xhost +LOCAL:
라인을 끝내야 할 것이라는 데는 의심의 여지가 없습니다.
고쳐 쓰다:방금 이 허름한 데비안 머신을 Wheezy에서 Jessie로, SourceForge에서 virtualgl 2.5 debs로 업데이트했습니다. vglrun evolution
서버가 구성되면 vglrun_config
.
고쳐 쓰다:Debian9("Stretch")부터 virtualgl 대신 Tigervncserver(이 릴리스에서 Tigervnc-standalone-server 패키지를 통해 Debian stable의 새로운 기능이라고 생각함)를 사용하도록 전환했습니다. 보다다른 답변.
답변3
나는 Debian9("stretch")에 다음과 같은 것이 있다는 것을 보았습니다.TigerVNC 전용 서버이미 나타났습니다. 여기에는 일부 OpenGL 지원이 포함된 것 같습니다(메사는 종속성이라는 것을 알았습니다). 새로운 Debian9 설치에 설치하고 아무 문제 없이 부팅했는데, 부팅하면 Gnome(.Xsession 파일을 망칠 필요가 없음)을 실행하는 독립 실행형("화면 스크래핑" 아님) 데스크탑이 생겼습니다. 이것은 진화를 실행하는 것 같습니다. 문제 없이 glxgear를 사용합니다. Virtualgl은 머신에 설치할 필요도 없습니다. 아주 좋아! (비록 이 솔루션이 아마도 SW 렌더링을 사용하고 있을 것이라고 강하게 의심하지만 virtualgl에서는 GPU를 사용하고 있습니다. 최신 CPU의 주요 2D 데스크톱 애플리케이션의 경우에는 괜찮습니다.)
Tigervnc 서버는 기본적으로 원격(로컬 호스트가 아닌) 연결을 허용하지 않습니다(이를 재정의하는 명령줄 옵션이 있지만). 이는 (현명하게) SSH 터널링을 사용하도록 권장합니다!