1. 툴체인 : 타겟 플랫폼에 맞게 바이너리를 생성하는 크로스 컴파일러 툴 모음
필요한 타겟에 맞게 툴체인을 설치한다.
http://www.codesourcery.com 이곳에서 제품목록에서 Sourcery G++ 중에
무료인 Lite Edition 을 선택한다.
프로세서와 타겟 플랫폼별로 다운로드 할 수 있다.
압축을 풀고, 해당 폴더를 export 시킨다.
걍 매번 구찮으면 ~/.bashrc 에 등록해버린다.
2. 커널 소스 다운로드
생성하려는 폴더 위치로 이동.
$ cd ~/mysource
최신버전의 커널 소스의 저장소를 클론(복사) 한다.
2010.1월 현재 2.6.27 버전이 클론된다.
$ sudo git clone git://android.git.kernel.org/kernel/common.git kernel
브랜치를 확인한다.
$ cd kernel
$ git branch
* andorid-2.6.27
2.5.29 버전을 체크아웃(업데이트)한다.
$ sudo git checkout --track -b android-2.6.29 origin/android-2.6.29
버전확인
$ git branch
기타 다른 커널버전등의 필요한 소스들은 아래 uir로~ 다운받는 방법은 동일하다.
http://android.git.kernel.org/
3. 소스정리
$ make mrproper
$ make distclean
4. Makefile 수정 : 아키텍쳐와 크로스컴파일러 수정
컴파일에 필요한 아키텍처명과 툴체인 정보를 기술한다. 그냥 make 시에 인자로 주어도 된다.
ARCH ?= arm
CROSS_COMPILE ?= arm-generic-linux-gnueabi-
* 만약 안드로이드의 goldfish 를 사용하려면, 플랫폼 소스의 커널 디렉토리로 이동 후
초기화를 하고, 다시 컴파일 한다.
$ 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-
* /kernel/arch/arm/configs/ 디렉토리에 툴체인 설정파일들( defconfig )이 존재하는데,
위 과정은 이 파일을 디볼트 설정파일인 /kernel/.config 파일로 대체하게 된다.
5. 커널 환경설정 : 각종 커널 설정..
$ make menuconfig
6. 빌드
$ make zImage
음.... 이제 타겟에 올리는 것만 남았남? 긁적~
* 에뮬레이터의 경우 adb pull /proc/config.gz 로 에뮬레이터의 컨피그 정보를
가져와 해당 정보로 Makefile을 수정해서 컴파일하면 된다.
'프로그래밍 > Android' 카테고리의 다른 글
안드로이드 플랫폼 HelloWorld (0) | 2010.02.18 |
---|---|
Android system 폴더에 쓰기 (0) | 2010.02.08 |
에뮬레이터에서 data,system 디렉토리 가져오기 (0) | 2010.02.04 |
JNI 기본사항 (0) | 2010.01.15 |
플랫폼 make/ 모듈 추가 방법 (0) | 2010.01.15 |
서비스1 - 로컬서비스 (0) | 2009.12.22 |
LayoutInflater를 사용해 레이아웃 구성하기 (0) | 2009.12.15 |
액티비티 변경 에니메이션 (0) | 2009.12.06 |
Animation 관련 샘플 (0) | 2009.12.06 |
ViewFlipper로 뷰 교체하기 (0) | 2009.12.06 |