2.2.라즈베리파이의 개발 환경 설정(1)


라즈베리파이 개발 환경 구축

RealVNC를 이용한 접속

-RealVNC 로고



라즈베리파이에 OS가 설치되었고 PC와 통신에 문제가 없는 것을 확인하였으면 이제 RealVNC viewer를 PC에 설치할 것이다.
VNC는 Virtual Network Computing의 약자로 컴퓨터 환경에서 원격으로 다른 컴퓨터를 제어하는 그래픽 데스크톱 공유 시스템을 의미한다.
메카트로닉스 실습에서는 라즈베리파이 재단의 공식 문서에서 설명하고 있는 RealVNC를 사용하여 PC에서 라즈베리파이를 제어할 것이다.
아래의 링크에서 자신의 PC 운영체제에 맞는 것으로 다운로드하면 된다.
라즈베리파이에 VNC 기능은 2016년 9월부터 라즈베리파이에 기본 탑재된 RealVNC 서버이며 기본적으로 활성화 되어 있다.

RealVNC

-RealVNC 뷰어 설정하기


RealVNC Viewer 설치를 완료한 후에 실행한다. 프로그램이 실행되면 상단의 입력칸에 앞서서 설정한 라즈베리파이의 Host name인 raspberrypi#.local을 입력하고 Enter를 눌러 라즈베리파이의 VNC 서버에 접속을 한다.


[주의] 앞서서 라즈베리파이와의 통신을 확인할 때 Host name이 인식되지 않아서 IP address를 입력한 경우, VNC 입력창에 IP address를 입력할 것.

-라즈베리파이의 VNC 서버에 접속하기


라즈베리파이의 VNC 서버에 접속을 시도하며 다음과 같이 Authentication 창이 뜨면서 Username과 Password를 물어본다.
각각 piraspberry를 입력하고 Remember password란에 체크를 한 뒤에 OK를 눌러 접속을 진행한다.
OK를 누르면 나타나는 경고창이 나오는 경우가 있는데 Continue를 누르면 초기 ID와 비밀번호가 바뀌지 않았다고 경고가 나오는데 이는 무시한다.

[주의] 실습을 진행하는 동안 절대 라즈베리파이의 Username과 Password를 변경하지 않는다.

라즈베리파이와 성공적으로 연결이 되면 다음과 같은 화면이 출력된다.

-라즈베리파이 바탕화면



또한 OS를 설치한 후에 처음으로 라즈베리파이에 접속을 하게된다면 여러가지 기본설정을 하도록 설정창이 뜨는 경우가 있다.
이 경우는 해당 설정창을 무시하고 닫아주면 된다.

라즈베리파이 기본 설정

이제 막 라즈베리파이에 OS를 설치하고 접속하였기 때문에 몇까지 software 기본 설정을 해줄 필요가 있다.

Ctrl + Alt + T 단축키 조합으로 라즈베리파이 터미널을 연다. 또는 화면 상단의 >_ 아이콘을 클릭하여도 된다. 터미널에 다음과 같은 명령어를 입력한다.

sudo raspi-config


-라즈베리파이 Software Configuration Tool


다음과 같이 Configuration Tool 창이 뜨면 이제 몇가지 설정을 진행한다.

Host name이 인식이 안되는 경우

가장 먼저 앞선 과정을 진행하면서 Host name인 raspberrypi#.local이 인식되지 않은 경우에는 Host name을 수정할 필요가 있다.
인식이 된 경우는 이 단계를 건너뛰어도 된다.
Configuration Tool 메뉴에서 2.Network Options - N1 Hostname로 이동한다.
이동하면 Host name을 설정하는데 사용할 수 있는 문자의 범위와 숫자를 알려주는데 이는 무시한다.
그러면 이제 Host name을 입력할 수 있는 창이 뜨는데 아마 raspberrypi - ~~~~의 형식이거나 전혀 다른 이름이 지정되어 있을 것이다.
이를 raspberry#(조번호)로 수정하고 저장한다.

라즈베리파이의 해상도를 조정하고 싶은 경우

라즈베리파이에 VNC를 통해서 접속했을 때, VNC 창이 너무 작거나 해상도가 낮을 수 있다.
해상도를 조정하고 싶은 경우에는 Configuration Tool 메뉴에서 7.Advacned Options - A5 Resolution으로 이동한다.
이후 해상도 설정 리스트가 뜨면 원하는 해상도를 선택하고 저장한다.

파일 시스템 확장하기

지금 상황에서 라즈베리파이의 OS는 우리가 사용하는 SD card의 모든 저장소를 사용하지 못한다.
따라서 파일 시스템을 확장하여 모든 용량을 사용할 수 있도록 해줘야 한다.
Configuration Tool 메뉴에서 7.Advacned Options - A1 Expand Filesystem으로 이동한다.
그러면 이제 Root partition이 resize 되었고 다음 부팅 시에 반영된다고 하는 창이 뜰 것이다.

SSH 통신 허용하기

추후 필요에 의하여 SSH 통신을 이용할 수 있기 때문에 이를 미리 허용해준다.
Configuration Tool 메뉴에서 5.Interfacing Options - P2 SSH로 이동한다.
그러면 이제 SSH server를 활성화할 것이냐 창이 뜨는데 허용을 해주면 된다.

이 SSH 대해 설명하자면 Secure Shell Protocol의 약자로 네트워크 프로토콜 중의 하나이다.
컴퓨터와 컴퓨터가 인터넷과 같은 공용 네트워크 환경에서 보안상 안전하게 통신을 가능하게 해주는 프로토콜이며 주로 데이터 전송이나 원격 제어에서 사용된다.
통신을 위해서 사용되는 다양한 프로토콜 중에서 SSH가 사용되는 이유는 바로 뛰어난 보안성 때문이다.
SSH는 한 쌍의 Key 세트를 사용해서 접속하려는 컴퓨터와 인증 과정을 거치고 암호화된 메세지를 주고 받는다.
이 Key 세트는 Private Key와 이에 대응하는 Public Key로 이루어져 있이며 이 둘은 난수적인 관계를 맺고 있다.
Private Key는 외부에 노출되지 않는 Key로 암호화된 메시지를 복호화할 수 있고 반대로 Public Key의 경우에는 메시지를 암호화 할 수 있지만 암호화된 메시지를 복호화할 수는 없다.
통신을 통해 접속을 하는 컴퓨터를 클라이언트, 접속을 하려는 컴퓨터를 서버라고 하면, 클라이언트는 먼저 서버에 자신의 Public Key를 복사하여 전달한다.
그 후 본격적인 접속을 하기 전에 클라이언트는 서버에게 먼저 서버가 가지고 있는 Public Key를 요청하여 받고 자신이 가지고 있는 Private Key와 비교하여 관계가 있는지를 검사한다.
두 Key가 서로 난수적인 관계를 가지고 있는 것이 인증되면 두 컴퓨터 사이에 채널이 형성이 되고 그 후로는 클라이언트가 정보를 요청하며 서버는 가지고 있는 Public Key를 가지고 메시지를 암호화하여 전달하고 클라이언트는 전달받은 암호화 메시지를 Private Key로 복호화하여 받는다.
그 사이에서 누군가 암호화된 메시지를 훔쳐보더라도 Private Key가 없기에 복호화가 불가능 하다.

설정 이후 재부팅

모든 설정을 마치고 Configuration Tool을 Finish 하면 재부팅 할 것인지를 물어본다.
Yes를 선택하여 재부팅을 해주자.
다시 VNC Viewer를 키지 않아도 충분한 시간을 기다린다면 다시 라즈베리파이에 접속할 수 있을 것이다.