一、使用git下載android核心部分源碼
首先建立要儲存android核心源碼的目錄
mkdir
android_kernel
cd
android_kernel
android
kernel的網站http://android.git.kernel.org/
git
clone git://android.git.kernel.org/kernel/common.git
下載android核心源碼,完成之後會看到common目錄,核心的源碼就算下載完成了
如果想下載某一核心的版本,可以使用下面幾個命令:
git
branch -a// 顯示所有的分支
git
branch -r // 顯示romote端的分支
git
checkout // 檢出某一分支
二、設定交叉編譯環境
交叉編譯的環境在android源碼已經存在,源碼的下載可以參考《下載編譯android源碼》。在源碼目錄的android_source/prebuilt/linux-x86/toolchain/,可以看到多個交叉編譯的工具
mac@mac-desktop:~/works/android_dev/prebuilt/linux-x86/toolchain$ ls -all
總用量 44
drwxr-xr-x 9 mac mac 4096 2011-08-28 15:16 arm-eabi-4.2.1
drwxr-xr-x 9 mac mac 4096 2011-08-28 15:16 arm-eabi-4.3.1
drwxr-xr-x 10 mac mac 4096 2011-08-28 15:16 arm-eabi-4.4.0
drwxr-xr-x 10 mac mac 4096 2011-08-28 15:16 arm-eabi-4.4.3
drwxr-xr-x 10 mac mac 4096 2011-08-28 15:16 arm-linux-androideabi-4.4.x
drwxr-xr-x 6 mac mac 4096 2011-08-28 15:16 i686-android-linux-4.4.3
drwxr-xr-x 8 mac mac 4096 2011-08-28 15:17 i686-linux-glibc2.7-4.4.3
drwxr-xr-x 10 mac mac 4096 2011-08-28 15:17 i686-unknown-linux-gnu-4.2.1
drwxr-xr-x 6 mac mac 4096 2011-08-28 15:17 sh-4.3.3
|
一般使用最新版本。
三、配置編譯時間的config檔案
因為編譯的鏡像是要刷到模擬器啟動並執行,模擬器的處理器架構是基於goldfish,所以需要下載有關goldfish的config檔案。下載方法:
mac@mac-desktop:~/works/kernel-2.6.29$ git branch -a
* (no branch)
android-2.6.29
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/android-2.6.37
remotes/origin/android-2.6.38
remotes/origin/android-2.6.39
remotes/origin/android-3.0
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
remotes/origin/linux-bcm43xx-2.6.39
remotes/origin/linux-wl12xx-2.6.39
|
下載remotes/origin/archive/android-gldfish-2.6.29
版本:
git
checkout origin/archive/android-gldfish-2.6.29
然後就可以到arch/arm/configs下看到goldfish_defconfig這個檔案了。
把goldfish_defconfig檔案拷貝到android_kernel目錄,並重新命名為.config
四、make編譯
首先設定環境:
export
PATH=$PATH:~/android_source/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin
然後修改Makefile:
ARCH =
arm #體繫結構為arm
CROSS_COMPILE
= arm-eabi- #交叉編譯工具鏈首碼,參考/toolchain/arm-eabi-4.4.3/bin
然後就可以make編譯了,編譯過程中會連續提示yes/not,能看懂的多注意幾眼,看不懂的一路狂按Enter,最後如果前面的設定正確,編譯完整後會看到下面的提示:
OBJCOPY
arch/arm/boot/zImage
Kernel:
arch/arm/boot/zImage is ready
五、編譯得到zImage,用新核心啟動模擬器
./emulator
-avd android2.1 -kernel ~/kernel-2.6.29/arch/arm/boot/zImage
在模擬器上查看系統資訊: