슬라이드 1

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

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

PowerPoint 프레젠테이션

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

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

Mango220 Android How to compile and Transfer image to Target

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

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

PowerPoint 프레젠테이션

슬라이드 1

PowerPoint 프레젠테이션

슬라이드 제목 없음

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

망고 M 카메라 포팅 가이드

Microsoft PowerPoint - 김창수 v2.pptx

Microsoft PowerPoint - em8-리눅스설치.ppt

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

Microsoft PowerPoint - 06-CompSys-11-System.ppt

교육지원 IT시스템 선진화

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

Chap 5 루트파일시스템 (Root F/S)

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

Microsoft PowerPoint - TUNA_Board_Tutorial.pptx

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

Chap 2 임베디드시스템 개발환경구성

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

MV6410 Linux 마이크로비젼 MV6410-LCD Linux 활용가이드 마이크로비젼 MV6410 Linux 1

슬라이드 1

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Code Generation in Rapid

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

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

PowerPoint Presentation

Microsoft PowerPoint - ARM 개발 환경.ppt

슬라이드 1

슬라이드 1

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

본문서는의 SC-PXA270 보드에서동작하는 ANDROID 개발환경및소프트웨어구 성을기술한다. 1. 개발환경설정및소스코드다운로드 안드로이드플랫폼은리눅스와 MacOS를기본개발운영체제로사용한다. 본문서에서는 Ubuntu Linux를사용하여기본개발환경을구축하고안드로이드소스코

PA for SWE2007

Mango24R2 Auto Write

JDK이클립스

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

작성자 : saint Overview BackTrack 는 LILO 를부트로더로사용한다. BactTrack 을기본환경설정그대로설치하면부팅할수없는경우가있는데, 이것은실린더크기가 1024 보다큰하드디스크에설치하면 LILO 가 OS 를정상적으로읽어올수없기때문이다. 요즘나오는

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

슬라이드 1

(72) 발명자 서진교 경기 용인시 수지구 풍덕천2동 1167 진산마을 삼성5차아파트526동 1004호 조필제 경기 용인시 풍덕천동 유스빌 401호 - 2 -

RealDSP UT 프로그램 메뉴얼

Microsoft PowerPoint - e7.pptx

Tizen

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

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

PowerPoint 프레젠테이션

Microsoft Word - Fedora Core 9 개발환경 최종본.docx

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

슬라이드 1

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

슬라이드 1

Microsoft Word ARM_ver2_0a.docx

임베디드디바이스개발시커널로리눅스를많이사용하는데, 그때그커널과함께리눅스명령어도필요하게된다. 모든명령어를지원하기위해서는다수의개별적인패키지들이필요하다. 한프로젝트에서그많은명령어를한번에지원해준다면자원제약적인임베디드환경에서공간효율성이극대화될것이다. 상대적으로경량화된리눅스명령어세

작성자 : 기술지원부 김 삼 수

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

Install stm32cubemx and st-link utility

ARM01

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

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

PowerPoint 프레젠테이션

슬라이드 1

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

Chap 3 부트로더 (Bootloader)

단계

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

320TKU_Android_UserManual_1.0.hwp

Microsoft PowerPoint 통신 및 압축 명령어.ppt

Solaris System Administration

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - qmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i qmail 1.03 spf-filter 년 6 월

Flute-GR_BV199_DOS.indb

Copyright 2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A..,,. Sun. Sun. Berkeley BSD. UNIX X/Open Company, Ltd.. Sun, Su

Microsoft Word _LT_리눅스 마운트강좌 mount 1편.doc

Adobe Flash 취약점 분석 (CVE )

슬라이드 1

Discrete Mathematics

Microsoft PowerPoint - [Practice #1] APM InstalI.ppt

PowerPoint 프레젠테이션

슬라이드 1

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

DE1-SoC Board

untitled

CD 무결성체크는 SKIP 을해도좋습니다. Next 버튼을누릅니다. Next 버튼을누릅니다.

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

3) MySQL data 백업백업방법 : dump 파일로저장저장위치 : /backup/mysqldump 백업주기 : 시간별 (/etc/cron.hourly) 또는일별 (/etc/cron.daily) 보관기간 : 7 일백업스크립트 : 아래예제 6-1). 참조 4) 웹데이

PowerPoint 프레젠테이션

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

슬라이드 1

PowerPoint 프레젠테이션

(Microsoft PowerPoint - \270\266\300\314\305\251\267\316\304\250USB_Host_Device_\272\316\306\256\267\316\264\365\275\307\275\300_Philip.ppt)

PowerPoint 프레젠테이션

<4D F736F F D20B1B9B0A1BAB020BEC6C0CCC7C720C2F7B4DC20B0A1C0CCB5E5>

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

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

Transcription:

13 장실제타깃제작하기

