(Andro-G3 \306\367\306\303\260\372\301\244\(VB,Ubuntu\) hwp)

Similar documents
(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx)

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

PowerPoint 프레젠테이션

Mango220 Android How to compile and Transfer image to Target

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

슬라이드 제목 없음

Microsoft PowerPoint - 03-Development-Environment-2.ppt

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

USB 케이블만을이용한리눅스 NFS 개발환경 (VirtualBox) 최초작성 : 2010 년 10 월 21 일 작성자 : 김정현 수정내용 최초작성 by 김정현 스크립트추가, 설명보충 by 유형목 1. VritualBox

ConnectCore i.mx53 / Wi-i.MX53 Freescale i.mx53 Cortex A8 system-on-module 네트워크가가능한 i.mx53 ConnectCore는새로운프리스케일 i.mx53 Application 프로세서기반인고성능 32-bit S

JDK이클립스

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

PowerPoint 프레젠테이션

슬라이드 1

슬라이드 1

PowerPoint 프레젠테이션

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

PowerPoint 프레젠테이션

만약, 업그레이드 도중 실패하게 되면, 배터리를 뺏다 다시 꼽으신 후 전원을 켜면, 안내문구가 나오게 됩니다. 그 상태로 PC 연결 후 업그레이드를 다시 실행하시면 됩니다. 3) 단말을 재부팅합니다. - 리부팅 후에 단말에서 업그레이드를 진행합니다. 업그레이드 과정 중

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

고급 프로그래밍 설계

슬라이드 1

<4D F736F F F696E74202D20454D43BCB3B0E8B4EBC3A5BBE7B7CA2828C1D629B8B6B7E7C0CEC6F75FBDC5C1D6C8A3292E707074>

고객 카드

4S 1차년도 평가 발표자료

망고100 보드로 놀아보자-4

Microsoft PowerPoint - 02-Development-Environment-1.ppt

Microsoft Word ARM_ver2_0a.docx

PowerPoint 프레젠테이션

CONTENTS 목차 1. 전원 및 설치시 주의사항 2 2. 시스템 사용시 바른 자세 4 3. 시스템 구성품 확인 5 슬림형 케이스1 6 슬림형 케이스2 7 타워형 케이스1 8 타워형 케이스2 9 일체형 케이스1 10 망분리형 케이스 시스템 시작 및 종료

강연자소개 대외활동 동호회설립및운영자 (2004 년 12 월설립 ) 운영진 고현철, 김재훈, 유형목, 와함께국내에몇개남지않은임베디드리눅스를전문으로하는 community. 현재가입자수약만 4 천여명

Microsoft Word - Armjtag_문서1.doc

슬라이드 1

망고 M 카메라 포팅 가이드

Code Generation in Rapid

PowerPoint 프레젠테이션

ez-md+_manual01

교육지원 IT시스템 선진화

ez-shv manual

Chap 10 안드로이드커널 (Kernel)

PowerPoint Template

Microsoft Word - MV210_CPUSpec.doc

파인드라이브를 사용해 주셔서 대단히 감사합니다. 제품을 사용하시기 전에 반드시 이 설명서를 읽어 주십시오. 제품의 수명은 올바른 사용법과 비례하며, 불완전한 사용은 제품 고장은 물론 차량손상과 교통사고의 원인이 될 수 있습니다. 본 문서는 MONSTER 3 모델을 기준

인켈(국문)pdf.pdf

슬라이드 1

PLC Robot Starter Quick Guide

DE1-SoC Board

슬라이드 1

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

슬라이드 1

안전을 위한 주의사항 제품을 올바르게 사용하여 위험이나 재산상의 피해를 미리 막기 위한 내용이므로 반드시 지켜 주시기 바랍니다. 2 경고 설치 관련 지시사항을 위반했을 때 심각한 상해가 발생하거나 사망에 이를 가능성이 있는 경우 설치하기 전에 반드시 본 기기의 전원을

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

RealDSP UT 프로그램 메뉴얼

슬라이드 1

슬라이드 1

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

<4D F736F F F696E74202D20C0BDBCBA484D4920C0FBBFEB20C5DAB7B9B8C5C6BDBDBA20B4DCB8BBB1E228B9DFC7A5C0DAB7E129>

ISP and CodeVisionAVR C Compiler.hwp

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

Microsoft PowerPoint - 02_Installation

LCD Monitor

<4D F736F F D20B0B6B3EBC6AE33C3E2BDC3C8C45FC3D6C1BE5F2D2E646F63>

PowerPoint 프레젠테이션

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조

LCD Monitor

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

Microsoft PowerPoint - ARM 개발 환경.ppt

서현수

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Flute-GR_BV199_DOS.indb

5" TFT- LCD 및감압터치지원 : 800x480 USB Host 2.0, USB OTG 2.0, GPS, Wireless LAN, Ethernet 10/100Mbps 통신지원 300 만화소 CMOS Image Sensor 고해상도카메라모듈내장 전원은베이스보드에서공

벤처연구사업(전동휠체어) 평가

Chapter. 5 Embedded System I Bootloader, Kernel, Ramdisk Professor. Jaeheung, Lee

