이전 포스트에서 라즈베리파이 개발환경 꾸미기에 대해서 시리즈로 연재했는데요, 주요 컨셉은 라즈베리파이를 하나의 컴퓨터 처럼 모니터, 키보드, 마우스 연결해서 쓰는 형식이 아닌 개발보드로 연결해서 터미널로만 연결해서 사용할 수 있는 방법에 대해서 알아 보았어요.
그런데, 때에 따라서는 라즈베리파이 데스크탑 환경, 즉 GUI를 출력하는 프로젝트를 해야 할때가 있는데요, 이때에는 별도의 모니터를 라즈베리파이에 연결하지 않으면 화면을 볼 수가 없으니 개발을 할 수 가 없겠죠. 이번 포스트에서는 바로 이럴때 라즈베리파이에 굳이 모니터를 연결하지 않고도 데스크탑(GUI) 출력을 확인할 수 있는 방법에 대해서 다뤄보려고 합니다. 사용할 수 있는 기술은 여러가지가 있는데, 여기서는 VNC라는 것을 이용하는 방법을 소개합니다. 결론적으로 말씀드리면 VNC를 이용해서 라즈베리파이의 데스크탑 환경을 원격의 개발 PC에서 보고 조작할때 쓸 수 있는 방법은 크게 2가지 입니다. 하나는, 새롭게 접속할때 마다 새로운 데스크탑을 띄우는 방식과 나머지 하나는, 기존에 띄워둔 데스크탑을 그대로 공유해서 개발 PC에 띄우는 방식입니다. 두번째 방식은 여러 개발자가 하나의 화면을 공유하는데도 응용할 수 있습니다. PC에 VNC 클라이언트 설치 우선 어떤 방식으로 접근을 하든 개발PC에는 VNC 클라이언트 프로그램을 설치해야 합니다. 아래의 사이트에서 윈도우, 맥, 리눅스 용 프로그램을 다운로드 받을 수 있습니다. http://www.realvnc.com/download/ VNC View를 받아도 되고, VNC를 받아서 View만 깔아도 되고 그렇습니다. 설치는 인스톨러로 설치되기 때문에 윈도우나 맥이 다르지 않습니다. 라즈베리파이에 VNC 서버 설치 라즈베리파이에는 VNC 서버를 설치합니다. 앞서 말씀 드린 대로 데스크탑화면을 접속할때 마다 새로 띄우느냐, 아니면 기존에 띄워진 화면을 공유하느냐에 따라서 사용하는 서버가 다른데요. “tightvncserver”가 새로띄우는, “x11vnc”가 기존것을 공유하는 것입니다. 필요에 따라 골라서 설치하거나, 일단 설치해두고 필요한 것만 써도 될것 같습니다. $ sudo apt-get install tightvncserver 라즈베리파이에서 VNC 서버 실행 서버실행은 앞서 설명한 대로 로그인 할때 마다 새로운 데스크탑 화면을 띄울것인지, 맨 처음 로그인한 화면을 나중에 로그인 할 때도 같은 화면을 띄울것인지에 따라 다릅니다. 새로운 화면을 띄우는 방식이 기본적으로 사용되는 방식이고 속도는 더 빠릅니다. 모든 로그인한 사람이 하나의 화면을 공유해서 보는 방식은 아무래도 속도가 느릴 수 밖에 없습니다.
$ vncserver :1 뒤에 붙이는 숫자는 클라이언트 접속할때 필요합니다.
x11vnc를 기본으로 실행하면 경고가 뜹니다. 같은 네트워크에 있는 누구든 이 화면을 볼 수 있다는 내용인데요, 경고 내용을 잘 읽어보시고 필요에 따라 비밀번호를 설정하시면 됩니다. PC에서 VNC 클라이언트 접속 앞서 설치한 VNC 클라이언트를 실행해서 라즈베리파이에 접속합니다.
vncserver에 접속하는 경우에는 IP주소 뒤에 콜론과 숫자를 붙이는데, 여기에 붙이는 숫자는 앞서 서버 실행할때 지정한 숫자와 같습니다.
x11vnc인 경우는 그냥 라즈베리파이 IP 주소만 입력하면 됩니다. 아예 라즈베리파이에 모니터가 연결되어 로그인되어 있지 않은상태에서 x11vnc로 접속하면 화면이 뭘 할 수 도 없을 만큼 너무 작게 나올 수 도 있습니다. 최초 x윈도우를 띄울때 실제 모니터가 연결되어 있지 않기 때문에 자동으로 해상도를 가장 작게 설정되기 때문인데요, 이것은 화면 해상도를 지정해주면 됩니다. $ sudo vi /boot/config.txt hdmi_force_hotplug = 1 파일의 내용 중의 위의 내용을 찾아 맨앞에 붙은 ‘#’을 제거해서 주석을 해제해주고 ‘hdmi_mode’의 값을 원하는 해상도의 값으로 지정해 주면 됩니다. 해상도 값은 아래의 표에서 찾아서 해당하는 숫자를 지정하면 되구요. hdmi_mode=1 640x350 85 Hz |