Cómo compilar kernels de forma manual

Esta sección se aplica a los kernels que no están habilitados para la compilación con Repo. En concreto, esta tabla detalla el nombre y las ubicaciones de los códigos fuente y los objetos binarios del kernel para realizar la compilación de forma manual.

Dispositivo Ubicación del binario en el árbol del AOSP Ubicación del código fuente Configuración de compilación
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

Cómo descargar códigos fuente

Descarga el código fuente del kernel que deseas compilar usando el comando git clone adecuado. Por ejemplo, el siguiente comando clona el kernel hikey, que se usa para las placas de referencia de HiKey:

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

Puedes encontrar una lista completa de proyectos de kernel en el directorio kernel. A continuación, se muestran algunos de los kernels que se usan con más frecuencia y sus respectivos comandos git clone.

El proyecto exynos tiene los códigos fuente del kernel para Nexus 10, y se puede usar como punto de partida para trabajar con los chipsets de Samsung Exynos.

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

El proyecto goldfish contiene los códigos fuente del kernel para las plataformas emuladas.

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

El proyecto hikey-linaro se utiliza para las placas de referencia de HiKey, y se puede usar como punto de partida para trabajar con los chipsets de HiSilicon 620.

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

El proyecto msm tiene los códigos fuente de ADP1, ADP2, Nexus One, Nexus 4, Nexus 5, Nexus 6, Nexus 5X, Nexus 6P, Nexus 7 (2013), Pixel y Pixel XL, y se puede utilizar como punto de partida para trabajar con los chipsets de Qualcomm MSM.

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

El proyecto omap se utiliza para PandaBoard y Galaxy Nexus, y se puede usar como punto de partida para trabajar con los chipsets de TI OMAP.

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

El proyecto samsung se utiliza para Nexus S y se puede usar como punto de partida para trabajar con los chipsets de Samsung Hummingbird.

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

El proyecto tegra es para Xoom, Nexus 7 (2012) y Nexus 9, y se puede usar como punto de partida para trabajar con los chipsets de NVIDIA Tegra.

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

El proyecto x86_64 tiene los códigos fuente del kernel para Nexus Player, y se puede usar como punto de partida para trabajar con los chipsets de Intel x86_64.

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

Cómo compilar el kernel

Si no planeas compilar la rama predeterminada (por ejemplo, master), debes verificar la confirmación deseada antes de compilarla. Consulta Cómo identificar versiones de kernel para saber cómo identificar la versión de kernel de un binario de kernel precompilado. Ya está todo listo para compilar el kernel. Los siguientes comandos de compilación usan el kernel hikey:

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

Para compilar un kernel diferente, reemplaza hikey-linaro con el nombre del kernel que deseas compilar y hikey_defconfig con el nombre del archivo defconfig correspondiente.

La imagen se envía al directorio arch/arm64/boot/; el objeto binario del kernel se envía al archivo arch/arm64/boot/dts/hisilicon/hi6220-hikey.dtb. Sigue las instrucciones de la sección Cómo ejecutar el kernel para obtener información sobre cómo incorporar el kernel recién compilado a la imagen del AOSP.