시작하면서 2 목차 13.1 타깃개발개요 13.2 안드로이드모바일하드웨어플랫폼 13.3 실제타깃개발홖경구축 13.4 실제타깃커널제작 13.5 타깃으로이미지다운로드 13.6 파일시스템구성 13.7 부팅및실행

13.1 타깃개발개요 3 porting 어떻게안드로이드소프트웨어플랫폼을빌드하여포팅하는가? 계층구조의플랫폼을빌딩하는방법? 교차컴파일 링크 부팅 실제 ARM에서실행 [ 그림 13-1] 안드로이드플랫폼포팅개요

13.1 타깃개발개요 4 [ 그림 13-2] 에뮬레이터기반에뮬레이터플랫폼구성

13.1 타깃개발개요 5 [ 그림 13-3] 일반타깃보드 ( 하이버스 X-Hyper320TKU) 포팅예

13.1 타깃개발개요 6 [ 그림 13-4] 모바일전용타깃보드 ( 하이버스 H-AndroSV210) 포팅예

13.2 모바일하드웨어플랫폼 7 플랫폼구성및특징 안드로이드구현 ARM 필요사양 ARM926 또는그이상 (ARM11, ARM MPC, ARM Cortex) 을포함한 SOC 주의 : ARMv4 기반인 ARM920T 는동작하지않음 Thumb, MMU, EABI 를지원 Display/Frame buffer (Frame buffer 는 double buffer/page flipping 을지원 ) Keyboard USB(optional) RTC(optional) Serial console Storage (64MB 이상 ) e.g. NFS / USB stick / NAND / NOR / MMC /SD card 충분한 main memory (SDRAM, 32 MB 이상 )

13.2 모바일하드웨어플랫폼 8 안드로이드구현 ARM SoC 종류 H-AndroSV210 : 강력한성능을자랑하는 Cortex-A8 기반 1GHz의 Samsung 최신프로세서 S5PV210을탑재한보드 X-Hyper320(PXA 320) OMAP1(ARM v5 ARM926) OMAP2(ARM v6 ARM11) Sharp Zaurus SL-C760(PXA255) Sharp Zaurus SL-C3000(PXA270) A&W6410( 삼성 S3C6410)

13.2 모바일하드웨어플랫폼 9

13.2 모바일하드웨어플랫폼 10 추상계층 하드웨어제어및관리 [ 그림 13-6] 하드웨어추상계층

13.3 실제타깃개발환경구축 11 실제타깃개발지원환경 리눅스서버설치 통신홖경 [ 그림 13-7] 실제타깃개발지원환경

13.3 실제타깃개발환경구축 12 교차개발환경설계 교차컴파일러 교차어셈블러 링커 라이브러리 디버깅툴

13.3 실제타깃개발환경구축 13 사용자인터페이스 리눅스쉘프로그램선정 Bash 홖경 Busybox 파일시스템 Ext, jffs, yaffs 다운로드방법 JTAG, BDM RS-232 USB H-AndroSV210 Tftp( 이더넷 ) 부팅 Elf 데이터는 RAM, 코드는 ROM 에서실행 ROM 에서 RAM 으로복사한후실행 데스크톱에서타깃의 RAM 으로직접다운로드하여실행

13.3 실제타깃개발환경구축 14 개발지원도구구축 툴체인설치 컴파일러 어셈블러 로더 Native compiler cross compiler ARM ABI -> ARM EABI 툴체인준비방법 Codesourcery 툴체인소스다운로드 기존빌드된툴체인사용

13.3 실제타깃개발환경구축 15 [ 실습 13-1] 툴체인설치 (1)http://www.codesourcery.com/downloads/public/gnu_toolchain/armnone -linux- gnueabi 사이트를방문하면 [ 그림 13-8] 처럼다양한플랫폼에 대한툴체인이있다. [ 그림 13-8] 툴체인선택및다운로드

13.3 실제타깃개발환경구축 16 [ 실습 13-] 툴체인설치 (2) arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 툴체인파일을 /toolchain 디렉터리에다운로드받는다. (3) bzip2-d arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linuxgnu.tar.bz2 (4) tar xvf arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linuxgnu.tar bzip2와 tar를사용하여 /toolchain 디렉터리에저장된툴체인파일에대하여압축을해제한다. 그러면실제타깃에서사용할커널및파일시스템을만들고포팅을하기위한각종의교차컴파일도구가 /toolchain 디렉터리에생성된다. [ 그림 13-9] 는설치된툴체인의종류를보여준다. [ 그림 13-7] 설치된툴체인종류

13.3 실제타깃개발환경구축 17 busybox 설치 기존임베디드리눅스 busybox 와의차이점 : static 옵션빌드 기존 busybox(1.8mb) 안드로이드 busybox (150KB) 지원도구설치 Flex, bison, gperf, libsdl-dev, libesd0-dev, libwxgtk2.6- dev(optional), build-essential, zip, curl Valgrind libreadline Repo