KDTÁ¾ÇÕ-2-07/03

슬라이드 1

1. GigE Camera Interface를 위한 최소 PC 사양 CPU : Intel Core 2 Duo, 2.4GHz이상 RAM : 2GB 이상 LANcard : Intel PRO/1000xT 이상 VGA : PCI x 16, VRAM DDR2 RAM 256MB

Microsoft PowerPoint - User Manual pptx

Install stm32cubemx and st-link utility

목 차 1. 안전을 위한 주의사항 2. 사 전에 2-1. 제품 특징 2-2. 제품 구성 2-3. 각 부분의 명칭 전 뷰어 / 뷰어 설정 전 뷰어 / 환경 설정 환경설정 본 값 재생방법 (블랙박스) 3-15.

ÀüÀÚ Ä¿¹ö-±¹¹®

Microsoft Word - CooCox

PowerPoint Presentation

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

jy-i3000.indd

Microsoft PowerPoint - chap01-C언어개요.pptx


LEICA C-LUX

다음 사항을 꼭 확인하세요! 도움말 안내 - 본 도움말에는 iodd2511 조작방법 및 활용법이 적혀 있습니다. - 본 제품 사용 전에 안전을 위한 주의사항 을 반드시 숙지하십시오. - 문제가 발생하면 문제해결 을 참조하십시오. 중요한 Data 는 항상 백업 하십시오.

Mango-E-Toi Board Developer Manual

Mango-AM335x LCD Type 커널 Module Parameter에서 변경하기

Microsoft PowerPoint Android-구조.애플리케이션 기초(1.0h).pptx

0922 Monitor22...._kor_1

KDTÁ¾ÇÕ-1-07/03

<4D F736F F D E20B4DCB8BB20C1A1B0CB20B9D720C1B6C4A120B8C5B4BABEF35F76312E335F2E646F63>

Transcription:

Global Biz Technology Linux & Android Porting & App Programming - 15주과정 - Andro-G3 개발보드를구입해주신고객님께진심으로감사드립니다. 본매뉴얼은 Andro-G3를 구입하신분들께서 Andro-G3 보드를이용하여, 리눅스(kernel 2.6.29) 와안드로이드(version 2.1, Eclair) 포팅을실습하고, 윈도우즈개발환경에서안드로이드응용프로그램을개발하여 Andro-G3 에서실행하여결과를확인하여볼수있도록도와드리기위해서제작되었습니다. 본문서의모든저작권은 ( 주) 지비테크에있습니다. 무단복제및전제를금합니다. Copyrightc 2006 by GBTec Inc. LTD.

목 차 1. 포팅개요 1 2. Andro-G3 구조와특징 2 2.1 Andro-G3 개요 2 2.1.1 Andro-G3 장비개요 2 2.1.2 Andro-G3 특징 2 2.2 Andro-G3 사양 3 2.2.1 S5PC110 블록다이어그램 3 2.2.2 메모리맵 3 2.2.3 하드웨어구성 4 2.2.4 부품배치도및명칭 5 2.2.5 주요제품구성 6 2.2.6 DVD 폴더/ 파일트리 7 2.3 Andro-G3 활용방법 5 가지 8 2.3.1 리눅스 & 안드로이드포팅테스트 (3 가지) 8 2.3.2 안드로이드앱개발및다운로드테스트 (2 가지) 9 3. 하드웨어개발환경설치 12 3.1 작업환경구성도 12 3.1.1 교차개발환경구성도 12 3.1.2 포팅에필요한주요소프트웨어 12 3.1.3 포팅작업디렉토리구성 13 3.1.4 포팅관련주요컴포넌트 14 3.1.5 Cross Compiler와 Toolchain 15 3.1.6 작업파일준비하기 15 3.2 가상머신(Virtual Machine) 설치 16 3.3 개발호스트리눅스설치 20 3.3.1 가상머신설치환경만들기 20 3.3.2 리눅스(ubuntu) 설치 28 3.4 가상머신환경설정 35 3.4.1 게스트확장설치 35 3.4.2 공유폴더(Shared Folder) 지정하기 39 3.4.3 리눅스창조절하기 42 3.5 네트워크환경설정하기 45 4. 리눅스기초 49 4.1 리눅스명령어익히기 49 4.1.1 도움말명령어 49 4.1.2 파일및디렉토리 50 4.1.3 파일내용확인 60

