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



 

S5PV210 SDK 개발보드 Android 개발자 가이드

 

* Update history

- 2011.1.13 : 초기 Release


 

1. Create Android development environment

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

1.1 안드로이드 개발 호스트 PC의 리눅스 설정

기본적인 개발환경은 VMWare6.0 에서 리눅스 호스트(Fedora 14, Fedora 15 32bit version)과 크로스 컴파일러, 파일 시스템 구축 툴(mktool) 체인 등을 통해서 테스트 하였습니다.
다른 리눅스 호스트에서는 컴파일시 에러가 발생 할 수 있습니다. Fedora's official address: http://fedoraproject.org/
Fedora14 설치이 DNS, DHCP 서버만 사용하지 않는 다면 다른 설정하고는 문제가 되지 않습니다.

Fedora14에서 보통 터미널 프로그램에 대한 설정은 /etc/pam.d/gdm 에 있습니다.

# sudo vim /etc/pam.d/gdm



#auth required pam_succeed_if.so user != root quiet

gdm 파일에 위의 내용을 수정(주석처리)한 후 저장합니다.

# sudo vim /etc/pam.d/gdm-password



#auth required pam_succeed_if.so user != root quiet


gdm-password 파일에 위의 내용을 수정(주석처리)한 후 저장합니다.

위의 과정을 수행하는 이유는 Fedora14의 GUI 환경에서 root 계정으로 로그인을 가능하게 하기 위해서 하는 것입니다.
물론 위의 파일들을 수정하지 않고 일반계정으로 로그인 한 후에 터미널을 열어서 root 계정으로 su -l root 명령을 이용해서 root 로 전환을 해도 됩니다.

1.2 Install cross-build compiler

크로스 컴파일러로  arm-linux-gcc-4.5.1 컴파일러를 설치 해야 합니다. 이 컴파일러는 armv6 Instruction set and support hardware floating-point operations 등을 지원 합니다. 자세한 설치 방법은 리눅스 개발자 가이드를 참조하시기 바랍니다.

1. Linux 개발자 가이드(커널 컴파일, 파일시스템, Qt 포팅 등)

1.3 Install mktools


안드로이드 파일시스템 생성 툴 설치 입니다. 자세한 사항은 리눅스 개발자 가이드를 참조하시기 바랍니다.

1. Linux 개발자 가이드(커널 컴파일, 파일시스템, Qt 포팅 등)

2.1 Unpacking the source code

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

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

(1) Android source code package 준비

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

# mkdir /tmp/android

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

(2) Extract the kernel source to install Android

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

# cd /opt/FriendlyARM/tiny210/android
# tar xvzf /tmp/android/android-kernel-2.6.35.7-20111118.tar.gz


(3) Extract the package to install Android Source Code

# cd /opt/FriendlyARM/tiny210/android
# tar xvzf /tmp/android/android-2.3.1-fs-20110925.tar.gz


(4) Extract the Android root file system

# cd /opt/FriendlyARM/tiny210/android
# tar xvzf /tmp/android/rootfs_android-20110925.tar.gz

2.2 Linux kernel configuration and compilation

안드로이드와 임베디드 리눅스의 커널은조금 다릅니다. 하지만  빌드하는 방법은 굉장히 동일 합니다. 컴파일시 기본 커널 설정으로 컴파일 하기를 권장 합니다.

# cd /opt/FriendlyARM/tiny210/android/linux-2.6.35.7
# cp mini210_android_defconfig .config
# make


make menuconfig 명령으로 커널 설정을 수정 할 수 있습니다. 빌드가 완료되면 "arch/arm/boot" 디렉토리에 zImage 파일이 생성 됩니다.

2.4 Create Android from source

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

# cd /opt/FriendlyARM/tiny210/android/Android-2.3.1
# ./build-android

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

# ./genrootfs.sh

android

2.5 Android Filesystem

2.5.1 yaffs2 filesystem

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

# cd /opt/FriendlyARM/tiny210/android/Android-2.3.1
# mkyaffs2image-128M rootfs_dir rootfs_android.img