이 매뉴얼은 JK전자(JK Electronics) 에 의해서 번역, 수정, 작성 되었고 소유권 또한
JK전자(JK Electronics)
의 것입니다. 소유권자의 허가를 받지 않고 무단으로 수정, 삭제하거나 배포 할 수 없습니다.



 

S3C6410 Start Kit Android Developer Guide

 

* Update history

- 2011.1.13 : 초기 Release


 

1. Create Android development environment

이번 장에서는 안드로이드 시스템의 커널 컴파일 방법과 파일 시스템 구축 등에 대해서 설명 합니다. 안드로이드 어플리케이션 개발에 대해서는 Android Application Developer Guide 를 참조하시기 바랍니다.

2. 안드로이드 개발 플랫폼

안드로이드와 리눅스의 개발 환경은 기본적으로 동일 합니다. 기본적인 개발환경은 리눅스 호스트(Fedora 9)과 크로스 컴파일러, 파일 시스템 구축 툴(mktool) 체인 등이 필요 합니다.

2.1 Unpacking the source code

먼저 작업 디렉토리 "/opt/FriendlyARM/mini6410/android" 를 생성 합니다.

# mkdir -p /opt/FriendlyARM/mini6410/android

(1) Android source code package 준비

Fedora 9 리눅스 시스템의 tmp 디렉토리에 "/tmp/androi" 를 생성 합니다. 그리고 제공 CD ROM 에서 안드로이드 소스 전체를 복사 합니다.

# mkdir /tmp/android

Note : 여기서 안드로이드 소스를 tmp 디렉토리를 생성하고 복사하는 과정은 실제 사용자 마다 다를 수 있습니다. 단지 여기에서는 예시를 한 것 뿐입니다.

(2) Extract the source code to install u-boot

작업디렉토리 "/opt/FriendlyARM/mini6410/android" 에서 실행 해야 합니다.

# cd /opt/FriendlyARM/mini6410/android
# tar xvzf /tmp/android/u-boot-mini6410-20101106.tar.gz


u-boot 파일명에서 "20101106" 는 소스의 날짜 이므로 소프트웨어 Release 버젼마다 다를 수 있습니다.

(3) Extract the kernel source to install Android

작업디렉토리 "/opt/FriendlyARM/mini6410/android" 에서 실행 해야 합니다.

# cd /opt/FriendlyARM/mini6410/android
# tar xvzf /tmp/android/android-kernel-2.6.36-20110104.tar.gz


(4) Extract the package to install Android Source Code

# cd /opt/FriendlyARM/mini6410/android
# tar xvzf /tmp/android/android-2.2-fs-20110104.tar.gz


(5) Extract the Android system

# cd /opt/FriendlyARM/mini6410/android
# tar xvzf /tmp/android/rootfs_android-20110104.tar.gz


2.2 Configuring and compiling U-boot

U-boot는 리눅스용과 완벽하게 동일 합니다.

2.2.1 Configure Compile support for NAND boot U-boot

* 128M DDR RAM용 U-boot 컴파일 과정

U-Boot 소스가 있는 디렉토리로 이동

# cd /opt/FriendlyARM/mini6410/linux/u-boot-mini6410
# make mini6410_nand_config-ram128;make


* 256M DDR RAM용 U-boot 컴파일 과정

# cd /opt/FriendlyARM/mini6410/linux/u-boot-mini6410
# make mini6410_nand_config-ram256;make


컴파일이 완료되면 "U-boot.bin" 파일이 생성 됩니다.

2.2.2 Configure Compile support for SD boot U-boot

NAND boot용 U-boot 컴파일 할때와 동일하게 메모리 용량에 따라서 2가지로 컴파일 할 수 있습니다.


* 128M DDR RAM용 U-boot 컴파일 과정

#cd /opt/FriendlyARM/mini6410/linux/u-boot-mini6410
#make mini6410_sd_config-ram128;make

* 256M DDR RAM용 U-boot 컴파일 과정

#cd /opt/FriendlyARM/mini6410/linux/u-boot-mini6410
#make mini6410_sd_config-ram256;make

2.3 Linux kernel configuration and compilation

커널은 LCD종류에 따라서 설정 파일이 달라 질 수 있습니다.

* 4.3인치 LCD를 사용할 경우의 빌드 과정

# cd /opt/FriendlyARM/mini6410/android/linux-2.6.36-android
# cp config_android_n43 .config
# make


빌드가 완료되면 "arch/arm/boot" 디렉토리에 zImage 파일이 생성 됩니다.

* 7.0인치 LCD를 사용할 경우의 빌드 과정

# cd /opt/FriendlyARM/mini6410/android/linux-2.6.36-android
# cp config_android_a70 .config
# make


마찬가지로 빌드가 완료되면 "arch/arm/boot" 디렉토리에 zImage 파일이 생성 됩니다.

2.4 Create Android from source

안 드로이드 시스템 소스는 너무나 방대해서 컴파일 하는 데에만 1.5-4 hours 정도가 소요될 정도 입니다. 그래서 컴파일을 좀더 쉽게 하기 위해서 build-android, genrootfs.sh and genrootfs-s.sh 3개의 스크립트를 제공 합니다.

# cd /opt/FriendlyARM/mini6410/android/Android-2.2
# ./build-android

Android-2.2 system의 빌드가 시작 됩니다. 빌드가 완료되면 아래 명령을 실행해서 안드로이드 파일 시스템(rootfs_dir)을 생성 합니다.

# ./genrootfs.sh

android

2.5 Android Filesystem

2.5.1 yaffs2 filesystem

mkyaffs2image-128M 툴을 이용해서 yaffs2 파일시스템 포맷을 생성 할 수 있습니다.

# cd /opt/FriendlyARM/mini6410/android/Android-2.2
# mkyaffs2image-128M rootfs_dir rootfs_android.img

만약에 serial port touch screen을 사용한다면 "rootfs_android-s" 를 이용하면 됩니다.

2.5.2 UBIFS filesystem

mkubimage 툴을 이용해서 만들 수 있습니다.

# cd /opt/FriendlyARM/mini6410/android/Android-2.2
# mkubimage rootfs_dir rootfs_android.ubi

UBIFS 파일시스템은 yaffs2 보다 압축이 되어 있어서 용량이 좀더 작습니다.

2.5.3 ext3 filesystem

mkext3image 툴을 이용해서 만들 수 있습니다.

# cd /opt/FriendlyARM/mini6410/android/Android-2.2
# mkext3image rootfs_dir rootfs_android.ext3

ext3파일 시스템은 주로 안드로이드 시스템을 SD메모리에서 바로 실행할 경우에 사용하게 됩니다. 자세한 사항은 OS포팅 가이드 를 참조하시기 바랍니다.