4.1.4 프로세스관리 64 4.1.5 사용자관리 66 4.1.6 네트워크관리 81 4.1.7 압축명령어 87 4.1.8 리눅스활용 92 4.1.9 기타명령어 97 4.2 vim 에디터익히기 99 4.2.1 vim 의기본사용모드 99 4.2.2 열기, 저장, 종료 100 4.2.3 기본적인편집 100 4.2.4 이동 101 4.2.5 수정, 삭제, 복사, 붙이기 102 4.2.6 ex 명령어형식 102 4.2.7 set 명령어 102 5. 리눅스커널및드라이버포팅 103 5.1 포팅을위한폴더생성및파일준비 103 5.2 호스트컴퓨터와타겟보드연결설정 103 5.2.1 케이블연결(Host 와타겟보드연결) 103 5.2.2 DNW 환경설정( 시리얼통신환경설정) 104 5.2.3 usb 드라이버설치1 ( 이미지다운로드용) 108 5.2.4 usb 드라이버설치2 ( 안드로이드응용프로그램다운로드용) 112 5.3 T-Flash 살펴보기 113 5.3.1 T-Flash Sector Map 113 5.3.2 이미지다운로드메시지살펴보기 113 5.3.3 Andro-G3 부팅과정 115 5.3.4 T-Flash 내용삭제 116 5.3.5 Andro-G3 시스템복구하기 117 5.4 호스트컴퓨터의개발환경설정(Toolchain 설치) 122 5.5 부트로더(u-boot) 컴파일및설치 123 5.5.1 부트로더(u-boot) 컴파일 123 5.5.2 Bootloader(u-boot) 다운로드 125 5.5.3 u-boot 명령어살펴보기 127 5.6 리눅스커널소스분석 129 5.6.1 리눅스커널소스받기 129 5.6.2 리눅스커널압축풀기및분석 130 5.7 리눅스커널컴파일 133 5.7.1 컴파일환경설정 133 5.7.2 드라이버수정 135 5.7.3 make menuconfig 내용요약 140 5.7.4 포팅용리눅스커널컴파일 143 5.7.5 Target 보드에다운로드 & 테스트 143

6. 안드로이드포팅 146 6.1 안드로이드소스다운로드및컴파일 146 6.1.1 소스다운로드를위한환경설정 146 6.1.2 소스다운로드및빌드 149 6.1.3 ALSA 적용하기 153 6.1.4 Busybox 적용하기 156 6.2 제공된소스를이용한빌드 157 6.2.1 안드로이드빌드 157 6.2.2 mkimage 실습 160 6.3 안드로이드이미지다운로드및테스트 161 6.3.1 ramdisk.img 다운로드 161 6.3.2 system.img 다운로드 161 6.3.3 userdata.img 다운로드 162 6.4 안드로이드소스분석 163 6.4.1 안드로이드부팅과정 163 6.4.2 init 파일 168 6.4.3 init.rc 파일 169 6.4.4 zygote 파일 170 6.4.5 acore 파일 170 6.4.6 power 관련파일들 170 7. 안드로이드응용프로그램개발 172 7.1 안드로이드개요 172 7.1.1 모바일 OS 의종류 172 7.1.2 모바일 OS 의시장방향 172 7.1.3 안드로이드란? 173 7.1.4 안드로이드플랫폼구조 173 7.2 응용프로그램개발환경구축 176 7.2.1 Android SDK 다운로드 176 7.2.2 Eclipse( 이클립스) 다운로드 179 7.2.3 JDK 다운로드 182 7.2.4 Java Development Kit (JDK) 설치 186 7.2.5 SDK와 Eclipe( 이클립스) 연동 190 7.2.6 Available Package 추가등록 199 7.2.7 Virtual Device 생성 202 7.3 안드로이드응용프로그램구성및개발과정 208 7.3.1 Android Application 구성요소 208 7.3.2 안드로이드응용프로그램개발과정 211 7.3.3 안드로이드응용프로그램을위한 usb 드라이버설치 212 7.4 안드로이드응용프로그램예제완성하기 219 7.4.1 [ 예제 1] HelloAndroid 219 7.4.2 [ 예제 2] ActTest 227 7.4.3 [ 예제 3] ResourceMgr 233

7.4.4 [ 예제 4] ResourceMgr2 236 7.4.5 [ 예제 5] ResourceViewer 244 부록 247 1. SDK logcat 메시지 248 2. Andro-G3 logcat 메시지 250 3. 부팅과정의터미널출력화면 252 4. 리눅스환경설정파일 256 5. 개발환경설치방법2(VMware + FedoraCore) 258 6. 개발환경설치방법3(VirtualBox + Fedora) 299

