ARM64'te 16 KB sayfa boyutuyla Cuttlefish'i kullanma

Bu kurulum için ARM64 Linux ana makinesi gerekir. Bu sayfada, ARM64 üzerinde 16 KB sayfa boyutu desteğiyle Cuttlefish'i nasıl oluşturup başlatacağınız açıklanmaktadır. Bu sayfadaki talimatlarda, Cuttlefish paketlerinin makinenize yüklendiği varsayılır. Bunları yükleme talimatları için Cuttlefish'i yükleme başlıklı makalenin 1. adımına bakın.

Cuttlefish'i, önceden oluşturulmuş yapıları doğrudan Android Continuous Integration sitesinden indirerek veya kaynak kodu değiştirmeniz gerekiyorsa AOSP'den oluşturarak başlatabilirsiniz.

Yapıları indirerek Cuttlefish'i başlatma

Android Sürekli Entegrasyon sitesine gidin ve dal adı olarak aosp-main-throttled girin. aosp_cf_arm64_phone_pgagnostic hedefi için en son derlemeyi tıklayın. Şimdi Cuttlefish'i yükleme başlıklı makalenin 5. adımındaki talimatları uygulayın.

AOSP'den derleme yaparak Cuttlefish'i başlatma

Sayfadan bağımsız bir hedefle Cuttlefish'i oluşturup başlatın:

$ mkdir android-latest-branch && cd android-latest-branch
$ repo init -u https://android.googlesource.com/platform/manifest -b android-latest-release
$ 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

Sayfa boyutunu ve başlatmayı doğrulama

Sayfa boyutunu ve başlatma 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 başlatma durumunu doğrulayın:

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

Cuttlefish'i özel 16 KB sayfa boyutlu çekirdekle kullanma

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

  1. Android ortak çekirdeği için bir depo 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. 16 KB sayfa boyutlu ç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 boyutlu çekirdekle başlatma

Yeni oluşturduğunuz çekirdeği Cuttlefish'te 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