일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 삼성소프트웨어멤버십
- 패턴 인식
- 패턴인식
- 구글 앱 엔진
- 가상화
- SSM
- Neural Network
- BAM
- 고려대학교
- 빅데이터
- 하이퍼바이저
- 신경회로망
- 인공지능
- 신경망
- 삼성
- Google App Engine
- Bidirectional Associative Memory
- 멤버십
- Friendship
- hopfield network
- 동아리
- Python
- 물걸레로봇청소기추천
- 물걸레자동세척로봇청소기
- 삼성전자 소프트웨어멤버십 SSM
- NarwalFreo
- 갤럭시탭S8울트라
- 파이썬
- 증강현실
- 나르왈프레오
- Today
- Total
정보공간_1
[6기 강북 윤덕진] Tizen OS Porting을 위한 환경구축 본문
안녕하십니까! 강북멤버십 23-1기 윤덕진입니다.
처음으로 삼성소프트웨어멤버십 블로그에 포스팅하게 되었습니다. 블로그 포스팅이 처음이라 어설퍼 보일 수 있습니다. 부족한 점에 대해서는 바로바로 지적해주시면 감사하겠습니다.
제가 포스팅할 내용은 Tizen OS Porting에 관한 연구입니다. 최근 삼성전자에서 Tizen OS Porting Guide를 제공하고 있어 많은 개발자들이 달려들어 테스트해보고 적용해보고 있습니다. 현재 몇몇 일반 개발자들이 삼성 계열 CPU를 사용하고 있는 Panda board, 갤럭시 S2, S3, Nexus S 등 다양한 기기 들에 Tizen OS Porting을 웹상으로 게재하고 있습니다.
제 개인적으로 연구하고있는 것은 삼성계열 보드가 아닌 BeagleBoneBlack 이라는 보드를 이용해서 Tizen OS를 Porting 해보려고 합니다. 비록 임베디드 시스템 분야에 대한 지식이 많이 부족하지만, 많이 배우겠다는 입장에서 시작한 연구라서 아예 기초부터 파고들어 개발하고 있는 상황입니다. 이 개발은 현재도 진행중에 있습니다. 이 블로그에 저의 개발 현황에 대해서 완료된 것과 아직 완성하지 못한 것에 대해서 소개할 예정입니다.
일단 개발에 앞서 환경구축이 이뤄져야합니다. 저의 블로그 포스팅의 목표는 임베디드를 처음 다루는 사람들도 쉽게 접근할 수 있게 하는 것이 목표입니다. 왜냐하면 제가 처음 이 분야를 처음 접했을 때의 막막함과 고생을 이 블로그를 통해 조금은 덜어 드리고자 하는 생각입니다. 그렇기 때문에 환경설정 하나하나 사소한 것을 모두 다뤄서 포스팅할 생각입니다. 임베디드 시스템, 리눅스에 겁먹어서 접근하지 못하시는 분들에게 많은 도움이 되었으면 좋겠습니다.
오늘은 Ubuntu 설치부터 OS Porting에 필요한 개발 환경을 구축하는 과정을 포스팅하도록 하겠습니다.
1. 개발환경 설정- PC & BBB Ubuntu 설치
PC OS는 Ubuntu 12.04를 사용하였습니다. 이 OS의 설치 파일은 아래의 사이트에서 받으시되 본인의 OS에 맞는 버젼으로 받으시면됩니다.(저같은 경우는 VMware가 아닌 멀티 부팅을 사용하였습니다.)
ubuntu 12.04 설치 파일 다운로드 : http://www.ubuntu.com/download/alternative-downloads
BeagleBoneBlack에는 구매하고 처음 전원을 인가하게 되면 Angstrom 이 설치되어 있습니다. 저는 Angstrom을 지우고 Ubuntu 13.04를 새로 설치하였습니다. 구글에 BeagleBoneBlack Ubuntu13.04 검색해보시면 이미지 파일을 다운로드 하실 수 있습니다.
2. BeagleBoneBlack 네트워크 설정
BeagleBoneBlack에 기본적인 프로그램 설치와 PC와의 파일 공유 등을 위해 고정 IP를 할당하였습니다. vi로 네트워크 설정 파일에 접속합니다.
- vi /etc/network/interfaces
초기 접속시에는 아래와 같은 코드로 이루어져 있습니다.
auto eth0
iface eth0 inet dhcp
노란색 으로 된 코드와 같이 자신의 정보에 맞게 수정합니다.
수정 이후 저장하고, 네트워크를 재시작 해줍니다. -> service networking restart
재시작 후 ping google.co.kr 명령어를 통해 네트워크를 확인해줍니다. ping이 날아가지 않을시에는 재부팅을 하고 다시 시도해 보는 것이 좋습니다.
3. NFS 설정
참조 사이트 : http://blog.naver.com/PostView.nhn?blogId=caliofe&logNo=20153374412
Network File System 의 약자로, 네트워크 상에서 다른 컴퓨터에 있는 파일 시스템을 마운트 시켜 자료를 공유할 수 있게 해주는 서버 시스템입니다. 리눅스 운영체제간 파일을 공유하기 위해 많이 사용되며 서버에 의해 마운트되는 것이 아닌 클라이언트가 파일스템 서버를 마운트하여 자신의 파일 시스템처럼 사용합니다.
-> 어려운 말같이 느껴지시는 분들을 위해 쉽게 말하자면 PC가 FTP server와 같은 역할을 하고 타켓보드가 client의 역할을 합니다. FTP와 다른 점은 server PC에 있는 공유된 폴더 하나를 통째로 타겟보드로 들고와서 자신의 폴더 인양 사용하는 것을 의미합니다.
PC와 BeagleBoneBlack 양쪽의 설정이 필요하므로 구분해서 설명하겠습니다.
<PC(server)>
- apt-get install nfs-kernel-server portmap -> 커널 서버와 포트맵을 설치해주도록합니다.
- mkdir working(파일명은 본인 마음입니다) NFS를 사용해서 공유할 디렉토리를 생성합니다.
- chmod 777 working -> 생성한 디렉토리에 777 권한을 부여합니다.
- vi /etc/exports -> 해당 파일에 공유 아까 생성한 공유 디렉토리의 주소를 아래와 같이 추가합니다.]
* ip는 client ip를 입력합니다.
- service nfs-kernel-server restart, service portmap restart -> 2개의 명령어를 통해 NFS 커널 서버 및 포트맵을 재시작해줍니다.
<BeagleBoneBlack(client)>
- mkdir /mnt/nfs -> mount 할(공유할) 디렉토리를 생성합니다.
- mount -t nfs -o nolock 112.108.**.***:working /mnt/nfs -> 아래와 같은 형식으로 입력합니다.
->mount -t nfs -o nolock (server ip):(server directory) (client directory)
- touch /mnt/nfs/test.txt -> target board의 공유 폴더에 txt 파일을 생성해서 PC에서 공유한 폴더에 똑같은 txt 파일이 생성되었는지 확인한다.
4. minicom 설정하기
minicom은 PC와 Target Board 간에 serial 케이블을 통해 Target Board의 부팅과정과 터미널을 PC에서 확인할 수 있는 기능입니다. (putty 와 똑같은 기능을 한다고 보시면 됩니다.)
porting 과정에서 u-boot을 접속하거나 kernel image 파일을 target board에 올릴 때 중요하게 사용되는 기능입니다.
BeagleBoneBlack을 구매하다보면 별도로 시리얼 케이블을 구매하라고 합니다. 이것이 FTDI 케이블인데 해외 구매일 뿐더러 가격도 4,5 만원 대를 육박하는 고가의 케이블입니다. 하지만 굳이 이 케이블을 구매하지 않고, 전자 부품 사이트에서 파는 간단한 1만원대 이하인 USB to USART 케이블을 구매하셔도 제대로 작동합니다.
- apt-get install minicom -> PC에 minicom을 설치해줍니다.
- minicom -s -> minicom 설정으로 접속합니다.
- 설정중에 Serial port setup을 아래와 같이 설정합니다.
- 설정 완료 후 Save setup as dfl 을 선택합니다.(안그러면 설정이 저장되지 않습니다.)
-minicom -> 다음 명령어를 치게 되면 아래와 같은 화면의 과정으로 넘어갑니다.
- USB to USART 케이블이 PC와 Target 보드 간에 연결된 상태에서 Tartget board의 전원을 키게 되면 부팅 과정이 minicom 화면에 나오게 됩니다.
5. TFTP 설치 및 설정
TFTP는 NFS와 비슷한 개념으로 파일을 공유하는 기능을 가지고 있습니다.
- apt-get install xinetd tftp tftpd -> TFTP를 설치합니다.
- vi /etc/xinetd.d/tftp -> vi로 다음 파일을 생성하고 아래와 같은 내용을 입력합니다.
- mkdir tftpfile -> 공유할 디렉토리를 생성합니다.
- chmod 777 tftpfile -> 777 권한을 부여합니다.
- /etc/init.d/xinetd restart -> tftp를 재시작합니다.
여기까지 OS Porting을 위한 몇 가지의 개발 환경 구축을 해보았습니다. 다음 포스팅에는 Cross Compile 설정과 Kernel compile에 대해서 포스팅하도록 하겠습니다.
* 아! 제 Tizen OS Porting 개발에 많은 도움을 주신 대전 멤버십에 김영진, 조효진, 임현수 회원님들께 감사의 뜻을 전해 드립니다. 여러분들의 블로그가 저에게는 너무나도 큰 도움이 되었습니다. 밑에 블로그 주소 남깁니다. 비록 타겟 보드가 달라서 고생하긴 했지만... 어떻게 나중에 서울오시면 밥이라도 한끼.....
http://miatistory.tistory.com/15http://devmonster.tistory.com/category/Embedded/Tizen
http://chiccoder.tistory.com/34
'IT 놀이터 > Elite Member Tech & Talk' 카테고리의 다른 글
[6기 강남 이승재] Signal Processing #0 (0) | 2014.08.06 |
---|---|
[6기 부산 심현정] Ext JS4 파헤치기 #1 (0) | 2014.08.06 |
[6기 강북 이보희] 디지털 영상처리 - camera 편 (0) | 2014.08.05 |
[6기 부산 오승민] Transact-SQL(T-SQL) #1 - 데이터 형식 (0) | 2014.08.05 |
[6기 부산 박천경]SDL (Simple DirectMedia layer) #1 (0) | 2014.08.04 |