라즈베리파이 VNC 설정
VNC (Virtual Network Computing)
RFB 프로토콜 방식을 이용해 화면 정보를 서버에서 클라이언트로 전송한다.
RFB 프로토콜 (Remote Frame Buffer)
프레임 버퍼 레벨에서 동작한다.
OS에 관계없이 모든 OS에서 프레임 단위로 통신한다.
SSH보다 느리지만 화면을 보고 싶을 때 유용하다.
라즈베리파이에서 vncserver 실행
라즈비안에 기본적으로
vncserver
프로그램이 있기 때문에, 다음과 같이 입력해주면 바로 실행된다.vncserver
VNC(R) Server 6.7.2 (r42622) ARMv6 (May 13 2020 19:34:10) Copyright (C) 2002-2020 RealVNC Ltd. RealVNC and VNC are trademarks of RealVNC Ltd and are protected by trademark registrations and/or pending trademark applications in the European Union, United States of America and other jurisdictions. Protected by UK patent 2481870; US patent 8760366; EU patent 2652951. See https://www.realvnc.com for information on VNC. For third party acknowledgements see: https://www.realvnc.com/docs/6/foss.html OS: Raspbian GNU/Linux 10, Linux 5.10.17, armv7l On some distributions (in particular Red Hat), you may get a better experience by running vncserver-virtual in conjunction with the system Xorg server, rather than the old version built-in to Xvnc. More desktop environments and applications will likely be compatible. For more information on this alternative implementation, please see: https://www.realvnc.com/doclink/kb-546 Running applications in /etc/vnc/xstartup VNC Server catchphrase: "Flood optimal alias. Patrol Ramirez Spain." signature: b3-19-aa-c5-b2-82-33-bd Log file is /home/pi/.vnc/raspberrypi:1.log New desktop is raspberrypi:1 (192.168.0.10:1)
- 마지막 줄의
192.168.0.10:1
이 의미하는 것은라즈베리파이 기기의 ip:디스플레이 번호
인 것 같다.
- 마지막 줄의
옵션으로 해상도나 디스플레이 번호를 설정할 수 있다.
vncserver -geometry 1280x1024 :3
-geometry 1280x1024
: 해상도를 설정한다.:3
: 디스플레이 번호를 3번으로하여 서버를 연다.
끄는 방법
vncserver -kill :1
-kill :1
: 1번 디스플레이 서버를 끈다.
다른 기기에서 접속
VNC 뷰어를 설치해야 한다.
vncserver
명령어의 출력 결과 3번째 줄에RealVNC
관련 언급이 있어서 해당 프로그램으로 실행해보기로 했다.RealVNC 설치
무설치 버전을 선호해서,
Standalone EXE x64
버전으로 다운받아서 실행했다.
VNC 뷰어를 실행하고, 주소를 입력하는 곳에다가
vncserver
명령어 출력 결과의 마지막 줄에 있던ip:1
을 입력한다. (위의 경우192.168.0.10:1
)포트번호처럼
:1
을 썼지만, 이는 디스플레이 번호를 의미한다.vnc의 기본 포트는 5900번이고, 여기에 디스플레이 번호를 더한게 포트 번호가 된다.
즉 RealVNC에서 주소표시줄에
ip:1
로 연결했을 경우 로그인 창에서도 나타나듯이 포트번호가 5901인ip:5901
로 연결된 것을 알 수 있다.
Continue를 클릭하고, 라즈베리파이를 설치했을 때 설정한 이름과 비밀번호를 입력하면 연결된다.
한글 입력법은 링크 참고
라즈베리파이 부팅 시 vncserver 자동 실행
/etc/init.d/
디렉토리에 스크립트를 작성해준다.서비스 간에 이름이 겹칠까봐 파일명을
myvnc
로 만들었다.vim
으로 편집하는데, 방향키가 제대로 적용이 안되면 많이 불편하다.root 권한이 아니면 저장할 수가 없어서 다음 명령어로 편집했다.
sudo vi myvnc
/etc/init.d/myvnc
#!/bin/sh ### BEGIN INIT INFO # Provides: vncserver # Required-Start: networking # Required-Stop: networking # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start/Stop vncserver ### END INIT INFO VNCUSER='pi' GEOMETRY="1280x1024" case "$1" in start) echo "Starting vncserver for $VNCUSER" su $VNCUSER -c "vncserver -geometry $GEOMETRY :1" ;; stop) echo "Stopping vncserver for $VNCUSER" su $VNCUSER -c "vncserver -kill :1" ;; restart) $0 stop $0 start ;; *) echo "Usage: /etc/init.d/myvnc {start | stop}" exit 1 ;; esac exit 0
start
,stop
,restart
명령을 지원하는 스크립트이다.시작 시 1번 디스플레이 서버를 열도록 한다.
시스템 시작 시 자동 실행 설정
권한 변경 및
update-rc.d
에 등록sudo chmod 755 /etc/init.d/myvnc sudo update-rc.d myvnc defaults
나중에 해제하려면 다음 명령어를 입력한다.
sudo update-rc.d myvnc remove
reboot
후 확인ls /etc/rc*.d | grep myvnc service myvnc status systemctl status myvnc
참고
'Raspberrypi' 카테고리의 다른 글
라즈베리파이 부팅 시 자동 실행 (0) | 2021.03.13 |
---|---|
라즈베리파이에서 리액트 작업 환경 설정 (0) | 2021.03.09 |
라즈베리파이 USB 마운트 해제 (0) | 2021.03.09 |
라즈베리파이 Nginx 설치 (0) | 2021.03.09 |
라즈베리파이 SSH 설정 (0) | 2021.03.09 |