1. 포팅개요 2007년 11월에구글에서개발한모바일 OS인 Android( 안드로이드) 는 OHA(Open Handset Alliance) 를기반으로하는다국적연합체의지원을받고있으며, 오픈소스리눅스를기반으로 SDK( 소프트웨어 개발킷) 와 Eclipse( 응용프로그램개발환경) 등이무료로제공되어휴대폰이나임베디드장비에포팅 되어다양한분야에서활용되고있다. 이교재는리눅스커널과안드로이드프레임워크를 Andro-G3 교육용장비에포팅하는교육을위한문 서로, 가상머신설치부터, 개발용리눅스설치및기초적인리눅스사용법, 안드로이드소스받기및컴 파일, 리눅스와안드로이드포팅에관한파일수정및컴파일, 타겟보드에다운로드및테스트하는내 용을담고있으며, 안드로이드응용프로그램을개발하기위한안드로이드 SDK, Eclipse, 자바등을다 운로드하고설치하는방법, 안드로이드응용프로그램개발및에뮬레이터에서테스트하는방법, 안드 로이드응용프로그램을 한전반적인기술을다루고있다. Andro-G3에인스톨하여테스트하는방법등포팅및응용프로그램개발에대 이과정은리눅스및안드로이드포팅과안드로이드응용프로그램개발을겸하고있어서두가지학습 을효율적으로하기위해서, 윈도우즈에가상머신을설치하고이가상머신에리눅스를탑재하여포팅 실습을하고, 안드로이드응용프로그램개발및테스트는기본적으로윈도우즈에서하며, 일부는 Andro-G3 에다운로드하여직접타겟보드에서실행하여결과를보기도한다. 포팅을위해리눅스커널버전은 2.6.29를사용하였고안드로이드버전은 2.1(Eclair) 을사용하였으며, 이문서를작성할당시의리눅스바닐라커널버전은 2.6.36, 안드로이드버전은 2.2(Froyo) 가나온상 태이다. 이교재는리눅스및안드로이드에대한기초개발자위주로최대한쉽고자세하게작성되었으며, 일일 3시간씩 15 주정도에실습할내용으로기술되었다. 개인의능력에따라내용중쉬운부분은빠르게 지나가고, 어려운부분은관련서적이나인터넷의도움을받을필요도있을것이라고생각되며, 설명이 부족한부분은이후추가또는보완이될수있도록할것이다. ( 참고사항) 포팅과정에서표시한파일사이즈등의숫자는단지참고용으로기록한것으로리눅스나안드로이드 버전과상황에따라다르게나타날수있으므로이점착오없기를바란다. [ Andro-G3 메인화면 ] Linux & Android Porting 1

2. Andro-G3 구조와특징 2.1 Andro-G3 2.1.1 Andro-G3 개요 장비개요 - 삼성 S5PC110 32bit RISC Microprocessor (ARM Cortex-A8) 기반의 Embedded System - 저전압제품으로응용프로그램과모바일폰, PDA, 내비게이션등응용능력이높은 Embedded System - 하드웨어는 AXI, AHB, APB 16/32-bit 외부버스구조를가지고있고, 멀티미디어지원으로는 비디오, 오디오처리기능과 OpenGL 3D/2D Graphic 이있으며, MFC(Multi Format video Codec) 기반의 MPEG-4, H.263 H.264의인코딩과디코딩기능및 MPEG-2, VC1, Divx의디 코딩기능지원 - 고성능단말기(Pocket PC, 내비게이션, PMP, DMB, PDA), 블루투스기기, 산업용제어시스템 등개발자에게다양한개발환경을제공할수있으며, 7 인치 TFT-LCD와멀티터치스크린을사 용하여멀티미디어환경에서응용프로그램개발에최적화 2.1.2 Andro-G3 - - 특징 고성능프로세서탑재 ㆍARM Cortex-A8 기반의삼성 S5PC110(1GHz) 데이터저장을위한메모리 ㆍ ㆍ ㆍ Built-in NAND Flash(512MB) Built-in Micro SD T-Flash(2GB) - boot-loader, Linux kernel, Android system and applications SD Card(4GB support up to 32 GB) - 그림, 음악, 동영상등사용자파일용 - 고급비주얼시스템을위한 7" Wide Type TFT-LCD ㆍ내비게이션이나 PMP를위한동영상재생에적합한 7" Wide Type TFT-LCD 탑재 (800 x 480 pixels) ㆍ Multi-touch panel - Bluetooth & Wireless LAN ㆍ무선헤드셋, 무선마우스응용을위한 Bluetooth 모듈(2.0 +EDR) ㆍ무선인터넷사용을위한 Wireless LAN 모듈(WiFi - 802.11 b/g) - 휴대용동영상촬영, 화면캡처를위한고해상도 Camera( 옵션) ㆍ2 Mega Pixel, autofocus의고해상도 Camera Module - 다양한응용분야활용을위한초고속 USB 2.0 ㆍ최대 480Mbps 속도기반의 USB 2.0 Device Interface 구현 (Standard USB 2.0 Hosted, Supports 3G and GPS Module) ㆍ Micro USB(Device mode includes charging) - TV OUT ㆍ Digital TV OUT(Standard HDMI Port) ㆍ Analog TV OUT(3.5mm Jack (Video RCA / Audio RCA)) - 3 축가속도센서 ㆍ 3-axis accelerometer for UI auto-rotate 용 2 Linux & Android Porting

2.2 Andro-G3 사양 2.2.1 S5PC110 블록다이어그램 2.2.2 메모리맵 Linux & Android Porting 3

2.2.3 하드웨어구성 ITEM SPEC DESCRIPTION CPU ARM Cortex-A8 S5PC110 (1GHz) 삼성제품 MEMORY DRAM One-NAND Flash T-Flash SD Card 256MB mddr 512MB Micro SD T-Flash(2GB) SD Card(4GB support up to 32 GB) GRAPHIC 2D/3D OpenGL 3D/ 2D 4M triangle 지원 USB USB OTG HOST MICRO USB : Device mode includes charging Standard USB 2.0 Hosted UART 1 Port DEBUG port CAMERA 2M Pixel OmniVision 제공 사 2M PIXEL, AUTO FOCUS, Preview, snap shot SD/MMC 1 Port SD 2.0 PROTOCOL, MMC 4.0 PROTOCOL 지원 기능 LCD WVGA 7 WIDE TYPE TFT-LCD, 800 x 480 KEYPAD SCAN KEY Capacitive Touch Standard 3 key TV OUT Digital TV OUT Standard HDMI Port Analog TV OUT 3.5mm Jack (Video RCA / Audio RCA) BLUETOOTH BT2.0 EDR 2.0 +EDR WLAN IEEE802.11b/g WiFi - 802.11 b/g ACCELEROMETER 3-axis 3-axis accelerometer for UI auto-rotate 4 Linux & Android Porting

