ARM64'te 16 KB'lık sayfa boyutuna sahip Mürekkep balığı kullanın

Bu kurulum için bir ARM64 Linux ana makinesi gereklidir. Bu sayfada, projenizin nasıl oluşturulacağı Mürekkep balığı'nı ARM64 adresinde 16 KB sayfa boyutu desteğiyle başlatın. Talimatlar bu sayfada, Mürekkep balığı paketlerinin makinenizde yüklü olduğu varsayılmıştır. Örneğin, Cettlefish'i Yükleme başlıklı makalenin 1. adımına bakın.

Cuttlefish'i başlatmak için, önceden oluşturulmuş yapıları doğrudan Android Continuous'dan Değişiklik yapmanız gerekiyorsa entegrasyon sitesi veya AOSP'den derleyin kaynak koda ekleyin.

Eserleri indirerek Cuttlefish'i başlat

Android Sürekli Entegrasyon sitesine gidin ve şube adı olarak aosp-main-throttled girin. Şu uygulama için en son derlemeyi tıklayın: aosp_cf_arm64_phone_pgagnostic hedef. Şimdi, adım adım talimatları uygulayarak 5/Mürekkep Balığı'nı Yükleme başlıklı makaleyi inceleyin.

AOSP'den derleme yaparak Mürekkep balığı'nı kullanıma sunun

Sayfadan bağımsız bir hedefle Mürekkep balığı oluşturun ve kullanıma sunun:

$ 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

Sayfa boyutunu doğrula ve başlat

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
    

Mürekkep balığı ile 16 KB'lık özel sayfa boyutu çekirdeği kullanın

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

  1. Android ortak çekirdeği için 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 boyutu çekirdeği 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
    

Mürekkep balığıyla başlayın, 16 KB'lık özel sayfa boyutu çekirdeğiyle başlayın

Mürekkep balığı'nda yeni oluşturulan çekirdeği 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