개발자/Raspberry Pi

라즈베리파이 개발환경을 3가지 방법으로 구현하기

지구빵집 2015. 7. 24. 11:24
반응형



이글은 라즈베리 파이에 입문하여 처음 사용하려는 사용자를 위해 작성하였다.

보통 개발을 하든, 무엇인가 하려고 할때 환경을 구축하는것은 까다롭고 힘든 일이다. 그 과정이 단순하고, 쉬울 경우 작업 속도와 성과는 잘 나올 수 있다. 처음 라즈베리 파이를 구입하여 개발환경을 구축하기까지 약간은 번거롭고 힘이 든 과정을 알기 쉽게 설명하려 한다. 문의사항이나 잘 안되는 것은 언제든 답글에 남겨주기 바란다.


무엇이 그리도 바쁜 분들은 맨 아래 슬라이드 쉐어에 공유한 개발과정 구축 문서가 있으니 바로 다운로드 하시거나 다음 링크로 방문하시길...  http://www.slideshare.net/kimbongzo/04-50345226


라즈베리 파이 버전이 어떠하든 적용될 수 있도록 설명한다. 여기서는 라즈베리 파이 B+, 2 로 설명한다. 라즈베리 파이의 전체 외관과 연결부분에 대한 설명을 보자.




위 그림과 같이 연결할 부분도 많고, 한 대의 컴퓨터와 같은 외부 연결부들을 가지고 있다. 지레 겁먹지 말자. 우리는 여기에서 단지 몇 가지만을 연결하여 개발 환경을 구축할 것이다. 라즈베리 파이는 정말 한 대의 독립적인 컴퓨터이다. 이것을 잊지말자. 운영체제와 키보드, 마우스, 인터넷 연결이 필요한 일반 PC 와 같은 독립된 컴퓨터이다. 


아래는 라즈베리 파이 개발환경을 구축하는 방법을 3가지를 설명한 것이다.




1번이 가장 많이 사용되고 단순한 방법이다. 그러나 가장 불편한 방법이다. ㅎ SD 카드에 운영체제를 구워 부팅하는 방법은 다음 링크를 참고한다. 라즈베리 파이에 SD 카드 이미지 구워 부팅하기 http://fishpoint.tistory.com/1654


라즈베리 파이에 전원을 연결하고 HDMI 모니터 케이블 연결, 그리고 키보드 하나만 연결하면 개발환경이 구축되고, 터미널 환경에서 모든것을 하게 된다. 


2번은 HDMI 모니터가 없을경우에 이용하는 방법인데 Serial to USB 보드가 있다면 노트북에 연결하여 SSH 로 연결하여 사용하는 방법이다. 이때 사용하는 SSH 프로그램이나 연결방법은 아래에 설명한다. 이 방법의 장점은 노트북과 Serial to USB 케이블만 있다면 커피샵이나 다방이나 카페 같은데서 개발 할 수 있다는게 장점이다.


3번의 개발환경이 보통 개발자들이 사용하는 방법이다. 윈도우 개발환경이라고 생각하면 된다. 여기서 HDMI 모니터에 연결하는 이유는 단지 라즈베리 파이의 IP 주소를 알아내기 위해 사용하는 방법이다. 모니터가 DVI와 HDMI 포트 두가지를 제공하는 경우에는 PC 는 DVI 포트에 연결하고, 라즈베리파이는 HDMI 포트에 연결하여 소스를 바꿔가면서 사용하면 된다. 이 상태에서 라즈베리 파이에 삼바서버를 설치하고 윈도우 탐색기로 접속하여 개발을 한다. 3번 아래에 설명한다.



1번 개발 환경에서는 특별이 설명할 것이 없다. 모두 연결하고 터미널 환경에서 작업하면 된다.


2번 개발 환경에서는 Serial to USB 케이블이나 보드가 필수이다. 그래야 노트북에서 접속하여 사용할 수 있다. 이러한 환경 구축 방법을 아래에 설명한다.

 


위와 같이 구현하기 위해서는 다양한 Serial to USB 변환 케이블이나 보드를 사용한다. 어떤것을 사용하든 결국 라즈베리 파이 40핀 GPIO에서 1번 - VCC, 6번 -GND, 8번 - TXD, 10번 - RXD 에 열결해야 한다. 참고사진과 관련 링크 참고 : https://learn.adafruit.com/adafruits-raspberry-pi-lesson-5-using-a-console-cable 


 



이미지 출처 : http://lavalink.com/2012/03/raspberry-pi-serial-interfacing/



