محاكاة Cuttlefish بحجم صفحة 16 كيلوبايت على x86_64

يتطلّب هذا الإعداد مضيف Linux x86_64. توضّح هذه الصفحة كيفية إنشاء جهاز Cuttlefish وتشغيله مع إتاحة حجم الصفحة 16 كيلوبايت على x86_64. تفترض التعليمات الواردة في هذه الصفحة أنّ حِزم Cuttlefish مثبَّتة على جهازك. للحصول على تعليمات حول كيفية تثبيتها، راجِع الخطوة 1 من تثبيت Cuttlefish.

يمكنك تشغيل Cuttlefish من خلال تنزيل العناصر المسبقة الإنشاء مباشرةً من موقع Android Continuous Integration الإلكتروني أو إنشائها من AOSP إذا كنت بحاجة إلى تعديل رمز المصدر.

تنفيذ النواة

تمت إضافة إمكانية محاكاة صفحات بحجم x86_64 16 كيلوبايت في الإصدار 6.6 من واجهة GKI لنظام Android 14 ضمن سلسلة تصحيحات page_size_emulation. يؤدي تمرير page_shift=14 في سطر الأوامر إلى تفعيل هذه المحاكاة. تتجاوز أهداف x86_64 التي تتضمّن اللاحقة _16k (أو الأهداف القديمة التي تتضمّن اللاحقة _pgagnostic) هذا الخيار تلقائيًا، مثل aosp_cf_x86_64_phone_pgagnostic، وتعمل في وضع 16 كيلوبايت تلقائيًا.

تشغيل Cuttlefish من خلال تنزيل العناصر

انتقِل إلى موقع "التكامل المستمر" على Android وأدخِل aosp-main-throttled كاسم الفرع. انقر على أحدث إصدار من aosp_cf_x86_64_only_phone_pgagnostic. اتّبِع الآن التعليمات الواردة في الخطوة 5 من تثبيت Cuttlefish.

تشغيل Cuttlefish من خلال الإنشاء من AOSP

أنشئ Cuttlefish وأطلِقه مع استهداف مستقل عن الصفحة:

$ mkdir android-latest-release && cd android-latest-release
$ 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_x86_64_only_phone_pgagnostic-aosp_current-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. الوصول إلى shell كجذر:

    $ adb root
    adbd is already running as root
    $ adb shell
    vsoc_x86_64_pgagnostic:/ #
    
  2. التحقّق من حجم الصفحة وحالة التشغيل:

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