يتطلّب هذا الإعداد مضيف Linux 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 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
التحقّق من حجم الصفحة والتشغيل
للتحقّق من حجم الصفحة وحالة التشغيل:
يمكنك الوصول إلى واجهة الأوامر بصفتك مستخدمًا أساسيًا:
$ adb root adbd is already running as root $ adb shell vsoc_arm64_pgagnostic:/ #تحقَّق من حجم الصفحة وحالة التشغيل:
vsoc_arm64_pgagnostic:/ # getconf PAGE_SIZE 16384 vsoc_arm64_pgagnostic:/ # getprop | grep sys.boot.completed sys.boot_completed: 1
استخدام Cuttlefish مع نواة مخصّصة بحجم صفحة 16 كيلوبايت
لاستخدام نواة مخصّصة بدلاً من نواة تم إنشاؤها مسبقًا:
أنشئ دليل repo لنواة Android الشائعة وقم بمزامنة الدليل:
$ 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)أنشئ نواة بحجم صفحة 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تأكَّد من تنفيذ عملية الإنشاء بنجاح:
# 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