Ubuntu에서 Android Kernel 빌드하기(1/2)
1. 전 포스팅(넥서스원 CyanogenMod7 설치) 에서 CyanogenMod 롬을 설치해준다.
2. 개발에 필요한 도구들 다운!
32bit and 64bit systems:
git-core gnupg sun-java6-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
64bit only:
ia32-libs lib32z1-dev lib32ncurses5-dev gcc-multilib g++-multilib
들을 다운받는다. 물론 다운은 sudo apt-get install 패키지명!
3. Repository 셋업을 한다.
$mkdir -p ~/bin
$curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$chmod a+x ~/bin/repo
$echo $PATH|grep ~/bin>/dev/null||export PATH="${PATH}":~/bin
4. ROM 소스코드를 다운받는다.
$mkdir -p ~/android/system
$cd ~/android/system
For CyanogenMod 7 (Gingerbread):
$repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
For CyanogenMod 9 (Ice Cream Sandwich):
$repo init -u git://github.com/CyanogenMod/android.git -b ics
For CyanogenMod 10 (Jelly Bean):
$repo init -u git://github.com/CyanogenMod/android.git -b jellybean
$repo sync -j16 (엄청 오래걸린다.. 해놓고 밥먹고 오자 그래도 안끝남ㅋㅋㅋ)
안드로이드 툴체인 환경변수 설정도 아래와 같이 해준다.
$export CCOMPILER=${HOME}/android/system/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
5. 안드로이드 커널 소스 다운!
$mkdir -p ~/android/kernel
$cd ~/android/kernel
$git clone git://github.com/CyanogenMod/cm-kernel.git (얘도 좀 많이 걸림..)
$cd cm-kernel
6. Configure the Build
폰을 PC와 연결하고, 안드로이드 SDK 도 설치하여 ADB 명령이 가능하다고 가정.
설치가 안되어 있다면 관련 포스팅은 여기
$adb pull /proc/config.gz ~/android/kernel/cm-kernel/config.gz
$cat config.gz | gunzip > .config
그다음에 configure 해주자
$make ARCH=arm CROSS_COMPILE=$CCOMPILER oldconfig
머 yes/no 선택하라고 하는데 걍 아무거나 대충해줘도 됨
만약 수정된걸 하고싶다면 수정후 알아서 요걸로.
$make ARCH=arm CROSS_COMPILE=$CCOMPILER menuconfig
7. 빌드하자
$make ARCH=arm CROSS_COMPILE=$CCOMPILER -j`grep 'processor' /proc/cpuinfo | wc -l`
빌드하는데 시간 좀 걸린다.. 빌드가 끝났다면
~/android/kernel/cm-kernel/arch/arm/boot 안에 zImage가 있어야 한다.
으아 여기까지 왔다.. 나머지는 다음 포스팅에서... ~
Ubuntu에서 Android Kernel 빌드하기(2/2)
댓글남기기