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

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

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

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

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

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

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

$ 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

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

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

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

    $ 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 با هسته صفحه سفارشی 16 کیلوبایت استفاده کنید

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

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

    $ 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 کیلوبایت:

    $ 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 را با هسته صفحه سفارشی 16 کیلوبایت شروع کنید

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