Usa Cuttlefish con tamaño de página de 16 KB en ARM64

Esta configuración requiere un host Linux de ARM64. En esta página, se muestra cómo compilar y Inicia Cuttlefish con compatibilidad con tamaños de página de 16 KB en ARM64. Las instrucciones para en esta página se da por sentado que los paquetes de Cuttlefish están instalados en tu máquina. Para consulta el paso 1 de Cómo instalar Cuttlefish.

Para iniciar Cuttlefish, puedes descargar la compilación artefactos directamente desde Android Continuous Sitio de integración o créalos a partir del AOSP si necesitas modificarlos el código fuente.

Cómo iniciar Cuttlefish descargando los artefactos

Ve al sitio de integración continua de Android y ingresa aosp-main-throttled como nombre de la rama. Haz clic en la compilación más reciente aosp_cf_arm64_phone_pgagnostic objetivo. Ahora, sigue las instrucciones del paso 5 de Cómo instalar Cuttlefish.

Cómo iniciar Cuttlefish compilando desde AOSP

Compila y, luego, inicia Cuttlefish con un objetivo independiente de la página:

$ mkdir main && cd main
$ repo init -u https://android.googlesource.com/platform/manifest -b main
$ repo sync -c -j32

# Build cf agnostic target.
$ source build/envsetup.sh
$ lunch aosp_cf_arm64_phone_pgagnostic-trunk_staging-userdebug
$ m

# Launch cf with a kernel with 16 KB page size support.
$ launch_cvd
...
...
VIRTUAL_DEVICE_DISPLAY_POWER_MODE_CHANGED
virtio_input_hid_handle_status: unknown type 20
virtio_input_hid_handle_status: unknown type 20
virtio_input_hid_handle_status: unknown type 20
virtio_input_hid_handle_status: unknown type 20
Generating new secret with slot ID: 4
VIRTUAL_DEVICE_BOOT_STARTED
VIRTUAL_DEVICE_NETWORK_MOBILE_CONNECTED

Verifica el tamaño y el inicio de la página

Para verificar el tamaño de la página y el estado de inicio, haz lo siguiente:

  1. Accede a la shell como raíz:

    $ adb root
    adbd is already running as root
    $ adb shell
    vsoc_arm64_pgagnostic:/ #
    
  2. Verifica el tamaño de la página y el estado de inicio:

    vsoc_arm64_pgagnostic:/ # getconf PAGE_SIZE
    16384
    vsoc_arm64_pgagnostic:/ # getprop | grep sys.boot.completed
    sys.boot_completed: 1
    

Cómo usar Cuttlefish con kernel de tamaño de página personalizado de 16 KB

Para usar un kernel personalizado, en lugar de uno compilado previamente, haz lo siguiente:

  1. Crea un directorio de repositorio para un kernel común de Android y sincroniza el directorio:

    $ mkdir common-android14-6.1 && cd common-android14-6.1
    $ repo init -u https://android.googlesource.com/kernel/manifest -b common-android14-6.1
    $ repo sync -c -j$(nproc)
    
  2. Compila el kernel de tamaño de página de 16 KB:

    $ tools/bazel run --lto=none //common:kernel_aarch64_16k_dist
    $ tools/bazel run --lto=none //common-modules/virtual-device:virtual_device_aarch64_16k_dist -- \
        --dist_dir=out/android14-6.1/dist
    
  3. Verifica que la compilación se haya ejecutado de forma correcta:

    # Generated files
    $ ls out/android14-6.1/dist/Image
    $ ls out/android14-6.1/dist/initramfs.img
    

Inicia Cuttlefish con el kernel de tamaño de página personalizado de 16 KB

Para usar el kernel recién compilado en Cuttlefish, haz lo siguiente:

$ launch_cvd -kernel_path ~/common-android14-6.1/out/android14-6.1/dist/Image \
      -initramfs_path ~/common-android14-6.1/out/android14-6.1/dist/initramfs.img \
      --resume=false --userdata_format=ext4 \
      --data_policy=always_create --blank_data_image_mb=8000
      -userdata_format=ext4