Android 커 널 소스 는 Ubuntu 에서 다운로드,컴 파일,설치

소스 코드 트 리 에서 다운로드 한 최신 안 드 로 이 드 소스 코드 는 커 널 코드 를 포함 하지 않 습 니 다.즉,안 드 로 이 드 소스 코드 프로젝트 는 기본적으로 리 눅 스 커 널 코드 를 포함 하지 않 고 미리 컴 파일 된 커 널,즉 prebuilt/android-arm/kernel/kernel-qemu 파일 을 사용 합 니 다.그렇다면 어떻게 해야만 DIY 자신의 커 널 을 만 들 수 있 을 까?이 문장 을 하나하나 말 하 다.
      1.우선,이전 편Android 원본 은 Ubuntu 에서 다운로드,컴 파일,설치을 참조 하여 안 드 로 이 드 소스 코드 디 렉 터 리 를 준비 합 니 다.
      2.Linux Kernel for Android 소스 코드 를 다운로드 합 니 다.
 1.GIT 도 구 를 사용 하여 다운로드 하고 다음 명령 을 수행 합 니 다.

 USER-NAME@MACHINE-NAME:~/Android$ mkdir kernel

 USER-NAME@MACHINE-NAME:~/Android$ cd kernel
 USER-NAME@MACHINE-NAME:~/Android/kernel$ git clone http://android.googlesource.com/kernel/goldfish.git
마찬가지 로 긴 기다 림 끝 에 kernel 디 렉 터 리 아래 common 디 렉 터 리 가 있 는데 Linux 커 널 코드 가 여기 있 습 니 다.
 2.다운로드 가 완료 되면 다운로드 한 커 널 코드 버 전 을 볼 수 있 습 니 다.
        USER-NAME@MACHINE-NAME:~/Android/kernel$ cd  common   
        USER-NAME@MACHINE-NAME:~/Android/kernel/common$ git  branch   android-2.6.36
 3.위 에서 얻 은 것 은 메 인 라인 의 커 널 소스 코드 입 니 다.지금 은 시 뮬 레이 터 에 사용 할 커 널 이 필요 합 니 다.따라서 checkout goldfish 버 전이 필요 합 니 다.

 USER-NAME@MACHINE-NAME:~/Android/kernel/common$ git branch -a
 * android-2.6.36
 remotes/origin/HEAD -> origin/android-2.6.36
 remotes/origin/android-2.6.35
 remotes/origin/android-2.6.36
 remotes/origin/archive/android-2.6.25
 remotes/origin/archive/android-2.6.27
 remotes/origin/archive/android-2.6.29
 remotes/origin/archive/android-2.6.32
 remotes/origin/archive/android-gldfish-2.6.29
 remotes/origin/archive/android-goldfish-2.6.27
          android-gldfish-2.6.29 선택:
   USER-NAME@MACHINE-NAME: ~/Android/kernel/common$ git checkout remotes/origin/archive/android-gldfish-2.6.29
 3.커 널 코드 를 컴 파일 합 니 다.
 1.$PATH 환경 변수 로 교차 컴 파일 도구 디 렉 터 리 내 보 내기:
  USER-NAME@MACHINE-NAME:~/Android/kernel/common$ export PATH=$PATH:~/Android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin
2.common 디 렉 터 리 에 있 는 Makefile 파일 의 다음 두 동작 을 수정 합 니 다.  
      # ARCH ?= (SUBARCH)
      # CROSS_COMPILE?=
      ARCH ?= arm  #시스템 구 조 는 arm 이다.
      CROSS_COMPILE     ?= arm-eabi-\#교차 컴 파일 도구 체인 접두사,참조~/android/prebuild/linux-x86/toolchain/arm-eabi-4.4.3/bin 디 렉 터 리
3.컴 파일 시작:  
  USER-NAME@MACHINE-NAME:~/Android/kernel/common$ make goldfish_defconfig
  USER-NAME@MACHINE-NAME:~/Android/kernel/common$ make 
컴 파일 에 성공 하면 다음 두 줄 을 볼 수 있 습 니 다. 
      OBJCOPY arch/arm/boot/zImage
      Kernel: arch/arm/boot/zImage is ready   
make 명령 을 실행 하기 전에 make menu config 를 실행 하여 컴 파일 옵션 을 설정 할 수 있 습 니 다.
 4.시 뮬 레이 터 에서 컴 파일 된 커 널 을 실행 합 니 다.   
  1.시 뮬 레이 터 를 시작 하기 전에 환경 변수$PATH 에 시 뮬 레이 터 디 렉 터 리 를 설정 합 니 다.  
 USER-NAME@MACHINE-NAME:~/Android$ export PATH=$PATH:~/Android/out/host/linux-x86/bin
2.ANDROID 설정PRODUCT_OUT 환경 변수:  
USER-NAME@MACHINE-NAME:~/Android$ export ANDROID_PRODUCT_OUT=~/Android/out/target/product/generic
3.배경 에 커 널 파일 시작 시 뮬 레이 터 를 지정 합 니 다.   
USER-NAME@MACHINE-NAME:~/Android$  emulator -kernel ./kernel/common/arch/arm/boot/zImage &
4.adb 도구 로 시 뮬 레이 터 를 연결 하고 커 널 버 전 정 보 를 확인 하 며 시 뮬 레이 터 에서 달 리 는 커 널 이 우리 가 방금 컴 파일 한 커 널 인지 확인 합 니 다.    
USER-NAME@MACHINE-NAME:~/Android$ adb shell    
이때 adb 셸 명령 을 처음 실행 하면 다음 출력 을 볼 수 있 습 니 다.신경 쓰 지 말고 adb 셸 명령 을 다시 실행 하면 됩 니 다.
    * daemon not running. start it now on port 5037 *
      * daemon started successfully *
      error: device offline  
     proc 디 렉 터 리 로 전환:
      root@android:/ # cd proc
      root@android:/proc # cat version
      Linux version 2.6.29-gb0d93fb-dirty (luo@ubuntu-11-04) (gcc version 4.4.3 (GCC) ) #1 Fri Jun 3 23:17:24 HKT 2011
  기계luo@ubuntu-11-04 와 날짜 1 Fri Jun 3 23:17:24 HKT 2011 에서 알 수 있 듯 이 시 뮬 레이 터 가 사용 하 는 커 널 은 바로 방금 컴 파일 된 커 널 이다.
 PS:메 인 라인 의 최신 소스 코드 는 불안정 버 전 으로 사용 과정 에 문제 가 있 을 수 있 습 니 다.
보다 정식 적 인 소스 코드 컴 파일 방법 은 홈 페이지 를 참조 하 시기 바 랍 니 다.http://source.android.com/source/building-kernels.html
 이상 은 우 분투 안 드 로 이 드 소스 커 널 에 대한 컴 파일 이 며,컴 파일 과정 에서 이러한 문제 에 부 딪 힐 수 있 으 므 로 추 후 계속 정리 해 안 드 로 이 드 커 널 을 연구 하 는 친구 들 에 게 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기