localhost에서 LXC 게스트를위한 빠른 X?


12

LXC 컨테이너 내에서 X 앱을 효율적으로 실행하려면 어떻게해야합니까?

ssh -Y guest

그래픽 가속이 너무 빠르기 때문에 ssh -Y모든 것이 전통적인 X11 프로토콜로 가상 네트워크를 통해 이동해야합니다.

호스트와 게스트 응용 프로그램간에 복사하여 붙여 넣을 수있는 것이 바람직하지만 필수는 아닙니다. 호스트와 게스트에 각각 하나씩 두 개의 X 서버를 실행하는 것이 필수적입니다.

/dev/tty0누락 된 것에 대해 불평하기 때문에 게스트 내에서 기본 Xorg를 실행할 수 없으며 mknod루트로 할 때도 권한이 거부되어 게스트에서 해당 장치를 사용할 수 없습니다 .

답변:


12

당신이 시도 할 수 있습니다 xpra 또한 한 번 봐 가지고, 등 또는 NX, VNC를 VirtualGL을 당신이 GL 가속을 원하는 경우.

호스트와 디렉토리를 공유 할 수 있으면 xpra와 함께 mmap을 사용하여 (mmap 파일의 경로 지정) 성능을 크게 향상시킬 수 있습니다.


누군가 Xpra와 Xephyr을 LXC와 함께 사용하는 방법에 대한 안전한 예를 공유 할 수 있습니까?
baptx

3

참고 :이 접근 방식은 약간의 해킹입니다. 또한 호스트와 게스트 사이의 복사 및 붙여 넣기를 지원하지 않으며 완전히 안전하지 않습니다!

  1. 추가 /tmp로 통과 게스트 구성에 추가 파일 시스템으로 /tmp호스트.
  2. 다음 단계는 X 보안을 사용하지 않기 때문에 X 서버가 모든 종류의 네트워크 연결을 허용하도록 구성되어 있지 않은지 확인하십시오.
  3. xhost +터미널 창에 입력하십시오 .
  4. LXC 게스트 시작
  5. 게스트 내에서 원하는 일반 사용자로 로그인하고 (즉, 루트가 아닌) 다음을 입력하십시오.

DISPLAY=:0 Xephyr :2 -screen 1024x768 -dpi 96 &

DISPLAY=:2 /etc/X11/xinit/Xsession

게스트 내부 (여기 2를 사용하여 여러 LXC VM에 연결하는 경우 사용할 화면 번호로 두 s를 교체 ) 해상도 ( -screen) 및 DPI ( -dpi) 매개 변수를 조정하십시오.

이 작업은 게스트에서 실행되는 Xephyr 중첩 X 서버 (UNIX 도메인 소켓과 MIT-SHM 확장을 모두 사용함)에 대한 "프록시"연결과 Xephyr에서 호스트 X 서버 (UNIX 도메인 소켓을 사용하는)에 대한 다른 연결을 설정합니다. LXC의 설계로 인해 MIT-SHM을 사용할 수있는 한 결정할 수는 없습니다. 이것은 적어도 내 하드웨어 (nvidia)의 오픈 소스 드라이버를 사용하여 LXC 게스트에서 가능한 가장 빠른 구성 인 것 같습니다.


Xephyr을 LXC와 함께 사용하는 안전한 방법이 있습니까? Xephyr과의 X11 격리는 firejail에 의해 지원되므로 LXC에서도 올바르게 수행 할 수 있습니다.
baptx
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.