본문 바로가기
Embedded System/Android

안드로이드 소스 및 커널 소스 받기 및 빌드

by lifeseed 2010. 10. 1.

안드로이드 소스는 git와 repo를 이용해 다운 받는다.

안드로이드의 GIT 서버는 다음과 같다.

http://android.git.kernel.org/

해당 사이트에 접속하면 코드를 다운 받는 방법이 나온다.
첫번째는 git를 이용하는 방법이고, 두 번째는 repo를 이용하는 방법이다.
But... git로는 다운이 받아 지지 않음.
repo로 다운 받자.

1. repo와 git 설치
1) git 설치
$sudo apt-get install git-core gnupg

2) repo 설치
$cd ~
$mkdir bin
$curl http://android.git.kernel.org/repo > ~/bin/repo
$chmod a+x ~/bin/repo
그리고 shell의 어느 위치에서나 repo를 사용하기 위하여 .bashrc 파일에 다음 구문을 추가한다.

  export PATH=/home/<your_home>/bin:$PATH:.

2. Android Code 다운
mkdir mydroid
cd mydroid
repo init -u git://android.git.kernel.org/platform/manifest.git
repo sync

위의 명령어로 최신 코드를 받을 수 있다.

froyo는 64Bit 머신에서만 컴파일이 된단다. ㅡ,.ㅡ
어쩔수 없이 eclair로 다운받자.

-- 20101110 수정 사항 ----------------------------------------------------------
froyo가 아니라 최신 업데이트 코드가 64Bit에서만 컴파일된다는 메세지가 나온다.
eclair와 마찬가지로 froyo Branch 코드를 받으면 froyo 컴파일이 가능하다.
------------------------------------------------------------------------------

음... 이걸 그 긴 시간을 걸쳐 다시 받어??
방법이 있더이다.

서버에 있는 다른 Branch에 있는 코드를 받으려면, repo init을 이용하여 다시 설정한다.
repo init -u git://android.git.kernel.org/platform/manifest.git -b eclair
새로 다운 받는 것 보단 훨씬 빨리 완료된다.

이후 단순 make 명령만으로 빌드가 수행된다. 단 어마 어마한 시간이 걸리며, 또한 환경 설정이 잘 못될 경우 컴파일이 되지 않는다.

드디어... 하루 이상의 웹질과 삽질끝에 컴파일 완성.. ^__________^

3. Android Kernel 다운
1) git 명령을 이용하여 Kernel을 다운받자.
커널을 다운받는 위치는 Android 소스의 루트 폴더에 다운 받는다.
$ git clone git://android.git.kernel.org/kernel/common.git kernel

2) kernel 버전 check
$ cd kernel
$ git branch
* android-2.6.27

3) kernel 업데이트
$ git checkout --track -b android-2.6.29 origin/android-2.6.29
$ git branch
android-2.6.27
* android-2.6.29

Test를 위해 Kernel의 Goldfish 를 다운받아 컴파일하자.
$ git checkout -b android-goldfish-2.6.29 origin/android-goldfish-2.6.29

4) Goldfish 용으로 컴파일
크로스 컴파일러는 커널을 Android 소스에 포함된 arm-eabi-4.2.1 버전을 사용한다.
$cd ~/mydroid/kernel
$make goldfish_defconfig ARCH=arm
$make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-

이렇게 하면 커널 컴파일이 완료된다.

끝.