Cómo usar las placas de referencia

Puedes crear compilaciones para dispositivos Nexus y Pixel mediante las compilaciones del Proyecto de código abierto de Android (AOSP) y los objetos binarios específicos de hardware relevantes. Si deseas ver las compilaciones de Android disponibles y los dispositivos de destino, consulta Etiquetas y compilaciones de código fuente.

También puedes crear compilaciones para las placas de referencia de Android DragonBoard 845c, HiKey 960, Khadas VIM3 y Qualcomm Robotics Board RB5, que están diseñadas para ayudar a que los proveedores de componentes que no sean de dispositivos móviles puedan desarrollar y migrar controladores a las versiones de Android. Las placas de referencia simplifican los esfuerzos de actualización, reducen el tiempo de salida al mercado de los dispositivos Android nuevos, reducen los costos del dispositivo (ya que permiten que los ODM y OEM elijan entre una mayor variedad de componentes compatibles), y aumentan la velocidad de innovación de los proveedores de componentes.

Google es compatible con las placas de referencia de Android DragonBoard 845c, HiKey 960, Khadas VIM3 y Qualcomm Robotics Board RB5. AOSP ofrece compatibilidad con la fuente y la placa del kernel para que los desarrolladores puedan crear y depurar fácilmente controladores periféricos, desarrollar código para el kernel y completar otras tareas con menos restricciones de OEM.

DragonBoard 845c

DragonBoard 845c forma parte de la plataforma RB3 y está disponible en 96boards.org.

Imagen de Dragonboard

Figura 1: DragonBoard 845c

Cómo compilar el espacio del usuario

Usa los siguientes comandos para descargar y compilar Android en la placa DragonBoard 845c.

  1. Descarga el árbol de fuentes de Android:

    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
  2. Descarga el paquete del proveedor actual:

    ./device/linaro/dragonboard/fetch-vendor-package.sh
  3. Compila el AOSP:

    . ./build/envsetup.sh
    lunch db845c-userdebug
    make -j24

Cómo instalar imágenes locales

  1. Inicia db845c en Modo fastboot [Fastboot mode].

  2. Ejecuta el siguiente comando:

    ./device/linaro/dragonboard/installer/db845c/flash-all-aosp.sh

Si es necesario, puedes ejecutar la siguiente secuencia de comandos después de iniciar db845c en el modo de escritura en la memoria flash por USB para realizar la recuperación de la placa QDL (consulta Recuperación de DragonBoard):

./device/linaro/dragonboard/installer/db845c/recovery.sh

Cómo compilar el kernel

