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

Similar documents
PowerPoint 프레젠테이션

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

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

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

Mango220 Android How to compile and Transfer image to Target

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

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

PowerPoint 프레젠테이션

슬라이드 제목 없음

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

Chap 3 부트로더 (Bootloader)

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

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

망고 M 카메라 포팅 가이드

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

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

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

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

ISP and CodeVisionAVR C Compiler.hwp

PowerPoint 프레젠테이션

휠세미나3 ver0.4

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

PowerPoint 프레젠테이션

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

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

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

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

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

RealDSP UT 프로그램 메뉴얼

슬라이드 1

Tizen

Code Generation in Rapid

(SW3704) Gingerbread Source Build & Working Guide

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

(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)


Flute-GR_BV199_DOS.indb

Mango24R2 Auto Write

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

Mango64R3 How to write Wince 6.0

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

DE1-SoC Board

Microsoft PowerPoint - ARM 개발 환경.ppt

Abstract View of System Components

PowerPoint 프레젠테이션

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

Solaris Express Developer Edition

Install stm32cubemx and st-link utility

슬라이드 1

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,,,,,,,,,,,,,.,..., U.S. GOVERNMENT END USERS. Oracle programs, including any operat

(72) 발명자 이동희 서울 동작구 여의대방로44길 10, 101동 802호 (대 방동, 대림아파트) 노삼혁 서울 중구 정동길 21-31, B동 404호 (정동, 정동상 림원) 이 발명을 지원한 국가연구개발사업 과제고유번호 부처명 교육과학기술부

교육지원 IT시스템 선진화

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

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

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

1217 WebTrafMon II

Microsoft Word - Armjtag_문서1.doc

LXR 설치 및 사용법.doc

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

Contents I. 칼라스 네트워크 플레이어란 1. Pc-Fi를 넘어서 발전한 차세대 음악 플레이어 칼라스 네트워크 플레이어의 장점 3. 시스템 기본 구성

Smart Power Scope Release Informations.pages

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

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

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

PowerPoint 프레젠테이션

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

GNU/Linux 1, GNU/Linux MS-DOS LOADLIN DOS-MBR LILO DOS-MBR LILO... 6

무시하고진행합니다. $ sudo rootstock -d precise --seed ubuntu-standard -x en_us.utf-8 -f ubuntu -l ubuntu -p ubuntu -i 2G I: Running on a x86_64 machine I: Cre

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

