AOSP 직접 빌드하여 넥서스4에 설정하기 #1 - 커널 빌드

|


안드로이드의 레퍼런스폰인 넥서스는 오픈소스인 안드로이드 소스를 받아,

직접 빌드하여 실 기기에 집어넣을 수 있다.


이 포스팅은 넥서스4 (코드명 mako)를 기준으로 작성되었으며, 이 방법을 따라하다 기기가 벽돌이 된다 한들 본인은 책임져 줄 수 없다.

FOLLOW ON YOUR  OWN RISK.


쩜쩜...



원문은 

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

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

에서 볼 수 있다.


당연히 안드로이드 프레임워크 빌드 환경이 갖춰져 있어야 하고, 관련 포스트는 


2014/03/15 - [Knowledge/Android] - 안드로이드 프레임워크 빌드환경 구축 (14/03/13 확인)

를 확인.



절차는 되도록 간단히 설명한다. 궁금한건 질문 주시길.




먼저 커널을 빌드한다. 커널은 프레임워크 소스 내 미리 빌드되어 포함되어 있고,

드라이버 추가 등의 작업이 없다면 그대로 써도 무방하나... 하는 김에 커널부터.





커널 최신 버전을 확인하기 위해 git에서 커널 바이너리를 다운받는다.





넥서스 시리즈별 커널 위치는 원문을 참고.

내 경우엔 넥서스4이라서 mako-kernel 을 다운받아 바이너리 버전을 확인한다.


커널 버전 확인하는 명령여 역시 원문에서 확인할 수 있다.


여기서, 버전은,

위 캡춰에 표시한 ga6edd5e 인데, 여기서 맨 앞 g는 빼준다.

즉 현재 커널의 버전은 a6edd5e가 되는것.




버전을 확인하였으면 이제 소스를 다운받을 차례.





모델별로 다른 저장소가 사용되며, 넥서스4(mako)의 경우엔 msm 저장소로부터 다운받는다.

git 저장소로부터 바로 checkout은 불가능하기때문에 로컬로 저장소 원본을 다운받고, 해당 버전의 소스를 체크아웃 받는다.







크로스컴파일에 필요한 툴체인을 다운받고 PATH설정을 해준다.



이미 설치되어있으면 통과.

들은 얘기로는 해당 소스에 맞는 툴체인의 버전이 따로 있다고 한다. 이 경우엔 4.6

최신버전이 좋다고 다른 버전으로 빌드 돌리면 에러가 발생할 수 있으니 유의.





빌드에 필요한 환경값을 설정하고, 커널 config 파일을 생성한다.



mako의 기본 설정은 mako_defconfig

이 make가 끝나면 .config 파일이 생성되고, 이 파일에는 커널에 어떤 모듈이 포함될것인지 설정하는 내용이 담겨 있다.





make 명령으로 빌드 시작. 빌드시스템이 구려서 -j4로만 실행.




빌드가 완료되면 arch/arm/boot/zImage 파일이 생성된다.

커널 빌드 완료.


프레임워크 빌드로 계속....


And