Para compilar los artefactos del kernel de la imagen genérica del kernel (GKI) de Android correspondiente a DragonBoard db845c, haz lo siguiente:

  1. Ejecuta los siguientes comandos para clonar la fuente del kernel, y las secuencias de comandos de compilación y cadenas de herramientas de Android compiladas previamente.

    mkdir repo-common
    cd repo-common
    repo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainline
    repo sync -j8 -c
    rm -rf out
    BUILD_CONFIG=common/build.config.db845c ./build/build.sh
  2. Borra todos los objetos de ${AOSP_TOPDIR}device/linaro/dragonboard-kernel/android-mainline/, copia los artefactos de compilación de out/android-mainline/dist/ en ${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/ y vuelve a compilar el espacio del usuario con lo siguiente:

    make TARGET_KERNEL_USE=mainline -j24

    A continuación, escribe las nuevas imágenes boot.img y super.img en la memoria flash del dispositivo (consulta Cómo compilar el espacio de usuario).

  3. Prueba el kernel de GKI:

    1. Consulta la compilación más reciente de kernel_aarch64.

    2. En artefactos, descarga la imagen.

    3. Usa gzip para comprimir la imagen

      gzip Image
    4. Cópiala en ${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/.

    5. Vuelve a compilar el AOSP y escribe la nueva imagen boot.img en la memoria flash del dispositivo (consulta Cómo compilar el espacio de usuario).

Placas HiKey 960

La placa HiKey 960 está disponible en Amazon y Lenovator.

Imagen de la placa HiKey 960

Figura 2: Placa HiKey 960 de Lenovator

Cómo compilar el espacio del usuario

Usa los siguientes comandos para descargar y compilar Android en la placa HiKey 960.

  1. Descarga el árbol de fuentes de Android

    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
  2. Descarga el paquete del proveedor actual

    ./device/linaro/hikey/fetch-vendor-package.sh
  3. Compilación

    . ./build/envsetup.sh
    lunch hikey960-userdebug
    make -j24

Cómo instalar imágenes locales

  1. Para seleccionar el modo fastboot, enciende el interruptor 3 (si deseas obtener más información, consulta la Guía de introducción a HiKey 960).

  2. Enciende la placa.

  3. Escribe en la memoria flash imágenes locales:

    ./device/linaro/hikey/installer/hikey960/flash-all.sh
  4. Apaga el interruptor 3 y reinicia la placa.

Cómo compilar el kernel

Para compilar los artefactos del kernel de GKI de Android de HiKey960, haz lo siguiente:

  1. Ejecuta los siguientes comandos:

    mkdir repo-common
    cd repo-common
    repo init -u https://android.googlesource.com/kernel/manifest -b common-android12-5.4
    repo sync -j8 -c
    rm -rf out
    BUILD_CONFIG=common/build.config.hikey960 build/build.sh
  2. Borra todos los objetos de ${AOSP_TOPDIR}device/linaro/hikey-kernel/hikey960/5.4/ y, luego, copia los artefactos de compilación de la compilación del kernel de out/android12-5.4/dist/ en ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/.

  3. Concatena la DTB:

    cat device/linaro/hikey-kernel/hikey960/5.4/Image.gz
    device/linaro/hikey-kernel/hikey960/5.4/hi3660-hikey960.dtb  >
    device/linaro/hikey-kernel/hikey960/5.4/Image.gz-dtb
  4. Compila un espacio de usuario para Android

    lunch hikey960-userdebug
    make TARGET_KERNEL_USE=5.4 HIKEY_USES_GKI=true -j24

    A continuación, escribe el nuevo kernel en la memoria flash del dispositivo (consulta Cómo compilar el espacio del usuario).

  5. Prueba el kernel de la imagen genérica del kernel (GKI)

    gzip ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image
    cat ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image.gz
    ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/hi3660-hikey960.dtb  >
    ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image.gz-dtb

Cómo configurar el número de serie

Para configurar el número de serie aleatorio, ejecuta lo siguiente:

  fastboot getvar nve:SN@16\_DIGIT\_NUMBER

Bootloader exporta el número de serie generado al kernel mediante androidboot.serialno=. Este parámetro se pasa por la línea de comandos del kernel en Android 11 y versiones anteriores, y por medio de bootconfig en Android 12 con la versión de kernel 5.10 o posterior.

Cómo establecer la resolución del monitor

Edita el parámetro BOARD_KERNEL_CMDLINE de device/linaro/hikey/hikey960/BoardConfig.mk y establece la configuración de video. Por ejemplo, la configuración para un monitor de 24 pulgadas es video=HDMI-A-1:1280x800@60.

Placas VIM3 y VIM3L

Las placas Vim3 y VIM3L de Khadas están disponibles en el sitio web de Khadas.

Imagen de la placa VIM3

Figura 3: Placa de VIM3 de Khadas

Compilación del espacio de usuario

Usa los siguientes comandos para descargar y compilar Android en la placa VIM3.

  1. Descarga el árbol de fuentes de Android:

    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
  2. Compilación:

    . ./build/envsetup.sh
    lunch yukawa-userdebug
    make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3=true -j24

    De forma predeterminada, Android se compila con el kernel 5.10. Para usar compilaciones previas del kernel 5.4, haz lo siguiente:

    make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3=true TARGET_KERNEL_USE=5.4 -j24

    Para VIM3L, usa lo siguiente:

    make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3L=true -j24

Cómo instalar imágenes iniciales

  1. Coloca la placa en el modo de actualización de USB según las instrucciones de escritura en la memoria flash de VIM3.

  2. Escribe las imágenes iniciales de la memoria flash a la RAM:

    cd path/to/aosp/device/amlogic/yukawa/bootloader/
    ./tools/update write u-boot_kvim3_noab.bin 0xfffa0000 0x10000
    ./tools/update run 0xfffa0000
    ./tools/update bl2_boot u-boot_kvim3_noab.bin
  3. Después de que se inicia U-Boot y se ejecuta fastboot, ejecuta los siguientes comandos:

    fastboot oem format
    fastboot flash bootloader u-boot_kvim3_noab.bin
    fastboot erase bootenv
    fastboot reboot bootloader
  4. Desconecta y conecta el cable de alimentación.

La placa debería iniciarse en el U-boot que se acaba de instalar y, luego, ingresa el Modo fastboot [Fastboot mode].

Cómo instalar imágenes

  1. Ingresa el Modo fastboot [Fastboot mode] (consulta la sección anterior para obtener instrucciones).

  2. Escribe todas las imágenes de Android en la memoria flash:

    cd out/target/product/yukawa
    fastboot flash boot boot.img
    fastboot flash super super.img
    fastboot flash cache cache.img
    fastboot flash userdata userdata.img
    fastboot flash recovery recovery.img
    fastboot flash dtbo dtbo-unsigned.img
    fastboot reboot

Cómo compilar el kernel

Para compilar los artefactos del kernel para VIM3 o VIM3L, haz lo siguiente:

  1. Descarga cadenas de herramientas adicionales:

    git clone https://android.googlesource.com/platform/prebuilts/gas/linux-x86 ${AOSP_TOPDIR}/prebuilts/gas/linux-x86
  2. Clona la fuente del kernel:

    # for 4.19
    git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-4.19
    # for 5.4
    git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.4
    # for 5.10
    git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.10
    # for 5.15
    git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.15
  3. Exporta las variantes de compilación:

    export PATH=${AOSP_TOPDIR}/prebuilts/clang/host/linux-x86/clang-r445002/bin:$PATH
    export PATH=${AOSP_TOPDIR}/prebuilts/gas/linux-x86:$PATH
    export PATH=${AOSP_TOPDIR}/prebuilts/misc/linux-x86/lz4:$PATH
    export ARCH=arm64
    export CROSS_COMPILE=aarch64-linux-gnu-
    export LLVM=1
  4. Compila el kernel:

    cd hikey-linaro
    make meson_defconfig
    make DTC_FLAGS="-@" -j24
  5. Comprime el kernel y copia build_artifacts en ${AOSP_TOPDIR}/device/amlogic/yukawa-kernel:

    lz4c -f arch/arm64/boot/Image arch/arm64/boot/Image.lz4
    KERN_VER=4.19 # for 4.19 kernel
    KERN_VER=5.4  # for 5.4 kernel
    KERN_VER=5.10 # for 5.10 kernel
    KERN_VER=5.15 # for 5.15 kernel
    for f in arch/arm64/boot/dts/amlogic/*{g12b-a311d,sm1}-khadas-vim3*.dtb; do
        cp -v -p $f ${AOSP_TOPDIR}/device/amlogic/yukawa-kernel/${KERN_VER}/$(basename $f)
    done
    cp -v -p arch/arm64/boot/Image.lz4 ${AOSP_TOPDIR}/device/amlogic/yukawa-kernel/${KERN_VER}/Image.lz4
  6. Vuelve a compilar el espacio de usuario de Android (consulta Cómo compilar el espacio de usuario) y escribe en la memoria flash del nuevo kernel (consulta Cómo escribir imágenes en la memoria flash).

Qualcomm Robotics Board RB5

La plataforma Robotics Board RB5 está disponible en 96boards.org.

rb5_board

Figura 4: Robotics Board RB5

Cómo compilar el espacio del usuario

Usa los siguientes comandos para descargar y compilar Android en RB5.

  1. Descarga el árbol de fuentes de Android:

    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
  2. Descarga el paquete del proveedor actual:

    ./device/linaro/dragonboard/fetch-vendor-package.sh
  3. Compila el AOSP:

    . ./build/envsetup.sh
    lunch rb5-userdebug
    make -j24

Cómo instalar imágenes locales

  1. Inicia RB5 en el Modo fastboot [Fastboot mode].

  2. Ejecuta el siguiente comando:

    ./device/linaro/dragonboard/installer/rb5/flash-all-aosp.sh

Si es necesario, puedes ejecutar la siguiente secuencia de comandos después de iniciar RB5 en el modo de escritura en la memoria flash por USB para realizar la recuperación de la placa QDL (consulta Recuperación de RB5):

   ./device/linaro/dragonboard/installer/rb5/recovery.sh

Cómo compilar el kernel

Para compilar los artefactos del kernel de la imagen genérica del kernel (GKI) de Android de RB5, haz lo siguiente:

  1. Ejecuta los siguientes comandos para clonar la fuente del kernel, y las secuencias de comandos de compilación y cadenas de herramientas de Android compiladas previamente.

    mkdir repo-common
    cd repo-common
    repo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainline
    repo sync -j8 -c
    rm -rf out
    BUILD_CONFIG=common/build.config.db845c ./build/build.sh
  2. Borra todos los objetos de ${AOSP_TOPDIR}device/linaro/dragonboard-kernel/android-mainline/, copia los artefactos de compilación de out/android-mainline/dist/ en ${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/ y vuelve a compilar el espacio de usuario con lo siguiente:

    make TARGET_KERNEL_USE=mainline -j24

    A continuación, escribe las nuevas imágenes boot.img y super.img en la memoria flash del dispositivo (consulta Cómo compilar el espacio de usuario).

  3. Prueba el kernel de GKI:

    1. Consulta la compilación más reciente de kernel_aarch64.
    2. En artefactos, descarga la imagen.
    3. Usa gzip para comprimir la imagen

      gzip Image
    4. Cópiala en ${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/.

    5. Vuelve a compilar el AOSP y escribe la nueva imagen boot.img en la memoria flash del dispositivo (consulta Cómo compilar el espacio de usuario).