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 e iniciar Cuttlefish con compatibilidad con tamaños de página de 16 KB en ARM64. En las instrucciones de esta página, se da por sentado que los paquetes de Cuttlefish están instalados en tu máquina. Para obtener instrucciones sobre cómo instalarlos, consulta el paso 1 de Cómo instalar Cuttlefish.

Para iniciar Cuttlefish, descarga los artefactos compilados previamente directamente desde el sitio de integración continua de Android o compílalos desde AOSP si necesitas modificar el código fuente.

Inicia la sepia mediante la descarga de los artefactos

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

Compila a partir del AOSP para iniciar sepia

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-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