از سگ ماهی با اندازه صفحه 16 KB در ARM64 استفاده کنید

این راه‌اندازی به یک میزبان لینوکس ARM64 نیاز دارد. این صفحه نحوه ساخت و راه‌اندازی Cuttlefish با پشتیبانی از اندازه صفحه ۱۶ کیلوبایت در ARM64 را نشان می‌دهد. دستورالعمل‌های این صفحه فرض می‌کنند که بسته‌های Cuttlefish در دستگاه شما نصب شده‌اند. برای دستورالعمل‌های نصب آنها، به مرحله ۱ نصب Cuttlefish مراجعه کنید.

شما می‌توانید Cuttlefish را با دانلود مستقیم مصنوعات از پیش ساخته شده از سایت Android Continuous Integration یا ساخت آنها از AOSP در صورت نیاز به تغییر کد منبع، راه‌اندازی کنید.

با دانلود مصنوعات، Cuttlefish را اجرا کنید

به سایت Android Continuous Integration بروید و aosp-main-throttled به عنوان نام شاخه وارد کنید. روی آخرین نسخه ساخته شده برای هدف aosp_cf_arm64_phone_pgagnostic کلیک کنید. اکنون، دستورالعمل‌های مرحله 5 نصب Cuttlefish را دنبال کنید.

با ساخت از AOSP، Cuttlefish را راه‌اندازی کنید

ساخت و راه‌اندازی Cuttlefish با هدف عدم وابستگی به صفحه:

$ 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

اندازه صفحه و بوت را تأیید کنید

برای تأیید اندازه صفحه و وضعیت بوت:

  1. به عنوان کاربر ریشه به پوسته دسترسی پیدا کنید:

    $ adb root
    adbd is already running as root
    $ adb shell
    vsoc_arm64_pgagnostic:/ #
    
  2. اندازه صفحه و وضعیت بوت را بررسی کنید:

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

استفاده از Cuttlefish با هسته سفارشی با اندازه صفحه ۱۶ کیلوبایت

برای استفاده از یک هسته سفارشی، به جای یک هسته از پیش ساخته شده:

  1. یک دایرکتوری repo برای یک هسته مشترک اندروید ایجاد کنید و دایرکتوری را همگام‌سازی کنید:

    $ 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. ساخت هسته با اندازه صفحه ۱۶ کیلوبایت:

    $ 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. تأیید کنید که ساخت با موفقیت اجرا شده است:

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

شروع Cuttlefish با هسته سفارشی با اندازه صفحه ۱۶ کیلوبایت

برای استفاده از هسته تازه ساخته شده خود در 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