13.4 실제타깃커널제작 18 소스 : 3GB, 128,000 파일로구성 우분투리눅스소스 안드로이드 2.2 플래폼소스 (2.1 GB) U-Boot 소스 문서 빌드 Goldfish, QEMU 비홗성화

13.4 실제타깃커널제작 19 안드로이드커널빌드 [ 그림 13-10] 커널제작및부팅절차

13.4 실제타깃커널제작 20 안드로이드커널소스준비 # mkdir ~/bin // bin 디렉토리를생성 # curl http://android.git.kernel.org/repo > ~/bin/repo //repo 스크립트다운로드 # chmod 755 ~/bin/repo // repo 를실행가능하게설정 # cp ~/bin/repo /bin # repo init -u git://android.git.kernel.org/platform/manifest.git // repo init 를사용하여 repo 의최신버젂을다운로드받는다. # repo sync

13.4 실제타깃커널제작 21 [ 실습 13-2] 커널소스다운로드하기 (1) 안드로이드홈페이지에서 linux-2.6.25-android-1.0_r1 을리눅스서버에 /kernel 디렉터리를만들어다운로드한다. (2) tar zxf linux-2.6.25-android-1.0_r1.tar.gz /kernel 디렉터리에압축해제하면 [ 그림 13-11] 처럼 kernel.git 디렉터리가생성된다. [ 그림 13-13] 커널소스압축해제

13.4 실제타깃커널제작 22 [ 실습 13-3] 커널소스패치하기 (1) gzip linux-2.6.25-android-1.0_r1-xhyper320tku_patch_v1.gz patch -p1 패치파일이압축파일형태로제공되므로 gzip 을사용하여패치파일의압축을해제하고소스에패치한다. 패치는 patch 명령어와옵션을사용하여이루어짂다. 압축해제는 /kernel.git 디렉터리에한다. (2) /kernel.git 디렉터리로이동하여패치결과를확인한다. [ 그림 13-12] 와같은소스폴더가생성된다. 일반리눅스소스폴더에서보던것과유사하다는것을알수있다. [ 그림 13-14] 리눅스커널소스구조

13.4 실제타깃커널제작 23 안드로이드커널설정

13.4 실제타깃커널제작 24 IPC 설정 Low memory killer, logger, 전력관리, yaffs2 설정 컴파일및빌드

13.4 실제타깃커널제작 25 [ 실습 13-4] 커널빌드하기 (1) 터미널창을열고 root 계정으로로그인한다. (2) CD-ROM 에 H-AndroSV210 의 BSP CD 를삽입한다. (3) 우분투 9.10 을기준으로 CD 는자동으로마운트되는데 /cdrom 이란폴더에자동마운트된다. (4) mkdir /mnt/cdrom/kernel 명령으로 /mnt/cdrom/kernel 이란폴더를 생성한다. (5) cp -r /cdrom /mnt/cdrom/kernel 명령으로 CD-ROM 의압축커널파일 android_kernel_2.6.32_sv210.tgz 내용을 /mnt/cdrom/kernel 에복사한다. (6) ls /mnt/cdrom/kernel 으로복사한내용을확인한다. (7) 압축커널파일 android_kernel_2.6.32_sv210.tgz 을해제한다. [ 그림 13-13] 처럼 CD 이미지가있는폴더로이동하여 tar 명령을이용해서압축을해제한다. [ 그림 13-13] H-AndroSV210 의커널파일준비

13.4 실제타깃커널제작 26 [ 실습 13-4] 커널빌드하기 (8) cd android_kernel_2.6.32_sv210; ls 압축을해제한커널의디렉터리로이동하여 ls 명령으로압축해제된파일구성내용을 [ 그림 13-14] 처럼확인해본다. [ 그림 13-14] 커널파일구성확인

13.4 실제타깃커널제작 27 [ 실습 13-4] 커널빌드하기 (9)./build_kernel build_kernel 이라는스크립트를이미정의해두어사용자가일일이커널설정을하는것을갂소화하고쉽도록구성해놓았다../build_kernel 을실행하여 [ 그림 13-15] 처럼커널빌드를한다. [ 그림 13-15] 커널빌드작업 [ 그림 13-16] build_kernel 내용확인

13.4 실제타깃커널제작 28 [ 실습 13-4] 커널빌드하기 (10) cd arch/arm/boot; ls 컴파일이완료되면 [ 그림 13-17] 과같이프롬프트가출력이되며, arch/arm/ boot/zimage라는파일로컴파일된 3.2MB 크기의 zimage 이미지가생성된것을볼수있다. [ 그림 13-17] 커널이미지생성확인

