Loading
2014. 2. 22. 08:05 - 알 수 없는 사용자

안드로이드 커널 빌드를 위한 환경 구축!



안녕하세요, 칼다리스입니다. 요새 커널 빌드에 재미를 붙이는 바람에 블로그를 소홀히 한 것 같네요. 오늘은 안드로이드 커널을 빌드하기 위해 필요한 개발환경을 구축하는 방법을 알아보도록 하겠습니다. 커널이 무엇인가 궁금하신 분들은 커스텀 커널 포스팅(링크)을 참조해 주세요.


필요 사항

컴퓨터 (데스크탑/노트북). PC의 사양은 크게 문제가 되지는 않지만 원활한 빌드를 위해선 듀얼코어 프로세서에 4GB 램을 탑재한 PC가 적당할 것 같습니다. 제 노트북은 1.9GHz 쿼드코어 i3 프로세서에 8GB 램을 탑재한 상태에서 10~15분 정도 소요됩니다.

리눅스/맥 운영체제. 윈도우즈에서 VMware를 통한 방법이나 듀얼부팅 등 여러가지 방법이 있으나 여기서 다루기엔 너무 복잡하니 검색을 통해 알아보시기 바랍니다. 개인적으로는 64bit 우분투 12.04 LTS를 사용하고 있지만 다른 디스트로를 사용하셔도 됩니다. 맥에서도 빌드가 가능하지만 맥이 없는 관계로 자세한건 알려드리지 못 하네요.


개발환경 구축


빌드에 필요한 패키지 설치

리눅스 운영체제의 cmd격인 터미널을 실행해 다음 명령어들을 차례대로 실행합니다. 처음 sudo를 이용하실 경우 유저 비밀번호를 입력해야 합니다.

  • sudo apt-get update
  • sudo apt-get install build-essential
  • sudo apt-get install libncurses5-dev
  • sudo apt-get install ia32-libs (64bit 버전에서만)


JDK 설치

위 과정을 마쳤다면 이젠 자바 JDK를 설치해야 합니다. 몇몇 리눅스 버전에선 일반 JDK가 아닌 Open JDK가 설치되어 나오는 경우가 있는데 커널 빌드와는 잘 맞지 않아 제거한 후 오라클의 정식 JDK를 설치해야 합니다. 설치 패키지는 오라클 JDK 사이트(링크)에서 받을 수 있습니다. 32bit는 Linux-x86, 64bit는 Linux-x64버전에서 tar.gz확장자로 된 파일을 받으시면 됩니다. 이젠 다시 터미널을 실행한 후 다음 명령어들을 실행합니다:

  • sudo apt-get purge openjdk-\* <<= Open JDK가 존재한다면 제거
  • sudo mkdir -p /usr/local/java <<= JDK를 설치할 폴더 생성
  • cd Downloads <<= 패키지가 다운로드된 경로로 이동
  • sudo cp -r jdk-7u45-linux-x64.tar.gz /usr/local/java/ <<= 7u45를 다운로드하신 버전으로 바꾸셔야 합니다.
  • cd /usr/local/java <<자바 설치 폴더로 이동
  • sudo chmod a+x jdk-7u45-linux-x64.tar.gz <<= 압축을 풀 수 있도록 권한 변경
  • sudo tar xvzf jdk-7u45-linux-x64.tar.gz <<=압축 풀기
  • sudo gedit /etc/profile <<=자바 PATH 설정


마지막 명령어를 실행하면 문서파일이 열립니다. 가장 아래쪽에 다음 문구를 삽입, 저장 후 닫습니다:

  • JAVA_HOME=/usr/local/java/jdk1.7.0_45
  • PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
  • export JAVA_HOME
  • export HOME


터미널로 돌아가 다음 명령어를 실행합니다:

  • sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jdk1.7.0_45/bin/java" 1
  • sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/java/jdk1.7.0_45/bin/javac" 1
  • sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/local/java/jdk1.7.0_45/bin/javaws" 1
  • sudo update-alternatives --set java /usr/local/java/jdk1.7.0_45/bin/java
  • sudo update-alternatives --set javac /usr/local/java/jdk1.7.0_45/bin/javac
  • sudo update-alternatives --set javaws /usr/local/java/jdk1.7.0_45/bin/javaws


이렇게 오라클의 JDK가 성공적으로 설치되었습니다. 자바 설치를 확인 하고 싶다면 터미널에 java -version이라 입력하면 됩니다.


커널 툴체인 설정

리눅스 커널을 빌드하기 위해선 툴체인이라는 도구가 필요하며 안드로이드 역시 안드로이드 툴체인이 따로 존재합니다. 커널마다 호환되는 툴체인 버전이 따로 있기에 자신의 기기에 맞는 툴체인을 받으셔야 합니다. 가장 최신 툴체인은 안드로이드 NDK 사이트(링크)에서 번들을 다운 받으시면 됩니다. 전 베가 R3과 베가 No 6를 빌드할 때 ARM-EABI-LINARO-4.6.2 툴체인을 사용합니다.



이렇게 안드로이드 커널을 빌드하기 위해 필요한 개발환경 구축이 완료됩니다. 다음 글에선 직접 커널을 빌드하는 방법과 오픈소스 라이센스에 따라 공개의 의무가 있는 커널 소스 공개에 가장 잘 쓰이는 깃헙(Github) 설치 및 사용 방법을 알아보겠습니다.