2.2.4 부품배치도및명칭 Andro-G3 의부품배치및명칭은다음과같다. Linux & Android Porting 5

2.2.5 주요제품구성 장치본체 각종구성품 ( 구성품은협의에따라제공유무가달라질수있음) 6 Linux & Android Porting

2.2.6 DVD 폴더/ 파일트리 폴더하위폴더및파일기능및내용비고 DNW 폴더(dnw1.01.exe) 윈도우즈가상터미널실행파일 usb_drv_android_app 폴더안드로이드 App용 usb 드라이버 GBT inst_prog_windows ( 윈도우즈용) inst_prog_linux ( 리눅스용) inst_prog_android ( 안드로이드용) image inst_final_src ( 최종소스) inst_final_bins ( 최종오브젝트) inst_prog_ aapp_tools ( 안드로이드 App 개발툴) inst_datasheet usb_drv_uboot 폴더 u-boot용 usb 드라이버 VirtualBox-3.2.10-66523 -Win.exe ubuntu-10.04-desktop-i386.iso androg3_recovery_20101125.zip drv_chg_src 폴더 4.3.1-eabi-armv6.tar.gz anrdog3-uboot-1.3.4-edu.tar.gz androg3-2.6.29-edu.tar.bz2 가상머신설치파일 우분투설치파일 T-Flash 파일복구용튤 리눅스드라이버수정용 리눅스커널포팅용툴체인 u-boot 파일( 실습용) u-boot-edu 폴더로풀림리눅스커널파일( 실습용) androg3-2.6.29-edu 폴더로풀림 jdk-1_5_0_22-linux-i586.rpm 자바설치파일 Fedora용 smdk-usbdl 리눅스에서 usb 다운로드용 android2.1_src_from_android 폴더 android-edu.tar.bz2 android 2.1 원본소스 mydroid 폴더로풀림 android 2.1 파일( 실습용) mydroid-edu 폴더로풀림 구글소스 mkimage, mkyaffs2image 루트파일시스템생성용 Fedora용 alsa_src, alsa_src_g3 폴더 ALSA lib와 utils 파일 busybox-1.15.2-arm11.tar.gz Busybox 파일 (u-boot.bin 등실습한내용) Andro-G3 다운로드용폴더 anrdog3-uboot-1.3.4.tar.gz u-boot 최종소스파일 비어있음 androg3-2.6.29.tar.bz2 리눅스커널최종소스파일 " android-fin.tar.bz2 u-boot.bin zimage ramdisk-uboot.img androg3-system.tar.gz androg3-userdata.tar.gz eclipse-java-helios-sr1 -Win32.zip 안드로이드2.1 최종소스 mydroid-fin 폴더로풀림 u-boot 최종오브젝트 리눅스커널최종오브젝트 루트파일시스템최종오브젝트 android system android userdata 이클립스파일 android-sdk_r07-windows.zip 안드로이드 SDK 파일 jdk-6u22-windows-i586.exe datasheet 폴더및파일 자바설치파일 데이터시트 최종폴더 최종폴더 GBT " App 용 Linux & Android Porting 7