라즈베리 파이는 부팅 화면을 Serial 포트로 보내도록 설정되어 있으므로 SSH 프로그램을 이용하여 아래그림과 같이 설정하여 접속한 후 부팅하면 부팅화면이 보일 것이다.


 SSH(Secure SHell)는 네트워크를 통해 원격으로 다른 호스트에 액세스하는 과정을 보호하기 위한 의도로 설계되었다. SSH는 더욱 우수한 인증 기능뿐만 아니라 SCP(Secure Copy), SFTP(Secure File Transfer Protocol), X 세션 전달 및 포트 전달과 같은 기능을 제공하여 네트워크에서 교환되는 데이터를 암호화함으로써 기타 비보안 프로토콜의 보안성을 강화한다. 사용 가능한 암호화 유형은 512비트 암호화에서 Blowfish, Triple DES, CAST-128, AES(Advanced Encryption Scheme) 및 ARCFOUR와 같은 암호를 포함한 32768비트 암호화에 이르기까지 다양하다.


1. 라즈베리 파이 설정


라즈베리 파이 설정 명령인 $raspi-config 에서 Advanced Option 의 A4 SSH 항목을 Enable 로 설정해야 사용할 수 가 있는데 초기에 기본설정으로 Enable 되어 있다.


2. PuTTy 다운로드(윈도우용 SSH 프로그램)

윈도우에서는 기본적으로 SSH 기능을 수행하는 프로그램이 없으므로 SSH와 관련된 오픈 소스 프로그램인 PuTTY를 다운로드 받아 설치한다. 


다운로드 사이트 : 

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 에서 For Windows on Intel x86 항목의 Putty.exe 를 다운받아 실행하면 된다.


3. 다운로드 받은 putty 프로그램을 실행하여 Host Name 영역에 라즈베리 파이의 네트워크 IP 주소를 입력하자. 라즈베리 파이의 IP 주소는 부팅시에도 나오지만 콘솔에서 $ifconfig 명령으로 확인할 수 있다.


pi@raspberrypi ~ $ ifconfig

eth0      Link encap:Ethernet  HWaddr b8:27:eb:f0:fd:96

          inet addr:192.168.1.238  Bcast:192.168.1.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1


위와 같이 확인한 IP 주소를 입력하고 하단의 [Open] 버튼을 클릭하면 바로 SSH 접속이 시작된다. 이렇게 접속을 하게 되어 윈도우 상에서 작업을 하게 되면 마우스와 키보드 연결은 필요가 없게 된다. 그러나 라즈베리 파이의 IP 주소를 확인할 방법이 없기 때문에 UART 통신을 사용해 접속하는 방법을 사용해야 한다.


Putty 프로그램 실행후 Serial 포트로 부팅화면 나오도록 설정화면


2번에 대한 개발환경 설정방법은 이상으로 마치고 3번으로 넘어간다.


아래와 같은 환경이 가장 편하다고 설명했다. 일단 라즈베리 파이가 부팅을 하여 라즈베리 파이의 IP 주소를 $ifconfig 를 통해 알아냈다면 바로 공유기에 함께 연결된(즉, 같은 네트워크 환경에 있다면) PC 에서 라즈베리 파이에 접속하여 윈도우에서 개발할 수 있는 환경을 구성한다.  


이러한 환경에서 라즈베리 파이에 접속하여 사용할 수 있게 해주는것이 삼바인데 설명은 아래에 있다.



삼바(samba)는 SMB(Server Message Block) 또는 CIFS (Common Internet File System)로 알려져 있으며 리눅스와 윈도우간에 파일 및 프린터를 공유할 수 있게 해주는 프로그램이다. 삼바를 통해 리눅스 서버를 타운영체제와 파일을 공유할 수 있는 파일서버로도 사용할 수 있다. 이와같이 삼바가 공유할 수있는 이유는 SMB(Server Message Block)/CIFS(Common Internet File System)라는 프로토콜을 이용함으로써 가능해졌다.


  SMB 란 ?

SMB(Server Message Block)는 마이크로소프트사와 인텔이 윈도우 시스템이 

다른 시스템의 디스크나 프린터와 같은 자원을 공유할 있도록하기 위해 

개발된 프로토콜이다. TCP/IP 기반하의 NetBIOS 프로토콜을 이용하기 때문에 

이 프로토콜은 NFS, NIS, lpd 와 같은 유닉스의 분산인증구조와 유사하다. 

따라서 윈도우 중심의 네트워크 환경에서는 리눅스를 이용한 공유시스템

에서는 SMB가 필수적이다..


  CIFS 란?

CIFS(Common Internet File System) 는 네트워크를 위한 SMB 파일 공유 

