Utilisez Cuttlefish avec une taille de page de 16 Ko sur ARM64

Cette page montre comment créer et démarrer Cuttlefish avec la prise en charge d'une taille de page de 16 Ko sur ARM64 . Les instructions sur cette page supposent que Cuttlefish est installé sur votre ordinateur. Pour obtenir des instructions pour l’installer, voir Installer Cuttlefish .

Synchronisez et créez une cible indépendante de la page

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-userdebug
$ m

# Launch cf with a kernel with 16KB 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 démarrer

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

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

    $ 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
    

Utilisez Cuttlefish avec un noyau de taille de page personnalisé de 16 Ko

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 commun Android et synchronisez le répertoire :

    $ 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. Construisez un noyau d'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 build s'est exécutée avec succès :

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

Démarrez Cuttlefish avec le noyau personnalisé de 16 Ko de taille de page

Pour utiliser votre noyau nouvellement construit 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