X 가상 프레임 버퍼 화면은 1024x768이 아닌 1024x9216입니다.

X 가상 프레임 버퍼 화면은 1024x768이 아닌 1024x9216입니다.

Ubuntu Linux에서 실행되는 X 가상 프레임 버퍼 서버가 있고 VNC를 통해 해당 화면에 액세스하고 싶습니다.

내 단계는 다음과 같습니다.

  1. Xvfb :1.0 -screen 0 1024x768x16 &

  2. 암호를 설정하세요: x11vnc -storepasswd.

  3. x11vnc -display :1.0 -usepw -forever -ncache 10 -autoport 5900 &

    Using X display :1.0
    rootwin: 0x1a9 reswin: 0x200001 dpy: 0x174f920
    ...
    Default visual ID: 0x21
    Read initial data from X display into framebuffer.
    initialize_screen: fb_depth/fb_bpp/fb_Bpl 16/16/2048
    rfbNewFramebuffer(0x1797f20, 0x0, 1024, 9216, 5, 1, 2)
    ...
    X display :1.0 is 16bpp depth=16 true color
    

그런 다음 다음을 통해 macOS에서 VNC 서버에 액세스했습니다.

open vnc://my-vnc-ip:5901/

1024x9216그러나 동시에 표시되는 화면이 12개 더 있는 것처럼 프레임 버퍼가 너무 넓습니다( ). 이상적으로는 1024x768화면이 있는 모니터 하나만 갖고 싶습니다 .

예상 해상도로 보이는 화면을 볼 수 있도록 어떻게 수정하나요?

답변1

-ncache(실험적) 옵션으로 인해 문제가 발생한 것 같습니다 . 제거하면 문제가 해결됩니다.

기본적으로 활성화된 경우 를 사용하여 비활성화해 보세요 -noncache.

활성화되면 기본적으로 더 빠른 검색을 위해 VNC 뷰어 측의 화면 외부에 픽셀 데이터를 저장하는 클라이언트 측 캐싱 체계가 활성화되며 모든 VNC 뷰어에서 작동해야 합니다. 그러나 일부 클라이언트에서는 제대로 작동하지 않는 것 같습니다.

따라서 올바른 명령은 다음과 같습니다.

x11vnc -display :1.0 -usepw -forever -autoport 5900

ncache가 아닌 다른 경우에는-clip옵션도움이 될 수도 있습니다.


~에 따르면우분투 포럼 주제, 이것이 -ncache작동하는 방식입니다.

데스크탑을 일반 것보다 10배 더 크게 만들고 추가 프레임 버퍼를 사용하여 창과 해당 저장 장치를 캐시합니다.

KRDC가 해당 영역을 표시하지 않도록 할 수 없는 경우(예: 창 크기 조정) KRDC와 함께 사용할 수 없습니다 x11vnc -ncache.

따라서 현재 유일한 -ncache"지원"은 시청자가 스크롤 막대를 갖고 자동 스크롤을 비활성화할 수 있는 것입니다. 또는 unix/macosx 에서 사용하세요 ssvnc.

바라보다:x11vnc가 픽셀 데이터의 클라이언트 측 캐싱을 수행할 수 있습니까?더 많은 정보를 알고 싶습니다.

n은 -ncache n캐싱에 사용되는 기본 프레임 버퍼 크기의 증가 요소입니다. 이는 짝수이며 좋은 응답을 위해서는 6~12로 상당히 커야 합니다. 이를 위해서는 일반적으로 클라이언트와 서버 측 모두에 약 50-100MB의 추가 RAM이 필요합니다. 예를 들어 n=6인 경우 1280x1024 모니터는 1280x7168의 프레임 버퍼를 사용합니다. 라인 1024 아래의 모든 항목은 픽셀 버퍼 캐시입니다.

관련 정보