2.3 Andro-G3 활용방법 5 가지 Andro-G3 와본교재를활용하면다음과같은다섯가지정도의테스트를해볼수있다. 2.3.1 리눅스 & 안드로이드포팅테스트 (3 가지) 1. 최종오브젝트이용 : 다운로드-테스트 제공되는최종오브젝트를이용하여컴파일과정없이미리컴파일된내용(u-boot, 리눅스커널, 루트 파일시스템, 안드로이드 system 이미지) 을 Andro-G3 에바로다운로드하여테스트해볼수있다. - 이방법은다운로드만하면되므로절차가비교적간단하며, 윈도우즈의경우는보조파일로 DNW 와 usb 드라이버파일만있으면되고, 리눅스에서는 mount, cp 명령어정도만알고있으면된다. 1) 참조파일 (1) 주요파일 : inst_final_bins/u-boot.bin, zimage, ramdisk-uboot.img, androg3-system.tar.gz( 압축을풀어서이용) (2) 보조파일 : inst_prog_windows/dnw, usb_drv_uboot 2) 참조페이지 (1) u-boot.bin, zimage, ramdisk-uboot.img 다운로드는윈도우즈에서 DNW를이용하여다운로 드하며 3 가지모두동일한방법으로다운로드할수있다. 5.5.2 Bootloader 다운로드참조 (2) 안드로이드 system 폴더다운로드는리눅스( 우분투) 에서 Micro SD card reader에직접복 사(cp) 하여넣는다. 6.3.2 system.img 다운로드참조 2. 최종소스이용 : 컴파일-다운로드-테스트 제공되는최종소스를이용하여컴파일과정만으로, u-boot, 리눅스커널, 루트파일시스템, 안드로 이드 - system 이미지를다운로드하여테스트해볼수있다. 이방법은소스를컴파일까지해야하므로리눅스에서툴체인설치및각종환경설정등을할줄 알아야하며, 3 번보다는절차가간단하지만포팅과관련된많은지식을알고있어야가능하다. 1) 참조파일 (1) 주요파일 : inst_final_src/androg3-uboot-1.3.4.tar.gz, androg3-2.6.29.tar.bz2, android-fin.tar.bz2, 4.3.1-eabi-armv6.tar.gz (2) 보조파일 : inst_prog_windows/dnw, usb_drv_uboot 2) 참조페이지 주요파일로제공된완성된최종소스를이용하여, 다음과같이툴체인설치부터, u-boot, zimage, 안드로이드 system 및 ramdisk 를생성하여다운로드해본다. - 아래참조내용을따라갈때, xx-yy-edu 등의 edu가붙은것대신에최종소스를이용한다. (1) Toolchain 설치 : 5.4 호스트컴퓨터의개발환경설정(Toolchain 설치) 참조 (2) u-boot 수정, 컴파일및다운로드테스트 : 5.5 부트로더(u-boot) 컴파일및설치참조 (3) zimage( 리눅스커널) 수정, 컴파일및다운로드테스트 : 5.7 리눅스커널컴파일참조 (4) 안드로이드 system 및 ramdisk 이미지관련수정, 컴파일및다운로드테스트 : 6.2 제공된 소스를이용한빌드및 6.3 안드로이드이미지다운로드및테스트참조 8 Linux & Android Porting

3. 포팅소스이용 : 수정-컴파일-다운로드-테스트 제공되는포팅소스를이용하여처음부터차근차근따라가면서소스를수정해보면서, 컴파일및다 운로드를해보는방법으로, 포팅관련전과정을체계적으로익힐수있으며, 최종컴파일이완료되 면 u-boot, 리눅스커널, 루트파일시스템, 안드로이드 system 이미지를다운로드하여테스트해 볼수있다. - 이방법은소스수정및컴파일까지해야하므로리눅스에서툴체인설치및각종환경설정등을 할줄알아야하며, 2번보다는좀더절차가복잡하고포팅과관련된많은지식을알고있어야 가능하다. 1) 참조파일 (1) 주요파일 : inst_prog_linux/androg3-uboot-1.3.4-edu.tar.gz, androg3-2.6.29-edu.tar.bz2, 4.3.1-eabi-armv6.tar.gz, drv_chg_src inst_prog_android/android-edu.tar.bz2, alsa_src, alsa_src_g3 (2) 보조파일 : inst_prog_windows/dnw, usb_drv_uboot 2) 참조페이지 제공된소스를이용하여, 다음과같이툴체인설치부터, u-boot, zimage, 안드로이드 system 및 ramdisk 를생성하여다운로드해본다. - 아래참조내용을따라갈때, xx-yy-edu 등의 edu 붙은것은교육용으로만든것으로일부 기능이빠져있어이를완성해야제대로동작이된다. (1) Toolchain 설치 : 5.4 호스트컴퓨터의개발환경설정(Toolchain 설치) 참조 (2) u-boot 수정, 컴파일및다운로드테스트 : 5.5 부트로더(u-boot) 컴파일및설치참조 (3) zimage( 리눅스커널) 수정, 컴파일및다운로드테스트 : 5.7 리눅스커널컴파일참조 (4) 안드로이드 system, ramdisk 이미지관련수정, 컴파일및다운로드테스트 : 6.2 제공된소 스를이용한빌드및 6.3 안드로이드이미지다운로드및테스트참조 2.3.2 안드로이드앱개발및다운로드테스트 (2 가지) 1. 준비된앱이용 : 앱다운로드-테스트 인터넷등을통하여입수한안드로이드응용프로그램(Application) ( 예, "mini army v1.0.0.apk") 을 Andro-G3 에직접다운로드하여앱(App) 의동작을테스트해볼수있다. - 이방법은윈도우즈의 명령실행창 에서 "adb install" 명령만으로설치를할수있다. 1) 참조파일 : 안드로이드 SDK 파일중, adb.exe inst_prog_windows/usb_drv_android_app 2) 참조페이지 (1) 7.3.3 안드로이드응용프로그램을위한 usb 드라이버설치를참조하여 usb 드라이버를설 치한다. (2) 7.2 안드로이드응용프로그램개발환경구축을하든지또는개발환경구축에서만들어진 adb.exe 파일을적당한폴더에넣고폴더경로에대한환경설정을한다. 7.2 안드로이드응용프로그램개발환경구축참조 Linux & Android Porting 9