본교재는수업용으로제작된게시물입니다. 영리목적으로사용할경우저작권법제 30 조항에의거법적처벌을받을수있습니다. [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase sta

PowerPoint 프레젠테이션

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

28 THE ASIAN JOURNAL OF TEX [2] ko.tex [5]

Microsoft PowerPoint - ch07.ppt

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

알아 둘 사항 아이오드 제조사는 본 기기에 하드디스크를 포함하여 출고하지 않습니다. 따라서 하드디스크에 문제가 발생할 경우, 구매처 또는 해당 하드디스크 서비 스센터에 문의 하시기 바랍니다. 정해진 용도 외의 사용으로 발생한 문제에 대해서, 당사는 어떠한 책임도 지지

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

Microsoft Word - 임베디드월드_WindowsEmbeddedCompact7_rev

Microsoft Word ARM_ver2_0a.docx

문서 대제목

MAX+plus II Getting Started - 무작정따라하기

System Recovery 사용자 매뉴얼

고급 프로그래밍 설계

2008

manual pdfÃÖÁ¾

Mango-E-Toi Board Developer Manual

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Integ

<31332DB9E9C6AEB7A2C7D8C5B72D3131C0E528BACEB7CF292E687770>

교육지원 IT시스템 선진화

Microsoft Word - EISC-GANG_User_Guide_V1.4.doc

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft Word - CL5000,5500_KOR_UM_ _.doc

Transcription:

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

1. Kernel Operating System에서 Kernel은운영체제의핵심부분이다. Bootloader에서하드웨어초기화를담당했다면, 커널은우리가사용해야할시스템자원을관리해주는기능을해준다. 아래는기본적인커널의역할을나열해보았다. 물론, 안드로이드가적용되면서기본적인커널에추가적인기능이포함되었다. 기본적인커널의역할을나열하면아래와같다. 프로세스관리 (Process Management) 메모리관리 (Memory Management) 파일시스템관리 (File System Management) 디바이스관리 (Device Management) 네트워크관리 (Network Management) 1.1. 커널컴파일 1.1.1. 커널소스소스준비 1 작업디렉터리로이동한다. 제공된 DVD (CD/Kernel 디렉터리 ) 의커널소스를커널작업디렉터리로복사한다. 커널버전은제품출시일에따라변경될수있기때문에 CD의내용을확인하고진행한다. root@ubuntu:~# mkdir /root/temp root@ubuntu:~# cp /media/[achro-disc]/kernel/kernel.tar.gz /root/temp root@ubuntu:~# cd /root/temp root@ubuntu:/root/temp# 2 복사한소스의압축을푼다. (bzip2 파일일경우, xvf 옵션으로 tar 명령수행 ) 2

root@ubuntu:/root/temp# tar xvf kernel.tar.gz C /work/achroimx6q root@ubuntu:/root/temp# rm kernel.tar.gz 3 압축을풀어놓은소스디렉터리로이동 root@ubuntu:/root/temp# cd /work/achroimx6q/achroimx_kernel X root@ubuntu root@ubuntu:/work/achroimx6q/achroimx_kernel# ls COPYING Documentation Kconfig Makefile README System.map block drivers fs init kernel mm net scripts sound usr vmlinux CREDITS Kbuild MAINTAINERS Module.symvers REPORTING-BUGS arch crypto firmware include ipc lib name samples security tools virt vmlinux.o 4 기존의 compile 설정을지운다. root@ubuntu:/work/achroimx6q/achroimx_kernel# make distclean 5 Target Board에맞는설정을지정한다. 설정파일은 arch/arm/configs 폴더에있다. 아래명령실행시, 오류가발생하면, /root/.bashrc에 export CROSS_COMPILE 환경변수가선언되어있는지확인하고없으면추가한다. 파일을변경했으면 source 명령을통해갱신한다. 자세한내용은임베디드시스템개발환경챕터에기술되어있다. root@ubuntu:/work/achroimx6q/achroimx_kernel# export ARCH=arm root@ubuntu:/work/achroimx6q/achroimx_kernel# make achroimx_defconfig 9 컴파일하기 -j 옵션은빌드머신으로사용하는호스트컴퓨터의프로세서개수를지정할때 3

사용한다. 프로세서의개수가많으면빌드시간이줄어든다. 만약, ubuntu 버전이높아 python3를사용해서빌드하는경우, 아래와같은에러메시지를볼수있다. 이때는 kernel/timeconst.pl 파일을에디터로열어서, defined 구문을삭제한다. 즉, defined(@array) 를 (@array) 로변경한후, 컴파일을다시시도한다. Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373. root@ubuntu:/work/achroimx6q/achroimx_kernel# make -j4 10 bootimage 생성 Achro-i.MX6Q의 Andoroid는 kernel과 ramdisk를함께포함하는 bootimage를사용한다. 따라서 kernel만컴파일한경우는 ramdisk가없기때문에 bootimage를생성할수없다. android를모두빌드한후에, kernel이포함된 bootimage를퓨징해야동작을확인할수있다. 따라서아래의 command 및 kernel 기록과정은다음장에이어지는 android를컴파일한후에수행한다. root@ubuntu:/work/achroimx6q/achroimx_kernel# cd../android root@ubuntu:/work/achroimx6q/android#./make_bootimage.sh 1.1.2. 커널기록 커널바이너리는 USB 를통해서다운로드된다. 그러므로 VMware 와같이가상 장치를이용하는경우에는 USB 를이용할수있도록설정이되어있어야한다. 1 미니컴실행커널을기록하기위해서미니컴을실행한다. 이전개발환경구성편에서미니컴을설치하고통신포트와설정부분을이미디폴트설정으로구성하였으므로바로실행해주면된다. 만약, 기존개발환경구성부분을확인하지않은독자는해당부분을참고하여미니컴의설정을정상적으로마친다음, 미니컴을실행하면된다. root@ubuntu:/work/achroimx6q/achroimx_kernel# minicom 4

2 개발보드연결 Achro-i.MX6Q에서디버그포트로시리얼메시지를받으려면, 개발보드의 Console 포트와 PC의시리얼포트를시리얼케이블로연결한다. 그리고 usb otg 케이블도연결해주어야한다. 3 Achro-i.MX6Q 개발보드의전원을켠다. Target Board의전원을 On 시키면아래와같은화면이표시되면서 [Hit any key to stop autoboot : 3] 카운트다운이시작된다. 0이되기전에키보드에서임의의키를누르면 u-boot 명령모드로진입할수있다. ( 키입력이늦으면리눅스커널이부팅되어안드로이드로진입하게되므로꼭카운트다운이끝나기전에 u-boot 명령창으로진입하자.) 5

X root@ubuntu U-Boot 2009.08-dirty ( 9 30 2014-11:10:50) CPU: Freescale i.mx6 family TO1.2 at 792 MHz Thermal sensor with ratio = 172 Temperature: 35 C, calibration data 0x53f49d7d mx6q pll1: 792MHz mx6q pll2: 528MHz mx6q pll3: 480MHz mx6q pll8: 50MHz ipg clock : 66000000Hz ipg per clock : 66000000Hz uart clock : 80000000Hz cspi clock : 60000000Hz ahb clock : 132000000Hz axi clock : 264000000Hz emi_slow clock: 132000000Hz ddr clock : 528000000Hz usdhc1 clock : 198000000Hz usdhc2 clock : 198000000Hz usdhc3 clock : 198000000Hz usdhc4 clock : 198000000Hz nfc clock : 24000000Hz Board: Achro i.mx6q Board: 0x63012 [WDOG] Boot Device: SD I2C: ready DRAM: 2 GB MMC: FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3 *** Warning - bad CRC or MMC, using default environment Gzipped BMP image detected! In: serial Out: serial Err: serial Net: got MAC address from IIM: 00:00:00:00:00:00 FEC0 [PRIME] Hit any key to stop autoboot: 0 ACHRO MX6Q U-Boot > 5 fastboot 실행부트파일을전송받기위해 target board에서 fastboot 명령을실행한다. <Target board> Achro i.mx6q > fastboot 6

X root@ubuntu Achro i.mx6q > fastboot fastboot is in init...flash target is MMC:0 USB Mini b cable Connected! fastboot initialized USB_SUSPEND USB_RESET 6 fastboot을이용한 bootimage 전송호스트 PC에서 fastboot 명령을실행하여 bootloader를전송한다. 명령형식은아래와같다. fastboot [ <option> ] <command> 의형태로사용한다. root@ubuntu:/work/achroimx6q/android# fastboot erase boot root@ubuntu:/work/achroimx6q/android# fastboot flash boot boot.img X root@ubuntu root@ubuntu:/work/achroimx6q/android# fastboot flash boot boot.img sending 'bootloader' (456 KB)... OKAY [ 0.458s] writing 'bootloader'... OKAY [ 0.291s] finished. total time: 0.751s X root@ubuntu Achro i.mx6q > fastboot fastboot is in init...flash target is MMC:0 USB Mini b cable Connected! fastboot initialized USB_SUSPEND USB_RESET cmdbuf: getvar:partition-type:boot send: OKAY cmdbuf: getvar:max-download-size send: OKAY cmdbuf: download:00576000 7

Starting download of 5726208 bytes send: DATA00576000... send: OKAY downloading of 5726208 bytes finished cmdbuf: flash:boot writing to partition 'boot' Initializing 'boot' mmc0 is current device Writing 'boot' MMC write: dev # 0, block # 15624, count 11184... 11184 blocks write: OK Writing 'boot' DONE! send: OKAY 6 퓨징이완료되면장치를다시리셋하여 bootloader 명령모드로진입해본다. root@ubuntu:/work/achroimx6q/android# fastboot reboot 8