本部分适用于不支持使用 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 映像中,请查看运行内核部分中的说明。