ARM64'te 16 KB sayfa boyutunda Mürekkep Balığı kullanın

Bu sayfa, ARM64 16 KB sayfa boyutu desteğiyle Mürekkep Balığı'nın nasıl oluşturulacağını ve başlatılacağını gösterir. Bu sayfadaki talimatlarda Cuttlefish'in makinenizde kurulu olduğu varsayılmaktadır. Kurulum talimatları için bkz . Mürekkepbalığı Kurulumu .

Sayfadan bağımsız hedefi senkronize edin ve oluşturun

Sayfadan bağımsız bir hedefle Mürekkepbalığı oluşturun ve başlatın:

$ 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

Sayfa boyutunu ve önyüklemeyi doğrulayın

Sayfa boyutunu ve önyükleme durumunu doğrulamak için:

  1. Kabuğa kök olarak erişin:

    $ adb root
    adbd is already running as root
    $ adb shell
    vsoc_arm64_pgagnostic:/ #
    
  2. Sayfa boyutunu ve önyükleme durumunu doğrulayın:

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

Mürekkepbalığı'nı özel 16 KB sayfa boyutunda çekirdekle kullanın

Önceden oluşturulmuş bir çekirdek yerine özel bir çekirdek kullanmak için:

  1. Android ortak çekirdeği için bir repo dizini oluşturun ve dizini senkronize edin:

    $ 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. 16KB sayfa boyutunda çekirdek oluşturun:

    $ 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. Derlemenin başarıyla yürütüldüğünü doğrulayın:

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

Cuttlefish'i özel 16 KB sayfa boyutundaki çekirdekle başlatın

Yeni oluşturulmuş çekirdeğinizi Mürekkepbalığı'nda kullanmak için:

$ 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