이전 포스트에서 라즈베리파이 개발환경 꾸미기에 대해서 시리즈로 연재했는데요,
주요 컨셉은 라즈베리파이를 하나의 컴퓨터 처럼 모니터, 키보드, 마우스 연결해서 쓰는 형식이 아닌
개발보드로 연결해서 터미널로만 연결해서 사용할 수 있는 방법에 대해서 알아 보았어요.
- 라즈비안 OS 설치하기
- 키보드 모니터 없이 라즈베리파이 Login 하기
- Wifi 설정 / 기본 설정하기
- 파이썬 + Eclipse로 라즈베리파이 개발하기
- 라즈베리파이에 NodeJs 설치하기
- NodeJs + Eclipse로 라즈베리파이 개발하기
- C/C++ Cross Compiler(Tool Chain) 설치하기
- Eclipse + C/C++ 로 라즈베리파이 개발하기
그런데, 때에 따라서는 라즈베리파이 데스크탑 환경, 즉 GUI를 출력하는 프로젝트를 해야 할때가 있는데요,
이때에는 별도의 모니터를 라즈베리파이에 연결하지 않으면 화면을 볼 수가 없으니 개발을 할 수 가 없겠죠.
터미널에서는 실행되지 않는 프로세스들도 있구요.
터미널에서는 실행되지 않는 프로세스들도 있구요.
이번 포스트에서는 바로 이럴때 라즈베리파이에 굳이 모니터를 연결하지 않고도 데스크탑(GUI) 출력을
확인할 수 있는 방법에 대해서 다뤄보려고 합니다.
사용할 수 있는 기술은 여러가지가 있는데, 여기서는 VNC라는 것을 이용하는 방법을 소개합니다.
결론적으로 말씀드리면 VNC를 이용해서 라즈베리파이의 데스크탑 환경을 원격의 개발 PC에서 보고 조작할때 쓸 수 있는 방법은
크게 2가지 입니다.
하나는, 새롭게 접속할때 마다 새로운 데스크탑을 띄우는 방식과
나머지 하나는, 기존에 띄워둔 데스크탑을 그대로 공유해서 개발 PC에 띄우는 방식입니다.
두번째 방식은 여러 개발자가 하나의 화면을 공유하는데도 응용할 수 있습니다.
PC에 VNC 클라이언트 설치
우선 어떤 방식으로 접근을 하든 개발PC에는 VNC 클라이언트 프로그램을 설치해야 합니다.
아래의 사이트에서 윈도우, 맥, 리눅스 용 프로그램을 다운로드 받을 수 있습니다.
VNC View를 받아도 되고, VNC를 받아서 View만 깔아도 되고 그렇습니다.
설치는 인스톨러로 설치되기 때문에 윈도우나 맥이 다르지 않습니다.
라즈베리파이에 VNC 서버 설치
라즈베리파이에는 VNC 서버를 설치합니다.
앞서 말씀 드린 대로 데스크탑화면을 접속할때 마다 새로 띄우느냐, 아니면 기존에 띄워진 화면을 공유하느냐에 따라서
사용하는 서버가 다른데요.
“tightvncserver”가 새로띄우는, “x11vnc”가 기존것을 공유하는 것입니다.
필요에 따라 골라서 설치하거나, 일단 설치해두고 필요한 것만 써도 될것 같습니다.
$ sudo apt-get install tightvncserver
$ sudo apt-get install x11vnc
$ sudo apt-get install x11vnc
라즈베리파이에서 VNC 서버 실행
서버실행은 앞서 설명한 대로 로그인 할때 마다 새로운 데스크탑 화면을 띄울것인지,
맨 처음 로그인한 화면을 나중에 로그인 할 때도 같은 화면을 띄울것인지에 따라 다릅니다.
새로운 화면을 띄우는 방식이 기본적으로 사용되는 방식이고 속도는 더 빠릅니다.
모든 로그인한 사람이 하나의 화면을 공유해서 보는 방식은 아무래도 속도가 느릴 수 밖에 없습니다.
- 새로운 화면 띄우는 방식
$ vncserver :1
뒤에 붙이는 숫자는 클라이언트 접속할때 필요합니다.
- 같은 화면 공유하는 방식
$ x11vnc
x11vnc를 기본으로 실행하면 경고가 뜹니다. 같은 네트워크에 있는 누구든 이 화면을 볼 수 있다는 내용인데요,
경고 내용을 잘 읽어보시고 필요에 따라 비밀번호를 설정하시면 됩니다.
PC에서 VNC 클라이언트 접속
앞서 설치한 VNC 클라이언트를 실행해서 라즈베리파이에 접속합니다.
- vncserver 인 경우
vncserver에 접속하는 경우에는 IP주소 뒤에 콜론과 숫자를 붙이는데,
여기에 붙이는 숫자는 앞서 서버 실행할때 지정한 숫자와 같습니다.
- x11vnc 인 경우
x11vnc인 경우는 그냥 라즈베리파이 IP 주소만 입력하면 됩니다.
아예 라즈베리파이에 모니터가 연결되어 로그인되어 있지 않은상태에서
x11vnc로 접속하면 화면이 뭘 할 수 도 없을 만큼 너무 작게 나올 수 도 있습니다.
최초 x윈도우를 띄울때 실제 모니터가 연결되어 있지 않기 때문에
자동으로 해상도를 가장 작게 설정되기 때문인데요,
이것은 화면 해상도를 지정해주면 됩니다.
아래 설정파일을 vi나 nano같은 편집기로 열어 줍니다.
$ sudo vi /boot/config.txt
hdmi_force_hotplug = 1
hdmi_group = 2
hdmi_mode = 16 #원하는 설정 값으로 수정
hdmi_drive = 1
hdmi_group = 2
hdmi_mode = 16 #원하는 설정 값으로 수정
hdmi_drive = 1
파일의 내용 중의 위의 내용을 찾아 맨앞에 붙은 ‘#’을 제거해서 주석을 해제해주고
‘hdmi_mode’의 값을 원하는 해상도의 값으로 지정해 주면 됩니다.
해상도 값은 아래의 표에서 찾아서 해당하는 숫자를 지정하면 되구요.
위의 예시에서는 16을 설정했으니 1024x768 60hz 라는 뜻이네요.
위의 예시에서는 16을 설정했으니 1024x768 60hz 라는 뜻이네요.
hdmi_mode=1 640x350 85 Hz
hdmi_mode=2 640x400 85 Hz
hdmi_mode=3 720x400 85 Hz
hdmi_mode=4 640x480 60 Hz
hdmi_mode=5 640x480 72 Hz
hdmi_mode=6 640x480 75 Hz
hdmi_mode=7 640x480 85 Hz
hdmi_mode=8 800x600 56 Hz
hdmi_mode=9 800x600 60 Hz
hdmi_mode=10 800x600 72 Hz
hdmi_mode=11 800x600 75 Hz
hdmi_mode=12 800x600 85 Hz
hdmi_mode=13 800x600 120 Hz
hdmi_mode=14 848x480 60 Hz
hdmi_mode=15 1024x768 43 Hz DO NOT USE
hdmi_mode=16 1024x768 60 Hz
hdmi_mode=17 1024x768 70 Hz
hdmi_mode=18 1024x768 75 Hz
hdmi_mode=19 1024x768 85 Hz
hdmi_mode=20 1024x768 120 Hz
hdmi_mode=21 1152x864 75 Hz
hdmi_mode=22 1280x768 Reduced blanking
hdmi_mode=23 1280x768 60 Hz
hdmi_mode=24 1280x768 75 Hz
hdmi_mode=25 1280x768 85 Hz
hdmi_mode=26 1280x768 120 Hz Reduced blanking
hdmi_mode=27 1280x800 Reduced blanking
hdmi_mode=28 1280x800 60 Hz
hdmi_mode=29 1280x800 75 Hz
hdmi_mode=30 1280x800 85 Hz
hdmi_mode=31 1280x800 120 Hz Reduced blanking
hdmi_mode=32 1280x960 60 Hz
hdmi_mode=33 1280x960 85 Hz
hdmi_mode=34 1280x960 120 Hz Reduced blanking
hdmi_mode=35 1280x1024 60 Hz
hdmi_mode=36 1280x1024 75 Hz
hdmi_mode=37 1280x1024 85 Hz
hdmi_mode=38 1280x1024 120 Hz Reduced blanking
hdmi_mode=39 1360x768 60 Hz
hdmi_mode=40 1360x768 120 Hz Reduced blanking
hdmi_mode=41 1400x1050 Reduced blanking
hdmi_mode=42 1400x1050 60 Hz
hdmi_mode=43 1400x1050 75 Hz
hdmi_mode=44 1400x1050 85 Hz
hdmi_mode=45 1400x1050 120 Hz Reduced blanking
hdmi_mode=46 1440x900 Reduced blanking
hdmi_mode=47 1440x900 60 Hz
hdmi_mode=48 1440x900 75 Hz
hdmi_mode=49 1440x900 85 Hz
hdmi_mode=50 1440x900 120 Hz Reduced blanking
hdmi_mode=51 1600x1200 60 Hz
hdmi_mode=52 1600x1200 65 Hz
hdmi_mode=53 1600x1200 70 Hz
hdmi_mode=54 1600x1200 75 Hz
hdmi_mode=55 1600x1200 85 Hz
hdmi_mode=56 1600x1200 120 Hz Reduced blanking
hdmi_mode=57 1680x1050 Reduced blanking
hdmi_mode=58 1680x1050 60 Hz
hdmi_mode=59 1680x1050 75 Hz
hdmi_mode=60 1680x1050 85 Hz
hdmi_mode=61 1680x1050 120 Hz Reduced blanking
hdmi_mode=62 1792x1344 60 Hz
hdmi_mode=63 1792x1344 75 Hz
hdmi_mode=64 1792x1344 120 Hz Reduced blanking
hdmi_mode=65 1856x1392 60 Hz
hdmi_mode=66 1856x1392 75 Hz
hdmi_mode=67 1856x1392 120 Hz Reduced blanking
hdmi_mode=68 1920x1200 Reduced blanking
hdmi_mode=69 1920x1200 60 Hz
hdmi_mode=70 1920x1200 75 Hz
hdmi_mode=71 1920x1200 85 Hz
hdmi_mode=72 1920x1200 120 Hz Reduced blanking
hdmi_mode=73 1920x1440 60 Hz
hdmi_mode=74 1920x1440 75 Hz
hdmi_mode=75 1920x1440 120 Hz Reduced blanking
hdmi_mode=76 2560x1600 Reduced blanking
hdmi_mode=77 2560x1600 60 Hz
hdmi_mode=78 2560x1600 75 Hz
hdmi_mode=79 2560x1600 85 Hz
hdmi_mode=80 2560x1600 120 Hz Reduced blanking
hdmi_mode=81 1366x768 60 Hz
hdmi_mode=82 1080p 60 Hz
hdmi_mode=83 1600x900 Reduced blanking
hdmi_mode=84 2048x1152 Reduced blanking
hdmi_mode=85 720p 60 Hz
hdmi_mode=86 1366x768 Reduced blanking
hdmi_mode=2 640x400 85 Hz
hdmi_mode=3 720x400 85 Hz
hdmi_mode=4 640x480 60 Hz
hdmi_mode=5 640x480 72 Hz
hdmi_mode=6 640x480 75 Hz
hdmi_mode=7 640x480 85 Hz
hdmi_mode=8 800x600 56 Hz
hdmi_mode=9 800x600 60 Hz
hdmi_mode=10 800x600 72 Hz
hdmi_mode=11 800x600 75 Hz
hdmi_mode=12 800x600 85 Hz
hdmi_mode=13 800x600 120 Hz
hdmi_mode=14 848x480 60 Hz
hdmi_mode=15 1024x768 43 Hz DO NOT USE
hdmi_mode=16 1024x768 60 Hz
hdmi_mode=17 1024x768 70 Hz
hdmi_mode=18 1024x768 75 Hz
hdmi_mode=19 1024x768 85 Hz
hdmi_mode=20 1024x768 120 Hz
hdmi_mode=21 1152x864 75 Hz
hdmi_mode=22 1280x768 Reduced blanking
hdmi_mode=23 1280x768 60 Hz
hdmi_mode=24 1280x768 75 Hz
hdmi_mode=25 1280x768 85 Hz
hdmi_mode=26 1280x768 120 Hz Reduced blanking
hdmi_mode=27 1280x800 Reduced blanking
hdmi_mode=28 1280x800 60 Hz
hdmi_mode=29 1280x800 75 Hz
hdmi_mode=30 1280x800 85 Hz
hdmi_mode=31 1280x800 120 Hz Reduced blanking
hdmi_mode=32 1280x960 60 Hz
hdmi_mode=33 1280x960 85 Hz
hdmi_mode=34 1280x960 120 Hz Reduced blanking
hdmi_mode=35 1280x1024 60 Hz
hdmi_mode=36 1280x1024 75 Hz
hdmi_mode=37 1280x1024 85 Hz
hdmi_mode=38 1280x1024 120 Hz Reduced blanking
hdmi_mode=39 1360x768 60 Hz
hdmi_mode=40 1360x768 120 Hz Reduced blanking
hdmi_mode=41 1400x1050 Reduced blanking
hdmi_mode=42 1400x1050 60 Hz
hdmi_mode=43 1400x1050 75 Hz
hdmi_mode=44 1400x1050 85 Hz
hdmi_mode=45 1400x1050 120 Hz Reduced blanking
hdmi_mode=46 1440x900 Reduced blanking
hdmi_mode=47 1440x900 60 Hz
hdmi_mode=48 1440x900 75 Hz
hdmi_mode=49 1440x900 85 Hz
hdmi_mode=50 1440x900 120 Hz Reduced blanking
hdmi_mode=51 1600x1200 60 Hz
hdmi_mode=52 1600x1200 65 Hz
hdmi_mode=53 1600x1200 70 Hz
hdmi_mode=54 1600x1200 75 Hz
hdmi_mode=55 1600x1200 85 Hz
hdmi_mode=56 1600x1200 120 Hz Reduced blanking
hdmi_mode=57 1680x1050 Reduced blanking
hdmi_mode=58 1680x1050 60 Hz
hdmi_mode=59 1680x1050 75 Hz
hdmi_mode=60 1680x1050 85 Hz
hdmi_mode=61 1680x1050 120 Hz Reduced blanking
hdmi_mode=62 1792x1344 60 Hz
hdmi_mode=63 1792x1344 75 Hz
hdmi_mode=64 1792x1344 120 Hz Reduced blanking
hdmi_mode=65 1856x1392 60 Hz
hdmi_mode=66 1856x1392 75 Hz
hdmi_mode=67 1856x1392 120 Hz Reduced blanking
hdmi_mode=68 1920x1200 Reduced blanking
hdmi_mode=69 1920x1200 60 Hz
hdmi_mode=70 1920x1200 75 Hz
hdmi_mode=71 1920x1200 85 Hz
hdmi_mode=72 1920x1200 120 Hz Reduced blanking
hdmi_mode=73 1920x1440 60 Hz
hdmi_mode=74 1920x1440 75 Hz
hdmi_mode=75 1920x1440 120 Hz Reduced blanking
hdmi_mode=76 2560x1600 Reduced blanking
hdmi_mode=77 2560x1600 60 Hz
hdmi_mode=78 2560x1600 75 Hz
hdmi_mode=79 2560x1600 85 Hz
hdmi_mode=80 2560x1600 120 Hz Reduced blanking
hdmi_mode=81 1366x768 60 Hz
hdmi_mode=82 1080p 60 Hz
hdmi_mode=83 1600x900 Reduced blanking
hdmi_mode=84 2048x1152 Reduced blanking
hdmi_mode=85 720p 60 Hz
hdmi_mode=86 1366x768 Reduced blanking
기타 자세한 설정은 http://elinux.org/RPiconfig 를 참조하시면 됩니다.
'Programming > IoT_Embedded' 카테고리의 다른 글
라즈베리파이 카메라 OpenCV (3) | 2017.11.17 |
---|---|
라즈베리파이 OpenCV 설치(빌드 없이 설치파일로) (82) | 2017.11.17 |
원격 터미널로(윈도우, 맥) 라즈베리파이 GUI 띄우기 (2) | 2017.10.12 |
키보드/모니터 없이 랜선만으로 raspberry pi 사용하기- 인터넷 공유 (15) | 2016.10.24 |
라즈베리파이 GPIO에 이름표를 붙이자! Raspberry Leaf (0) | 2016.10.20 |
라즈베리파이 개발환경 꾸미기 #8. Eclipse + C/C++로 라즈베리파이 개발하기 (14) | 2016.05.10 |
라즈베리파이 개발환경 꾸미기 #7.C/C++ Cross Compiler(Tool Chain) 설치하기(윈도우/맥) (4) | 2016.05.10 |
라즈베리파이 개발환경 꾸미기 #6. NodeJs + Eclipse로 라즈베리파이 개발하기 (2) | 2016.05.09 |
라즈베리파이 개발환경 꾸미기 #5. 라즈베리파이에 NodeJs 설치하기 (5) | 2016.05.04 |
라즈베리파이 개발환경 꾸미기 #4. 파이썬 + Eclipse 로 라즈베리파이 개발하기 (12) | 2016.05.04 |