يتطلب هذا الإعداد مضيفًا يعمل بنظام التشغيل ARM64
Linux. توضِّح هذه الصفحة كيفية إنشاء "حبَّار" و
بدء تشغيله مع إتاحة صفحات بحجم 16 كيلوبايت على ARM64
. تفترض التعليمات الواردة في
هذه الصفحة أنّ حِزم Cuttlefish مثبّتة على جهازك. للحصول على
تعليمات تثبيتها، اطّلِع على الخطوة 1 من مقالة تثبيت Cuttlefish.
يمكنك تشغيل Cuttlefish إما من خلال تنزيل العناصر المُنشأة مسبقًا مباشرةً من موقع Android Continuous Integration الإلكتروني أو إنشائها من AOSP إذا كنت بحاجة إلى تعديل رمز المصدر.
ابدأ Cuttlefish من خلال تنزيل العناصر.
انتقِل إلى الموقع الإلكتروني لدمج Android المستمر و
أدخِل aosp-main-throttled
كاسم للفرع. انقر على أحدث إصدار لاستهداف
aosp_cf_arm64_phone_pgagnostic
. اتّبِع الآن التعليمات الواردة في الخطوة
5 من مقالة تثبيت 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
التحقّق من حجم الصفحة وبدء التشغيل
للتحقّق من حجم الصفحة وحالة التشغيل:
يمكنك الوصول إلى shell بصفتك مشرفًا:
$ 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 كيلوبايت
لاستخدام نواة مخصصة، بدلاً من نواة مسبقة الإنشاء:
أنشئ دليل مستودع لنظام التشغيل android kernel common وقم بمزامنة الدليل:
$ 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