(3) 명령프롬프트( 시작-보조프로그램- 명령프롬프트) 를실행하여다음과같이안드로이드응용 프로그램( 패키지) 을 Andro-G3 에인스톨한다. 다음은명령프롬프트를통하여인스톨하는과정을보여주고있다. C:\... \kdhong> C:\... \kdhong> d: d:\>cd android_app d:\android_app> dir d:\android_app> adb install "mini army v1.0.0.apk" ; ms-dos ; ; ; 프롬프트 패키지가있는드라이브로이동 패키지가있는폴더로이동 파일이름확인 ; adb install 3403 KB/s (3968500 bytes in 1.138s) ; 설치성공메시지출력 Success pkg: /data/local/tmp/mini army v1.0.0.apk d:\android_app> 명령입력 (4) Andro-G3 의초기화면에서우측부분에있는서랍을열어서설치된패키지를확인하고, 시켜본다. Andro-G3에서서랍( 흰박스) 을열어보면 동작 다운로드한파일 (MiniArmy)( 흰박스) 이보인다. 10 Linux & Android Porting

이를클릭하여결과가보이는지확인한다. 2. 개발중인앱이용 : 앱개발-다운로드-테스트 Eclipse 를통하여개발중인안드로이드응용프로그램(App) ( 예, HelloAndroid.apk) 에대해서 1) xxx.apk 형태의파일로 1. 준비된앱이용 과같은방법으로다운로드및테스트를하거나 2) Eclipse 의메뉴중 실행 메뉴를통하여 Andro-G3 에바로로딩및테스트를할수있다. 이방법은안드로이드앱을개발하면서테스트를해야하므로, Eclipse, 안드로이드 SDK 등이설 치되어있어야하고, 이툴들을활용하면서안드로이드앱을개발할수있어야가능하다. (1) 참조파일 : inst_prog_aapp_tools/eclipse-java-helios-sr1-win32.zip, (2) 참조페이지 android-sdk_r07-windows.zip, jdk-6u22-windows-i586.exe 7.3.3 안드로이드응용프로그램을위한 usb 드라이버설치부분에자세히설명해두었으므로 7.3.3 절을참조하도록한다. ; Eclipse의 DDMS나 File Explorer 를통해서도확인할수있다. Linux & Android Porting 11

3. 하드웨어개발환경설치 3.1 작업환경구성도 3.1.1 교차개발환경구성도 Host PC(i386) Target Board(ARM) 가상머신 (VB) userdata Linux (Ubuntu, Fedora) system ramdisk zimage u-boot Windows XP (x86) 저장 Android App DNW Micro SD card reader USB (Image DL, AppInstall) Serial 명령어메시지 load T-Flash DRAM (Micro SD) write S5PC110 (Cortex-A8) - 교차개발환경의호스트는작업의편의를위해서 Windows XP 를사용하고, 리눅스커널및안드로이 드프레임워크컴파일및수정등을위해서는가상머신의리눅스를이용하도록한다. - 리눅스가익숙한사용자는 DNW 대신가상머신의리눅스에서 minicom 을사용할수도있다. - u-boot, zimage, ramdisk 이미지는 usb 를통하여타겟보드로다운로드하고, system, userdata 이 미지는 T-Flash card reader를통하여리눅스에서직접 T-Flash 에저장하는방식을사용한다. 3.1.2 포팅에필요한주요소프트웨어 종류프로그램명비고 가상머신 VirtualBox-3.2.10-66523-Win.exe 가상머신 (VM) 개발호스트리눅스 Ubuntu, [Fedora 10] 툴체인 (Toolchain) 4.3.1-eabi-armv6.tar.gz gcc 등 download 용프로그램( 터미널) DNW(dnw1.01.exe), minicom Andro-G3 usb 드라이버(1) usb_drv_andro_app 폴더 Andro-G3 usb 드라이버(2) usb_drv_uboot 폴더 smdk-usbdl 부트로더소스 androg3-uboot-1.3.4-edu.tar.gz 이미지다운로드용 Android App - 윈도우즈용 - 리눅스용 타겟보드용리눅스커널소스 android-2.6.29-edu.tar.bz2 리눅스커널 2.6.29 다운로드용 안드로이드소스 Eclair(2.1) DL, android-edu.tar.bz2 download 또는파일이용 자바1.5 패키지 jdk-1_5_0_22-linux-i586.rpm Fedora용 안드로이드포팅에필요한파일 busybox 1.15.2, alsa_src[_g3] mkimage, androg3_recovery mkimage는 * android-2.6.29-edu.tar.bz2 등의 edu 가붙은것은포팅용( 교육용) 으로만든것임 Fedora용 12 Linux & Android Porting

