Utilisez Settlefish avec une taille de page de 16 Ko sous ARM64.

Cette configuration nécessite un hôte Linux ARM64. Cette page vous montre comment créer Démarrez Settlefish avec une taille de page de 16 Ko disponible sur ARM64. Les instructions sur cette page suppose que les packages Cuttlefish sont installés sur votre machine. Pour pour les installer, consultez l'étape 1 de la section Installer Cuttlefish.

Vous pouvez lancer Cuttlefish en téléchargeant le modèle prédéfini des artefacts directement à partir de l'API Site d'intégration ou créez-les à partir d'AOSP si vous devez les modifier le code source.

Lancez Settlefish en téléchargeant les artefacts

Accédez au site Android Continuous Integration (Intégration continue Android) et saisissez aosp-main-throttled comme nom de branche. Cliquez sur le dernier build pour Cible : aosp_cf_arm64_phone_pgagnostic. Suivez ensuite les instructions de l'étape 5 sur Install Cuttlefish (Installer Cuttlefish).

Lancer Cuttlefish à partir d'AOSP

Créez et lancez Cuttlefish avec une cible indépendante de la page:

$ 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

Vérifier la taille de la page et le démarrage

Pour vérifier la taille de la page et l'état de démarrage:

  1. Accédez au shell en tant que racine:

    $ adb root
    adbd is already running as root
    $ adb shell
    vsoc_arm64_pgagnostic:/ #
    
  2. Vérifiez la taille de la page et l'état de démarrage:

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

Utiliser Settlefish avec un noyau de page de 16 Ko personnalisé

Pour utiliser un noyau personnalisé au lieu d'un noyau prédéfini:

  1. Créez un répertoire de dépôt pour un noyau Android courant et synchronisez-le:

    $ 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. Créez un kernel avec une taille de page de 16 Ko:

    $ 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. Vérifiez que la compilation a bien été exécutée:

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

Démarrer Cuttlefish avec le noyau de page de 16 Ko personnalisé

Pour utiliser votre noyau nouvellement créé dans Cuttlefish:

$ 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