Utilizzare seppia con dimensione pagina di 16 kB su ARM64

Questa configurazione richiede un host Linux ARM64. Questa pagina mostra come creare e avviare seppia con il supporto di dimensioni pagina di 16 kB su ARM64. Le istruzioni in questa pagina presuppongono che nella macchina siano installati pacchetti Seppia. Per le istruzioni per l'installazione, vedi il passaggio 1 della procedura di installazione di Seppia.

Puoi avviare seppie scaricando gli artefatti predefiniti direttamente dal sito di integrazione continua di Android o creandoli da AOSP se devi modificare il codice sorgente.

Lancia le seppie scaricando gli artefatti

Vai al sito di integrazione continua di Android e inserisci aosp-main-throttled come nome della filiale. Fai clic sull'ultima build per il target aosp_cf_arm64_phone_pgagnostic. Ora segui le istruzioni del passaggio 5 della procedura di installazione di Seppia.

Lancia le seppie creando da AOSP

Crea e lancia Seppia con un target indipendente dalla pagina:

$ 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 le dimensioni della pagina e avvio

Per verificare le dimensioni della pagina e lo stato di avvio:

  1. Accedi alla shell come root:

    $ adb root
    adbd is already running as root
    $ adb shell
    vsoc_arm64_pgagnostic:/ #
    
  2. Verifica le dimensioni della pagina e lo stato di avvio:

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

Utilizzare Seppia con un kernel con dimensione pagina personalizzata di 16 kB

Per utilizzare un kernel personalizzato, invece di un kernel predefinito:

  1. Crea una directory repository per un kernel comune Android e sincronizza la directory:

    $ 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. Kernel dimensione pagina della build da 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 che la build sia stata eseguita correttamente:

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

Avvia seppia con il kernel personalizzato con dimensione pagina di 16 kB

Per utilizzare il kernel appena creato in 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