티스토리 뷰

Kernel

커널(Kernel) 개발 환경 구축하기

Mir(whdghks913) 2014.01.26 12:06

안드로이드를 위한 커널 개발 환경 구축하기

이 글은 우분투(Ubuntu)를 기준으로 작성됩니다

우분투가 설치된 상황을 가정한 상태에서 쓰여졌습니다

루트권한(#)을 얻은상태에서 진행할경우, sudo를 제외한뒤 사용하세요

명령어의 맨앞 "$"는 입력하지 않습니다



1. 필수 패키지 설치하기

커널 환경을 위해 필수 패키지를 설치해야 합니다

$ sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind

호환성 문제가 발생할경우 설치가 되지 않는 패키지를 제외한후 설치하세요

또는 A패키지는 B로 대신할수 있습니다 같은 문구가 나올경우 대신해서 설치하세요



2. 자바(Java)설치하기

두번째로 자바를 설치해야 합니다


$ sudo add-apt-repository ppa:webupd8team/java

$ sudo apt-get update

$ sudo apt-get install oracle-java6-installer

파란배경으로 자바 라이센스 동의가 나타날경우

Tab(탭)버튼을 눌러 OK를 눌러주세요




3. 툴체인 설치하기

툴체인에 대해서는 [Kernel] - Android Toolchain (툴체인) 모음 포스팅을 확인해 주세요


툴체인은 아래에서 받을수 있습니다

원하는 커널에 맞는 툴체인을 사용해야 합니다

확인할수 있는 방법은 커널을 다운받은다음 README.txt를 열어보시면 무슨 툴체인을 사용해야 하는지 알려줍니다


아래 다운로드 링크중 하얀 박스는 arm에 최적화된 linaro툴체인이며, 다른 박스들은 구글이 제공하는 arm-eabi툴체인입니다


어떤 툴체인을 사용하는지에 따라 흐름이 달라지니 잘 선택해 주세요



(1) 기본적으로 오류를 가장 적게 내며 Readme가 하라는 대로 하고 싶다 - arm-eabi 툴체인

(2) arm계열에 더 최적화되어 좀더 빠른 성능과 linaro를 썼다는 자부심(?)을 느끼고 싶다 - linaro 툴체인


리나로 툴체인에 더 알고 싶다면 : [Kernel] - 리나로(linaro) 툴체인으로 빌드하기










참고 : arm-eabi-4.7, 4.8

https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/

https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7/

https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/




다운받으신 다음 HOME폴더에 압축을 풀어주세요


그다음 폴더 명을 툴체인 이름에 맞게 바꿔주세요

linaro-toolchain

arm-eabi-4.4.0

arm-eabi-4.4.3

arm-eabi-4.6


바꿔주신다음 아래 명령어를 쳐서 한번에 권한을 줍시다

chmod 777 -R (폴더경로)


예를들어 홈 폴더에 툴체인이 있다면 각각

chmod 777 -R ~/linaro-toolchain

chmod 777 -R ~/arm-eabi-4.4.0

chmod 777 -R ~/arm-eabi-4.4.3

chmod 777 -R ~/arm-eabi-4.6



이제 아래 명령어를 치면 텍스트 에디트가 나옵니다

gedit ~/.bashrc


맨 아래에 추가해 주시면 됩니다

export JAVA_HOME=/usr/lib/jvm/java-1.6.0-sun

export ANDROID_JAVA_HOME=$JAVA_HOME

export CROSS_COMPILE=$HOME/(툴체인 폴더명)/bin/arm-eabi-

export PATH=$PATH:$HOME/(툴체인 폴더명)/bin/

export ARCH=arm

툴체인 폴더명은 다들 아시죠?




4. 유용한 커널 관련 팁

config관련 명령

make menuconfig


컴파일 결과물 청소하기

make mrproper

make cleaner

make clean



참조 : http://itmir.tistory.com/51

http://itmir.tistory.com/220

http://itmir.tistory.com/349

http://itmir.tistory.com/439


저작자 표시 비영리 변경 금지
신고
댓글
  • 제프 Android Kernel 개발에 관심있어 처음 시작하는 대학교 학생입니다.

    글 써주신 대로 그대로 따라가 모든 설치를 완료하였고 삼성 오픈소스 홈페이지에서

    소스코드를 다운 받아 홈 폴더 위치에 압축을 풀었습니다.

    그 후에 바로 make 하면 커널 소스가 빌드가 되는지요?

    make 시에 몇가지 헤더 파일이 없다고 나와 질문 드립니다.ㅠㅠ
    2014.05.29 18:05 신고
  • Favicon of http://itmir.tistory.com Mir(whdghks913) 삼성 커널소스를 안본지 오래되서 자세히는 모르겠습니다만.. 커널소스에 README가 있을겁니다 그 txt를 읽어보시면 어떻게 빌드하는지 defconfig까지 알려줍니다

    물론 툴체인같은 모든 환경 구축을 하셔야 합니다
    2014.05.29 18:52 신고
  • 제프 감사합니다.^^ Readme 파일을 읽어보니 모든게 해결이 됬습니다.

    툴체인을 4.6을 써야 하는걸 4.3으로 설치하고 난리를 피웠었네요.ㅠㅠ

    성격상 도움말 이런거 하나도 안 읽어보고 부딛히는 성격이라 다시 한번 도움말을 읽어야 겠다는 교훈을 얻었습니다. ^^

    나중에 또 궁금한 사항 있으면 여쭤봐도 될까요 ?
    2014.05.30 13:11 신고
  • Favicon of http://itmir.tistory.com Mir(whdghks913) 넵~ㅎㅎ 블로그 방문해 주셔서 감사합니다~ 2014.05.30 13:21 신고
댓글쓰기 폼