下載編譯Android內核主要可參考:http://source.android.com/source/building-kernels.html
創建工作目錄後,在工作目錄下運行git命令下載指定版本內核:
$ mkdir yourworkdir
$ cd yourworkdir
$ git clone https://android.googlesource.com/kernel/goldfish.git
https連接有問題的話改用http連接試試,https是加密數據協議,在國內會被屏蔽,http是明文協議沒什麼問題。
$ git clone http://android.googlesource.com/kernel/goldfish.git
執行結果可能如下:
remote: Sending approximately 499.98 MiB ...
remote: Counting objects: 41057, done
remote: Finding sources: 100% (150/150)
remote: Getting sizes: 100% (72/72)
remote: Compressing objects: 100% (329412/329412)
remote: Total 2442792 (delta 2048923), reused 2442757 (delta 2048918)
Receiving objects: 100% (2442792/2442792), 499.75 MiB | 1.28 MiB/s, done.
Resolving deltas: 100% (2049089/2049089), done.
其他可以下載的版本列表如下:
設備名稱 | 二進制位置 | 源代碼位置 | 編譯配置文件 |
---|---|---|---|
flo | device/asus/flo-kernel/kernel | kernel/msm | flo_defconfig |
deb | device/asus/flo-kernel/kernel | kernel/msm | flo_defconfig |
manta | device/samsung/manta/kernel | kernel/exynos | manta_defconfig |
mako | device/lge/mako-kernel/kernel | kernel/msm | mako_defconfig |
grouper | device/asus/grouper/kernel | kernel/tegra | tegra3_android_defconfig |
tilapia | device/asus/grouper/kernel | kernel/tegra | tegra3_android_defconfig |
maguro | device/samsung/tuna/kernel | kernel/omap | tuna_defconfig |
toro | device/samsung/tuna/kernel | kernel/omap | tuna_defconfig |
panda | device/ti/panda/kernel | kernel/omap | panda_defconfig |
stingray | device/moto/wingray/kernel | kernel/tegra | stingray_defconfig |
wingray | device/moto/wingray/kernel | kernel/tegra | stingray_defconfig |
crespo | device/samsung/crespo/kernel | kernel/samsung | herring_defconfig |
crespo4g | device/samsung/crespo/kernel | kernel/samsung | herring_defconfig |
完成後當前目錄下會出現goldfish目錄,進入goldfish目錄,運行git branch -a命令,列出可抓取的分支版本,結果可能如下。
$
git branch -a
* (no branch)
master
remotes/origin/HEAD -> origin/master
remotes/origin/android-goldfish-2.6.29
remotes/origin/android-goldfish-3.4
remotes/origin/linux-goldfish-3.0-wip
remotes/origin/master
運行git checkout
git checkout -b android-goldfish-2.6.29 /origin/android-goldfish-2.6.29
標記分支可以選用git branch -a命令獲得列表中的任何一個。
編譯之前,配置與編譯有關的環境變量,如果安裝過android SDK,可以在SDK目錄下指定gcc預編譯命令路徑
$ export PATH=$(pwd)/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.6/bin:$PATH
如果沒有安裝過,可以通過git下載一個
$ git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6
設置 ARCH,SUBARCH,CROSS_COMPILE。
$ export ARCH=arm
$ export SUBARCH=arm
$ export CROSS_COMPILE=arm-eabi-
編譯配置
$ make menuconfig
編譯
$ make