X11은 NVIDIA 카드를 실행하는 컴퓨터에서 AMD 카드가있는 컴퓨터로 OpenGL 응용 프로그램을 전달


15

나는 OpenGL을 이용한 원격 프로세스 실행하기 위해 SSH를 통해 X11 세션을 전달에 관심이 있어요 (특히, 전망대 에 익숙한 사람을위한입니다.)

내가 겪고있는 문제는 그래픽 카드의 불일치로 인해 전망대가 충돌한다는 것입니다. "NV-GLX"확장명을 찾을 수 없습니다. 정확한 오류 출력 :

Xlib:  extension "NV-GLX" missing on display "localhost:10.0".
Xlib:  extension "NV-GLX" missing on display "localhost:10.0".
X Error of failed request:  GLXUnsupportedPrivateRequest
  Major opcode of failed request:  149 (GLX)
  Minor opcode of failed request:  16 (X_GLXVendorPrivate)
  Serial number of failed request:  24
  Current serial number in output stream:  25

원격 컴퓨터가 NVIDIA 카드로 실행 중이고 로컬 컴퓨터가 AMD 카드를 사용 중입니다.

NVIDIA 카드를 사용하여 두 시스템 사이의 전망대 X11 전달을 테스트했습니다. 잘 작동합니다.

내가 알 수 있듯이 세 가지 중 하나가 발생하는 것 같습니다.

  1. 뭔가 잘못하고 있어요
  2. 내가하고 싶은 일은 불가능 해
  3. Gazebo는 서로 다른 하드웨어에 대한 분기 코드 경로를 사용하여 불가지론 적으로 빌드하지 않습니다. 빌드 할 때 시스템의 모양이 무엇이든 얻을 수 있습니다.

원격 시스템은 Ubuntu를 실행 중이고 로컬 시스템은 10.8.2를 실행하는 Mac입니다. XQuartz에서 xclock과 같은 것을 열 수 있기 때문에 정상적인 사용을 위해 x11 전달이 올바르게 설정되어 있음을 이미 알고 있습니다. 솔루션 (있는 경우)은 Windows over WinSCP를 포함한 다른 OS에서도 작동하는 것이 좋습니다.

답변:


9

GLX Wikipedia 기사의 참고 사항 :

GLX [is] X 프로토콜의 확장으로 클라이언트 (OpenGL 응용 프로그램)가 X 서버 (디스플레이를 담당하는 소프트웨어)에 3D 렌더링 명령을 보낼 수 있습니다. 클라이언트 및 서버 소프트웨어는 다른 컴퓨터에서 실행될 수 있습니다.

클라이언트와 서버가 동일한 컴퓨터에서 실행 중이고 적합한 드라이버를 사용하는 가속 3D 그래픽 카드를 사용할 수있는 경우 이전 두 구성 요소를 DRI로 무시할 수 있습니다. 이 경우 클라이언트 응용 프로그램은 여러 API 계층을 통해 비디오 하드웨어에 직접 액세스 할 수 있습니다.

나는 이것이 가능한지 아닌지에 대한 당신의 질문에 주먹 포인트가 대답한다고 믿습니다. 확실히 가능해야합니다. 두 번째는 클라이언트 프로그램이 로컬 X 서버 (NV GLX 드라이버)의 기능 사용을 주장하는 이유에 대한 설명을 제공 할 수 있습니다. 아마도 localhost:10.0같은 컴퓨터 라고 생각 하고 방향 연결을 시도했을 것입니다.

시도 할 사항 :

  1. 대신에 gazebo시도하십시오 glxdemo.
  2. 가능하면 같은 네트워크에서 두 대의 컴퓨터를 가져 와서 사진에서 ssh를 꺼내십시오.
  3. 큰 총 : strace당신의 gazebo호출 및 그것이 nv-glx를로드하는 이유를 알아 내십시오.

행운을 빕니다!


컴퓨터는 이미 동일한 네트워크에 있지만 모든 전망대 컴퓨터를 어느 시점에서 서버 옷장으로 옮기고 싶지만 여전히 소프트웨어의 비주얼을 사용할 수 있기 때문에 SSH 터널링을 찾고 있습니다. 동일한 네트워크에서 그것들을 갖는 것이 SSH를 필요로하지 않는 다른 구성을 허용한다고 말하지 않는 한 (나는 미친 xhost / client 설정을 추측하고 있지만 X11에 대해서는 많이 모른다.)
Doug Stephen

ssh를 필요 없음 - 트러스트 된 시스템의 모든 개인 네트워크가 시도하는 경우 xhost +로컬 시스템과 '에 원격 시스템에서 DISPLAY를 설정 IP-또는-이름의 로컬 : 0`
ckhan

1
일을 할 수 없었지만 gazebo기술적으로 올바른 제안이므로이 답변을 합격 답변으로 표시하고 있습니다. 나는 glxdemo당신이 만든 모든 제안 (네트워크를 통한 ssh 및 xserver / xclient)을 사용하여 터널링 할 수 있지만 Gazebo 자체는 분기 코드 경로를 빌드하지 않는 것처럼 보이며이 이상한 구성에서 실행되지 않는다고 가정합니다. 감사!.
Doug Stephen

전망대 웹이 있으며 정말 놀랍습니다. 원격 컴퓨터 (WAN)에서 전망대 서버를 시작하고 ssh로 터널링하고 브라우저를 열어 전망대를 볼 수 있습니다. 최고의 솔루션.
Mehdi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.