MIT 공유 메모리 확장 또는 SSH를 통한 MIT-SHM

MIT 공유 메모리 확장 또는 SSH를 통한 MIT-SHM

privileged lxc archlinux containerlxc를 사용하여 Archlinux 호스트에서 성공적으로 만들었습니다. dnsmasq와 ssh를 통해 고정 IP를 설정하고 이를 xauth전달 에 사용합니다 X11. 그런 다음 mupdfor와 같은 프로그래밍 언어에서 or 그리기 기능과 같은 프로그램을 호출합니다. 이 모든 것이 잘 작동하지만 다음을 사용하여 파일을 열 때 콘솔에 오류 메시지가 계속 인쇄됩니다.RMatlab*.pdfmupdf

     ximage: disabling shared memory extension: BadAccess (attempt to access private resource denied)

이에 대한 두 가지 간단한 질문:

  1. 이 오류 메시지는 정확히 무엇을 의미합니까?
  2. 이 오류를 해결하려면 어떻게 해야 합니까(또는 무시해도 되나요?)

답변1

공유 메모리는 소켓을 사용하지 않고 렌더링된 이미지를 교환하기 위한 메커니즘입니다. 프로토콜은 다음과 같이 작동합니다. X 클라이언트는 공유 버퍼를 생성하고, X 클라이언트는 서버에 알리며 that's where you will find the images i create, 서버는 자체적으로 공유 메모리에 "연결"되며 이 메커니즘은 10x를 제공합니다. 공유 메모리가 있는 경우 업데이트를 플러시한 후 소켓 전송이 더 빨라지지만 제로 복사 렌더링보다 느립니다. 원하는 경우 다음 환경 변수를 설정하여 이 메커니즘을 비활성화할 수 있습니다.

QT_X11_NO_MITSHM=1
_X11_NO_MITSHM=1
_MITSHM=0

관련 정보