프로토콜의 확장된 버전이며, 윈도우와 유닉스 환경을 동시에 지원하는 

인터넷의 표준 파일 규약의 프로토콜이다. CIFS는 이전의 폐쇄적인 SMB 

프로토콜과는 달리 CIFS 규약 정의는 여러 유닉스 업체의 참여하여 

결정된 내용이기 때문에 삼바도 버전이 올라감에 따라(삼바 버전 2.2 이상) 

CIFS 규약을 잘 준수하여 안정성이 상당히 향상 되었다.


즉, 삼바를 이용하면 라즈베리파이의 파일을 윈도우 환경에서 수정하거나 자유롭게 생성하할 수 있다. 즉 윈도우 탐색기에서 하는 기능을 그대로 라즈베리파이 환경에서 구동된다. 이를 이용하면 영상이나 음성 파일을 자유롭게 공유할 수 있고 라즈베리파이를 이용한 개발에도 매우 편리한 환경을 갖게 된다.


1. 삼바 설치

우선 삼바 프로토콜 및 삼바서버, 클라이언트와 관련된 의존성 패키지를 다음의 명령어를 이용하여 설치한다. 


$sudo apt-get install samba samba-common-bin


2. 필요한 메모리를 허용

설치도중에 필요한 공간 할당을 물어오는데 y 를 입력하면 설치가 계속된다.


pi@raspberrypi ~ $ sudo apt-get install samba samba-common-bin

Reading package lists... Done

Building dependency tree

Reading state information... Done

The following extra packages will be installed:

  tdb-tools

Suggested packages:

  openbsd-inetd inet-superserver smbldap-tools ldb-tools ctdb

The following NEW packages will be installed:

  samba samba-common-bin tdb-tools

0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.

Need to get 6,119 kB of archives.

After this operation, 36.1 MB of additional disk space will be used.

Do you want to continue [Y/n]? y


3. 삼바 유저 추가 및 패스워드 설정


다음의 명령어로 pi라는 삼바유저를 추가한다. 그러면 패스워드를 물어볼 것이다. 자신이 원하는 패스워드를 입력해준다.


$sudo smbpasswd –a pi


아래와 같이 실행되어 패스워드를 두번 설정한다. 패스워드는 raspberry로 설정하였다. 


pi@raspberrypi ~ $ sudo smbpasswd -a pi

New SMB password:

Retype new SMB password:

Added user pi.

pi@raspberrypi ~ $


4. 삼바설정


다음의 명령어로 삼바 설정 파일을 수정해주어야 한다. 다른 설정을 변경할 필요없이 파일의 제일 하단에 새로운 유저 pi 에 대한 설정을 추가한다.


$sudo nano /etc/samba/smb.conf


명령을 사용하면 터미널에서 nano 편집기가 실행된다. 화살표키를 이용하여 제일 아래로 내려가서 다음 명령줄들을 입력한다. 입력이 끝나면 ctrl-x 를 누르면 저장할것이냐고 물어오면 y 를 누르고 같은 파일 이름이므로 enter 를 누르고 빠져나오면 된다. 


[pi]

comment = rpi samba server by girin

path = /home/pi

valid user = pi

writable = yes

browseable = yes

comment  : 유저 서버 설정에 대한 코멘트로 마음대로 적는다.

path : 공유할 폴더를 지정한다. 작업 폴더인 /home/pi 를 지정한다.

valid user : 사용 가능한 유저를 지정

writable : 쓰기를 가능하게 할 것인지에 대한 옵션

browseable : 공유 폴더의 목록을 보여주는 옵션


5. 삼바 재실행


설정된 내용이 반영될 수 있도록 삼바를 재실행시켜준다.

$sudo service samba restart


6. 공유폴더접속


초기 계정 아이디는 pi 이고 패스워드는 Raspberry 이다.

 

윈도우의 탐색기 혹은 네트워크를 열어서 폴더 주소 칸에 \\192.168.1.238\ 과 같이 라즈베리파이의 IP 주소를 적어주면 아래와 같이 공유를 설정해둔 라즈베리 파이 폴더에 접속할 수 있다. 여기에서 새로운 디렉토리를 만들고, 파일의 수정, 삭제, 복사, 이동이 가능하게 된다.

  



위와 같이 접속할 수 있으면 잘 된것이다. 

개발자들에게 필요한 것은 개발과정에서 일어난 크고 작은 경험을 공유할 수 있는 환경과 그런 일에 시간을 할애할 수 있는 환경이다.


참고 자료 : 라즈베리 파이 개발환경 구축





반응형