기본 콘텐츠로 건너뛰기

3월, 2013의 게시물 표시

Android QEMU용 Kernel을 (Mac에서) 빌드하는 법

http://source.android.com/source/building-kernels.html

Google 문서를 참고하였으나 오늘 날짜 상태와 맞지않는 부분이 있고 또한, Mac OS X Mountain Lion에서 빌드하다보니 다른 점이 있어 정리해본다.

다른점 1. QEMU 에뮬을 위한 커널 소스코드 가져오기

1) git clone https://android.googlesource.com/kernel/goldfish.git kernel-goldfish
2) cd kernel-goldfish/
3) git checkout origin/android-goldfish-3.4

3번 과정은 오늘 날짜 기준이므로 나중에 더 최신 버전의 Kernel로 바뀔 수 있다. 이 경우 git branch -a로 가능한 branch 목록을 확인해서 원하는 것으로 고르자.

다른점 2. Cross compile을 위한 toolchain path

android-build/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.7/bin 를 PATH에 지정해준다.

다른점 3. libelf 설치 필요

MacPort를 이용하여 libelf를 설치한다. 또한, http://plattanimattan.blogspot.kr/2010/04/cross-compiling-linux-on-mac-osx.html 문서를 참고해서 elf.h 파일을 만든다. 참고로 libelf를 설치하면 헤더 파일은 /opt/local/include/libelf 폴더안에 있다.

다른점 4. 위 libelf 관련 문서에서 알려준 것 외에 아래 #define을 elf.h 파일 맨 처음에 추가해준다.

#define __LIBELF64 1
#define __LIBELF_INTERNAL__ 1

UPDATE: 
make ARCH=arm SUBARCH=arm CROSS_COMPILE=arm-linux-androideabi- menuconfig를 실행하여 System Type / Goldfi…