0. 전체 작업 줄거리 작성 후 세부 리스트별 출력.
0. 사전준비
1) 하드웨어
a. Raspberry PI 2
b. USB 전원 케이블(Micro 5 PIN, 안드로이드스마트폰 전원 연결 아답터 포함)
c. microSD Card(8GB Class4 이상)
d. microSD Card 리더기
e. LAN 케이블
f. HDMI 케이블(또는 HDMI to DVI)
g. 모니터, USB 키보드, USB 마우스
h. USB 무선 Adapter(AP기능 포함, 없어도 괜찮으나, 있으면 활용도 높음)
i. Case(비싸면 명함 Case로 자작)
2) 소프트웨어
a. Ubuntu Mate 15.04 Raspberry PI(https://ubuntu-mate.org/raspberry-pi/)
b. SD Formatter 4.0 for Windows(https://www.sdcard.org/downloads/formatter_4/)
c. Win32 Disk Imager(https://www.raspberrypi.org/downloads/)
d. Sublime Text 2(or 3 http://www.sublimetext.com/)
1. 초기 설치
1) microSD Card 초기화
2) microSD Card에 OS 복사
3) Ubuntu Mate 설치
위에서 작성된 microSD Card를 Raspberry PI에 넣고 전원을 연결하면 부팅과정이 지나가고 아래 화면들이 나온다.
마지막에 리부팅 후, 로그인 화면이 아래처럼 나오고,
로그인 후 이 화면에서 Ctrl+Alt+T로 창을 열고 아래 작업을 수행한다.
4) 원격 접속 환경 구축
기본 운영체제를 설치하면 원격으로 접속할 수 있는 방법이 없다. 추가로 xrdp와 openssh-server를 설치하여 네트워크를 통한 접속이 가능하도록 구성한다. 이후는 Raspberry PI가 아래처럼 간소화된다. 처음에 Raspberry PI를 인터넷에 연결하는 것이 어려우면 노트북으로 간단히 연결할 수 있다. 무선랜을 사용하고 케이블을 Raspberry PI와 연결한다. 네트워크 및 공유센터에서 어댑터 설정 변경을 클릭하고 무선랜의 속성을 열고 공유 탭에서 "다른 네트워크 사용자가 이 컴퓨터의 인터넷 연결을 통해 연결할 수 있도록 허용"을 선택하고 적용한다. 그러면 LAN Port가 192.168.0.x를 사용하는 DHCP 환경이 된다. Raspberry PI에서 열려 있는 창에서
sudo apt-get update; sudo apt-get upgrade 로 최신 버전으로 업데이트하고,
sudo apt-get install xrdp, openssh-server 를 설치한다.
네트워크를 직접 제어하기 위해 network-manager를 삭제하고 수동으로 동작하도록 수정한다.
sudo vi /etc/network/interfaces
auto eth0
iface eth0 inet dhcp
:wq
sudo apt-get remove --purge network-manager-gnome network-manager
sudo apt-get autoremove
reboot 후 CMD 창에서 arp -a를 입력하면 아래처럼 연결되어 있는 정보를 확인할 수 있다.
윈도우즈에 있는 원격데스크탑 연결을 통해 Raspberry PI에서 확인한 IP(192.168.0.20)를 입력하면 접속이 아래처럼 된다.
이제, 모니터/키보드/마우스는 더 이상 필요 없다. Putty 등을 통해 SSH로 접속해도 정상 동작함을 확인할 수 있다.
5) 무선 AP를 통한 개발 환경 구축
Raspberry PI를 ADSL이나 광LAN등 공유기에 케이블로 연결하고 DHCP로 설정한다. 망 사업자가 주기적으로 IP 대역을 변경하기 때문.
freedns.afraid.org에서 무료 Domain name을 제공하니 받아서 DDNS로 설정하여 사용하면 편리하다. USB 무선 Adapter(ipTIME G100UM <- 가지고 있던 것)를 통해 혹시 모를 비상 연결 통로를 확보한다.
iw list로 확인해서 없으면 sudo apt-get install iw로 설치한다.
iw list의 결과가
Supported interface modes:
* IBSS
* managed
* AP
* AP/VLAN
* WDS
* monitor
* mesh point
6) Python Package 설치
다시 추가 작업을 위해 무선 환경을 원래대로 구성하고 PythonPython 개발 환경을 위해, python-pip, python-dev, virtualenv, virtualenvwrapper를 설치한다.
sudo apt-get install python-pip python-dev
sudo pip install --upgrade pip
sudo pip install virtualenv
sudo pip install virtualenvwrapper
여기까지 완료한 후 sudo apt-get upgrade로 혹시 있을지 모를 upgrade를 실시한다. 더 이상 사용하지 않는 불필요한 패키지 제거를 위해 sudo apt-get autoremove 까지 실행하면 깨끗하게 정리가 된다.
7) 설치 환경 백업
추후 이전 작업을 반복하지 않기 위해 백업을 받아 놓는다.
백업을 받는 방법은 microSD Card를 뽑아 microSD Card Reader에 넣고 노트북에 연결한다.
앞에서 사용한 Win32 Disk Imager를 실행하고 저장할 화일 이름을 입력하고, read를 클릭하면 microSD Card를 img 파일로 생성한다. 단 전체 크기로 생성(8G면 8G로) 이걸 방지하기 위해 4G microSD Card를 한개 사야 할 듯 하다. 이후 재설치가 필요한 경우, 이 img 파일을 Win32 Disk Imager를 이용하여 생성하면 된다. 단 동일 Raspberry PI에만 적용한다. device를 재인식시켜야 하는 불편함 때문.
8) microSD Card 최대 크기로 파티션 조정
df -f 로 보면 4GB 기준으로 파티션이 생성되어 있음을 알 수 있다. sudo fdisk /dev/mmcblk0 으로 들어가서
d 2 [Enter] n [Enter] p [Enter] [Enter] [Enter]를 하면 사이즈가 늘어나고 w로 저장한다.
이후 reboot을 하고, sudo resize2fs /dev/mmcblk0p2 를 실행하고 df -h 로 보면 최대 Size 기준으로 파티션이 생성되어 있는 것을 볼 수 있다.
2. 개발 환경 설정
1) 가상 환경을 저장할 Directory 생성
$ mkdir ~/.virtualenvs
$ vi ~/.bashrc 파일 끝에
export WORKON_HOME=~/.virtualenvs
source /usr/local/bin/virtualwrapper.sh
:wq
$ source ~/.bashrc
2) 사용하기
$ mkvirtualenv py_study == 가상개발영역 만들기
(py_study) $ deactivate == 가상영역 빠져 나오기
$ workon py_study == 가상영역으로 들어가기
$ cdvirtualenv == 가상영역 디렉토리로 이동
$ wipeenv == 현재 가상환경의 써드파티 패키지 전체 삭제
$ workon == 가상환경 목록
$ rmvirtualenv == 가상환경 삭제
3) Django 설치하기
$ workon py_study
(py_study) $ pip install django
4) GPIO 패키지 설치하기
(py_study) $ pip install rpi.gpio
5) 설치 패키지 확인하기
(py_study) $ pip freeze
Django==1.8.2
RPi.GPIO==0.5.11
wheel==0.24.0
여기까지가 개발 환경 구성의 끝이다.
참조)
Raspberry PI 셋업(http://vlab.finfra.com/d/doku.php/raspberry_pi:%EB%9D%BC%EC%A6%88%EB%B2%A0%EB%A6%AC_%ED%8C%8C%EC%9D%B4_%EC%9E%85%EB%AC%B8)
무선 AP(http://www.thebitbangtheory.com/2012/12/turning-the-raspberry-pi-into-a-wireless-access-point/)
virtualenv(http://intersnipe.blogspot.kr/2014/12/python-virtualenv.html)
sublime text(http://saksin.tistory.com/1180)
'Sundry > 개발공간' 카테고리의 다른 글
개발 플랫폼 구축 과정 소개 #1 삽질기 (0) | 2018.12.19 |
---|---|
무료 시각화 라이브러리 (0) | 2013.12.10 |