3.1.3 포팅작업디렉토리구성 Host PC 의개발호스트리눅스의작업디렉토리를다음과같이구성하여작업을하도록한다. / home 공유폴더 mnt/shared mnt/hgfs/shared VirtualBox VMware edu01 inst_ prog_ android inst_ prog_ linux inst_ prog_ windows image,...bins bin android mydroid mydroid-edu mydroid-fin android-2.6.29 android-2.6.29-edu inst_src android-edu alsa_src mkimage 설치관련도구들 toolchain(4.3.1) VirtualBox Ubuntu, DNW, usb, recovery DL 용이미지 Target repo alsa_src mkimage 커널소스 & 컴파일된자료 u-boot(edu) jdk1.5 android 소스 & 컴파일된자료 drv_chg_src smdk-usbdl edu01 : 사용자 ID android/android-edu : android 소스다운로드및컴파일 inst_src : 타겟보드용 kernel 소스및설치관련도구들 mnt/shared : 윈도우즈와리눅스공유폴더 ( 윈도우즈에서는바탕화면의 shared 폴더 ) mnt/shared/image : 새로수정된내용으로, 윈도우즈에서타겟보드다운로드용이미지폴더 mnt/shared/inst_final_bins : 미리컴파일되어(binary 파일) DVD 로제공된내용으로, 윈도우즈에서 타겟보드다운로드용이미지폴더 mnt/shared/inst_final_src : inst_final_bins에있는오브젝트를만든소스파일이있는폴더 mnt/shared/inst_prog_android : 안드로이드포팅관련파일(alsa_src, 안드로이드 2.1 포팅용소스) mnt/shared/inst_prog_linux : 리눅스작업폴더(inst_src) 로복사할리눅스관련커널및설치관련도구 를가진폴더 mnt/shared/inst_prog_windows : 포팅관련윈도우즈에서사용할프로그램을가진폴더 ( 주의사항) 공유폴더는 VirtualBox 에서는 /mnt/shared 로, VMware 에서는 /mnt/hgfs/shared 로잡히므로 사용하는가상장치에따라경로사용에주의하여야한다. Linux & Android Porting 13

3.1.4 포팅관련주요컴포넌트 포팅과관련하여많이다루게되는주요컴포넌트의명칭및위치는다음과같다. 타겟보드 (Andro-G3) SD 카드슬롯 전원 SW LCD 화면 BACK MENU HOME Micro SD (T-Flash) 카드슬롯 3pin serial connector (debug 용) Reset SW mini-b usb (DL 용) 컴포넌트배치 LCD는제일윗면에배치 Keypad는윗면우측에배치 3pin serial connector는보드뒷면에커넥터가있음 Micro SD(T-Flash) 카드슬롯은 LCD 화면아래가운데위치 개발용 PC 명령어사용및출력메시지보기 터미널창 리눅스의 minicom 또는 윈도우즈의 DNW 이용 리눅스 minicom 포팅작업 주로리눅스에서작업 윈도우즈 복구툴 DNW - 터미널창이용 : 에디팅, 컴파일등 윈도우즈에서일부작업 - 명령어사용등 14 Linux & Android Porting

3.1.5 Cross Compiler와 Toolchain 1. Cross Compiler 1) 정의 A( 예, x86 CPU) 라는컴퓨터에서컴파일을한바이너리파일은자신의컴퓨터에서는동작이가능하 지만, 이를 B( 예, ARM11 또는 Cortex A8 CPU) 라는컴퓨터( 또는보드) 에가져가면명령어의종 류, 길이, 동작방식등이다르기때문에동작이제대로되지않는다. 따라서 x86 CPU를가진컴퓨터에서작성한프로그램을다른 CPU 를가진장치( 또는컴퓨터)( 예, ARM11 또는 Cortex A8 CPU) 에맞도록컴파일을하는것을크로스컴파일이라하고, 크로스컴파 일을하는프로그램을크로스컴파일러라고한다. 2) 컴파일러예 gcc : x86 cpu용 gcc 컴파일러 arm-linux-gcc : arm cpu용 gcc 컴파일러 ( 포팅시시용할타겟용컴파일러) 2. Toolchain 1) 2) 정의 소스를컴파일하여바이너리실행파일을생성하기위해필요한컴파일러및라이브러리, 유틸리티모음 구성요소 GCC : 컴파일러 Binutils : 어셈블러및로더, 바이너리파일편집유틸리티 Glibc : Linux Kernel : 크로스컴파일을위한라이브러리및일반라이브러리 리눅스커널소스 바이너리 3.1.6 작업파일준비하기 1. 윈도우즈바탕화면에 shared 라는폴더를하나만든다. - 이폴더는리눅스와의공유폴더로사용할것이다. 2. 앞페이지의 3.1.3 포팅작업디렉토리구성 을참고로하여, 포팅관련프로그램들(DVD 내용중 image, inst_final_bins, inst_prog_windows, inst_prog_linux, inst_prog_android 폴더) 을이폴더 안에복사한다. 중요한 3 가지폴더는다음과같다. 1) inst_prog_windows 폴더 VirtualBox, Ubuntu, DNW, usb 드라이버 2 개, Andro-G3 복구툴등윈도우즈에서사용할프 로그램들이있다. 2) inst_prog_linux 폴더 리눅스의 inst_src 로복사할리눅스커널및설치관련도구들로, 툴체인, 리눅스커널소스, u-boot 소스, 자바 1.5 패키지등이들어있다. 3) inst_prog_android 폴더 안드로이드 2.1 포팅용소스, 루트파일시스템이미지생성용파일, alsa_src 등안드로이드포팅에 서사용할프로그램들이들어있다. Linux & Android Porting 15