13.4 실제타깃커널제작 29 [ 실습 13-5] 안드로이드플랫폼이미지빌드하기 (1) CD-ROM 에 H-AndroSV210 의 BSP CD 를삽입한다. (2) 우분투 9.10 을기준으로 CD 는자동으로마운트되는데 /cdrom 이란폴더에자동마운트된다. (3) mkdir /mnt/cdrom/android 명령으로 /mnt/cdrom/android 란폴더를생성한다. (4) cp -r /cdrom /mnt/cdrom/android 명령으로 CD-ROM 의압축플랫폼파일 android_froyo_sv210.tgz 내용을 /mnt/cdrom/android 에복사한다. (5) ls /mnt/cdrom/android 으로복사한내용을확인한다. (6) tar zxvf android_froyo_sv210.tgz 압축플랫폼파일 android_froyo_sv210.tgz 을 [ 그림 13-18] 처럼해제한다. 파일용량이크기때문에압축해제과정은 PC 에따라수분이걸릴수있다. [ 그림 13-18] 안드로이드플랫폼압축파일해제

13.4 실제타깃커널제작 30 [ 실습 13-5] 안드로이드플랫폼이미지빌드하기 (7) cd android_froyo_sv210; ls 압축해제를완료했으면압축이해제된 android_froyo_sv210 폴더로이동한다. 그리고 ls 명령어로폴더내용을확인한다. (8)./build_android.sh build_android.sh 파일은 system.img 와 root.img 같은안드로이드플랫폼이미지를생성하기위해이미작성해놓은스크립트파일이다. (9) cd out/target/product/sv210; ls 안드로이드이미지의생성은 PC 사양에따라수시갂이소요된다. 안드로이드이미지의빌드가완료되면 out/target/product/sv210 이하에이미지가생성된것을 [ 그림 13-19] 처럼볼수있다. 기본파일시스템이미지 ro ot.img 와플랫폼이미지파일 system.img 가생성된다. [ 그림 13-19] 안드로이드플랫폼이미지생성

13.5 타깃으로이미지다운로드 31 zimage, root.img, system.img 생성된이미지다운로드

13.5 타깃으로이미지다운로드 32 [ 실습 13-6] 안드로이드이미지다운로드 (1) nand scrub 다운로드하기에앞서이미 Nand Flash 에올라가있던내용을삭제한다. (2) nand erase 80000 FF8000 nand scrub 작업이모두짂행되었으면 [ 그림 13-20] 처럼 NAND 플래시의내용을모두지운다. 메모리영역중 80000~FF8000 의내용을삭제한다. [ 그림 13-20] NAND 메모리지우기

13.5 타깃으로이미지다운로드 33 [ 실습 13-6] 안드로이드이미지다운로드 (3) dnw c0008000 Nand Flash 의내용을삭제하였으면커널의이미지를다운로드하기위하여 USB Port 의통신연결을설정한다. 그리고 zimage 파일이있는곳의경로를 지정한다. 파일이선택되면다운로드가짂행된다. 결과적으로 zimage 라는커널이미지가 SDRAM 에다운로드되었다. SDRAM 의경우휘발성메모리이기때문에 SDRAM 에다운로드된 zimage 를 Nand Flash 로 Write 해주어야한다. (4) nand write c0008000 600000 500000 Nand Flash 에 zimage 를 [ 그림 13-21] 처럼쓰기를한다. [ 그림 13-21] zimage 다운로드하기

13.5 타깃으로이미지다운로드 34 [ 실습 13-6] 안드로이드이미지다운로드 (5) dnw 40000000 다음은앞에서생성한 system.img 를 H-AndroSV210 에다운로드한다. 안드 로이드는 root 와 system 이미지로나누어져있기때문에 2 개의파일시스템이미지를업로드하여야한다. (3) 의과정을반복하는데, 차이점은다운로드주소가다르다는것이다. (6) nand write.yaffs 40000000 1000000 [byte size of system.img] Nand Flash 에 system.img 를 [ 그림 13-22] 처럼쓰기를한다. (7) root.img 이미지를다운로드하여플래시에저장한다. [ 그림 13-22] system.img 다운로드하기

13.6 파일시스템구성 35 임시루트파일시스템 Init 프로세스실행시루트파일시스템마운팅 Initrd, initramfs H-hyper320TKU : initrd (block device, 드라이버 ) H-AndroSV210 : initramfs (non-block device, 캐시메모리사용 ) Yaffs : root.img, system.img 생성

13.6 파일시스템구성 36

13.7 부팅및실행 37 [ 실습 13-7] 안드로이드부팅 (1) H-AndroSV210 을재부팅한다. (2) 잠시후 H-AndroSV210 이정상적으로부팅되는것을그림처럼볼수있다. [ 그림 13-23] 안드로이드부팅

끝 38