본문 바로가기
컴퓨터 & IT (Computer & IT)/Raspberry pi 3

[라즈베리파이] VNC-cannot currently show the desktop

by UltraLowTemp-Physics 2025. 2. 7.

라즈베리 파이를 이용하여 연구실 센서를 모니터링을 하고 있습니다. 주로 접속을 할 때에는 RealVNC를 사용하여 라즈베리 파이로 접속을 하였는데, 최근 접속을 하려고 하니 계속 "cannot currently show the desktop" 메시지가 계속 나오는 문제가 생겼습니다. 문제를 해결하기 위해서, 인터넷에 떠도는 해결방법을 아래에 정리를 했습니다. 

현제 저의 라즈베리파이의 설정은 다음과 같습니다. 
    • Raspberry Pi OS: Bullseye* 
    • 사용한 VNC 프로그램: RealVNC 
    • Raspberry pi에는 외부 모니터가 연결되어있지 않음. (즉, headless)

* 자신의 라즈베리파이 OS 버전을 알기 위해선. 터미널에 `cat /etc/os-release`를 입력하면 알 수 있습니다. 

0. 일반적인 문제의 발생원인

일반적으로 "cannot currenelty show the desktop" 화면이 나오는 이유는 다음과 같습니다: 라즈베리파이는 기본적으로 라즈베리 파이가 시작 전, 디스플레이가 hdmi 단자에 연결이 되어있어야지만, 해당 hdmi output이 활성화 됩니다. 만약 모니터가 연결되지 않은 경우(headless 라즈베리 파이)를 생각해봅시다. 이 경우, VNC로 접속하게 되면, 기본적인 설정에 의해, VNC 서버의 스크린은 로컬 디스플레이에 연결이 되도록 설정이 되어있습니다. 하지만, 라즈베리 파이에 외부 로컬 디스플레이가 없기 때문에, VNC 서버는 로컬 디스플레이가 없다는 응답으로 "cannot currently show the desktop" 메시지를 보내는 것입니다. 따라서 일반적으로는 headless인 경우에도, vnc 서버를 위헤 해상도를 설정해야 합니다. 

 

1. Resolution 조정

  ■ 방법 
     (a) `sudo raspi-config` 명령어를 실행한다. 
     (b) `Display options` → `VNC resolution`  → `1280x720` 해상도를 선택한다. 
     (c) 라즈베리 파이를 재부팅한 후, VNC 서버에 재접속한다.
  ■ 결과: 내 라즈베리파이의 경우, 문제를 해결하지 못함 
  ■ 결과와 상관없이, 해상도는 낮게 유지하는 것이 vnc 서버의 응답 측면에서는 좋다. 
  

2.  HDMI Hotplug 

기본적인 세팅으로, 라즈베리 파이가 시작하기 전, 모니터등이 라즈베리파이에 연결이 되어있어야지만 라즈베리파이 내의 HDMI 단자가 활성화가 된다. 따라서, 라즈베리 파이가 모니터에 연결이 되지 않고도 HDMI output을 활성화하기 위해선 아래의 몇가지 조치가 필요합니다.

   (a) `/boot/config.txt` 파일을 연다. 그 후, 해당 파일에서 아래의 명령어들을 기입합니다. 

hdmi_force_hotplug=1
hdmi_group=<number1>
hdmi_mode=<number2>
hdmi_drive=2
hdmi_ignore_edid=0xa5000080
dtoverlay=vc4-fkms-v3d

  • `hdmi_force_hotplug=1`: Pi에게 HDMI 디스플레이가 연결되어있다고 강제적으로 설정 
  • `number1`과 `number2`는 hdmi output format에 대한 설정내용입니다. 관련된 사항은 해당 링크를 통해서 알 수 있습니다. 
  • Ex) 만약 `hdmi_mode=16`일 경우, Resolution: 1080p, frequency: 60Hz, 스크린 비: 16:9 
  • `<number1>=2`, `<number2>=51` 혹은 `16`을입력한다. (해당 링크1, 링크2 참조)

   (b) 라즈베리 파이를 재부팅 후, VNC 재접속 

2.1. 만약 HDMI Hotplug를 설정해도 되지 않을 경우

■ 참조: https://www.nikouusitalo.com/blog/fixing-raspberry-pi-vnc-cannot-currently-show-the-desktop-but-its-not-resolution-or-hdmi_force_hotplug/      
■ 설명: 만약, 라즈베리 파이의 디스크 공간이 부족할 경우에도, "cannot currently show the desktop" 화면을 볼 수 있습니다. 따라서, 불필요한 데이터들을 제거함으로써 SD 카드의 메모리 공간을 확보한 다음 VNC 서버에 접속을 해봐야 합니다. 

 

3. Raspi-config a6 wayland 

■ 출처: https://www.reddit.com/r/raspberry_pi/comments/1903tcp/cannot_currently_show_the_desktop_issues_with_vnc/     
■ 방법: 
   1) 터미널에 `raspi-config`를 입력한 후, `advanced` > `a6 wayland` > `x11` 선택
   2) 재부팅 후, VNC 서버를 이용하여 재접속 
NOTE: 일반적으로 RealVNC는 리눅스 서버에서 wayland를 지원하지 않습니다. 따라서, 만약 라즈베리 파이 5 (OS: Bookworm, Debian 12)를 사용하고 있다면, VNC 설정에서 wayland를 disable해야 합니다. 

 

 

댓글