手动构建内核

本部分适用于不支持使用 Repo 进行构建的内核。具体来说,此表列出了要手动构建的内核源代码和二进制文件的名称及所在位置。

设备 二进制文件在 AOSP 树中的位置 源代码所在的位置 编译配置
easel N/A kernel/arm64 mnh_prod_defconfig
angler device/huawei/angler-kernel kernel/msm angler_defconfig
bullhead device/lge/bullhead-kernel kernel/msm bullhead_defconfig
shamu device/moto/shamu-kernel kernel/msm shamu_defconfig
fugu device/asus/fugu-kernel kernel/x86_64 fugu_defconfig
volantis device/htc/flounder-kernel kernel/tegra flounder_defconfig
hammerhead device/lge/hammerhead-kernel kernel/msm hammerhead_defconfig
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

下载源代码

使用相应的 git clone 命令下载要构建的内核的源代码。例如,以下命令可克隆用于 HiKey 参考开发板的 hikey 内核:

git clone https://android.googlesource.com/kernel/hikey-linaro

内核项目的完整列表位于 kernel 目录下。以下是一些常用的内核及其各自的 git clone 命令。

exynos 项目包含适用于 Nexus 10 的内核源代码,可用作在 Samsung Exynos 芯片组上开展相关工作的着手点。

git clone https://android.googlesource.com/kernel/exynos

goldfish 项目包含适用于模拟平台的内核源代码。

git clone https://android.googlesource.com/kernel/goldfish

hikey-linaro 项目用于 HiKey 参考开发板,可用作在 HiSilicon 620 芯片组上开展相关工作的着手点。

git clone https://android.googlesource.com/kernel/hikey-linaro

msm 项目包含适用于 ADP1、ADP2、Nexus One、Nexus 4、Nexus 5、Nexus 6、Nexus 5X、Nexus 6P、Nexus 7 (2013)、Pixel 和 Pixel XL 的源代码,可用作在 Qualcomm MSM 芯片组上开展相关工作的着手点。

git clone https://android.googlesource.com/kernel/msm

omap 项目用于 PandaBoard 和 Galaxy Nexus,可用作在 TI OMAP 芯片组上开展相关工作的着手点。

git clone https://android.googlesource.com/kernel/omap

samsung 项目用于 Nexus S,可用作在 Samsung Hummingbird 芯片组上开展相关工作的着手点。

git clone https://android.googlesource.com/kernel/samsung

tegra 项目适用于 Xoom、Nexus 7 (2012) 和 Nexus 9,可用作在 NVIDIA Tegra 芯片组上开展相关工作的着手点。

git clone https://android.googlesource.com/kernel/tegra

x86_64 项目包含 Nexus Player 的内核源代码,可用作在 Intel x86_64 芯片组上开展相关工作的着手点。

git clone https://android.googlesource.com/kernel/x86_64

构建内核

如果您不打算构建默认分支(例如 master),则需要在构建之前检出所需的提交内容。请参阅确定内核版本,了解如何确定预构建的内核二进制文件的内核版本。现在您可以开始构建内核了。以下构建命令使用 hikey 内核:

cd hikey-linaro
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-android-
make hikey_defconfig
make

如欲构建不同的内核,只需将 hikey-linaro 替换为您要构建的内核的名称,并将 hikey_defconfig 替换为相应 defconfig 文件的名称。

映像会输出到 arch/arm64/boot/ 目录;内核二进制文件会输出到 arch/arm64/boot/dts/hisilicon/hi6220-hikey.dtb 文件。如需了解如何将新构建的内核嵌入到 AOSP 映像中,请查看运行内核部分中的说明。