 |
1. 먼저 Gross Compiler를 구하여 설치한다.
http://www.codesourcery.com/gnu_toolchains/arm/download.html (ARM EABI, IA32 GNU/Linux 옵션 선택)
2. 안드로이드 Kernel Source를 구하여 설치한다.
http://code.google.com/p/android/downloads/list (linux-2.6.23-android-m3-rc20.tar.gz)
3. Kernel Compile 환경 설정 및 Kernel Image Build
- 첨부한 config 파일을 <kernel_install_path>/kernel/.config 로 저장한다. - Makefile의 CROSS_COMFILE ?= <cross_compiler_install_path>/bin/arm-none-linux-gnueabi- 로 설정한다. - Makefile의 LDFLAGS_BUILD_ID 를 주석처리한다. - make zImage 를 하면, <kernel_install_path>/arch/arm/boot/zImage 가 만들어진다.
4. 안드로이드 커널 Replacement 및 실행 테스트
- <android_sdk_install_path>/tools/lib/images/kernel-qemu 를 backup한다. - 위의 zImage를 <android_sdk_install_path>/tools/lib/images/kernel-qemu 로 복사한다. - <android_sdk_install_path>/tools/emulator.exe를 실행한다.
5. kernel debug log 비교 (My Build Kernel vs. 구글 Release Kernel)
< ................... done, booting the kernel. < Linux version 2.6.23 (jsyang@kandroid.com) (gcc version 4.2.1 (CodeSourcery Sourcery G+ < + Lite 2007q3-53)) #5 Sun Dec 2 22:19:17 KST 2007 > .................... done, booting the kernel. > Linux version 2.6.23-gcc3bc3b4 (arve@arvelnx.corp.google.com) (gcc version 4.2.1 > ) #3 Tue Oct 30 16:28:18 PDT 2007
< Memory: 94232KB available (2252K code, 458K data, 92K init) > Memory: 94212KB available (2268K code, 458K data, 96K init)
< yaffs Dec 2 2007 03:53:16 Installing. > yaffs Oct 30 2007 16:24:34 Installing.
< goldfish_rtc goldfish_rtc: setting the system clock to 2007-12-02 12:53:05 (1196 < 599985) < Freeing init memory: 92K > goldfish_rtc goldfish_rtc: setting the system clock to 2007-12-02 12:55:37 (1196 > 600137) > Freeing init memory: 96K
< # binder_open(c0843300 c0aa4ce0) (pid 456) got c5cf5000 < binder_open(c0843300 c4f6bea0) (pid 464) got c467a000 < binder_open(c0843300 c0aa4460) (pid 474) got c3d54000 > # binder_open(c0843300 c03bcea0) (pid 464) got c5d3c000 > binder_open(c0843300 c5a729e0) (pid 456) got c54e6000 > binder_open(c0843300 c5a72c60) (pid 469) got c4754000
< binder_open(c0843300 c4f6b2a0) (pid 527) got c398e000 < binder_open(c0843300 c4f6b1a0) (pid 525) got c321e000 < binder_open(c0843300 c38552c0) (pid 542) got c3332000 > binder_open(c0843300 c393bee0) (pid 505) got c4794000 > binder_open(c0843300 c42737c0) (pid 508) got c3b3a000 > binder_open(c0843300 c393bde0) (pid 523) got c343c000
|
※ 회원등급 레벨 0 이상 읽기가 가능한 게시판입니다.
16
|