این صفحه نحوه ایجاد یک دستگاه هیبریدی Cuttlefish (CHD) را شرح میدهد.
یک CHD یک دستگاه مجازی ترکیبی Cuttlefish است که به جای یک تصویر سیستم Cuttlefish روی HAL های دستگاه، تصویر سیستم یک دستگاه فیزیکی را اجرا میکند. این مزایای زیر را ارائه میدهد:
توسعه و آزمایش اولیه: CHDها امکان توسعه و آزمایش اولیه نرمافزار سیستم نسل بعدی را قبل از در دسترس بودن سختافزار فیزیکی فراهم میکنند.
مقیاسپذیری: CHDها گسترش آسانتر ظرفیت توسعه و آزمایش را تسهیل میکنند.
یک تصویر CHD ایجاد کنید
برای ایجاد یک تصویر CHD، مراحل زیر را دنبال کنید:
با استفاده از
make distفایلهای هدف را برای دستگاه هدف فروشنده و دستگاه فیزیکی ایجاد کنید. فایلهای هدف فروشنده را با استفاده از یکی از گزینههای زیر تولید کنید:- یک هدف کامل موجود برای ماهی مرکب
- یک هدف Cuttlefish که فقط فایلهای فروشنده Cuttlefish را میسازد. برای اطلاعات بیشتر، به ایجاد یک هدف فروشنده Cuttlefish مراجعه کنید.
دو فایل هدف را در یک فایل هدف CHD ترکیب کنید و با اجرای اسکریپت
build_cf_hybrid_device.pyتصاویر CHD را از فایل هدف CHD تولید کنید. این اسکریپت دو فایل هدف را با استفاده ازmerge_target_files.pyدر یک فایل هدف CHD ترکیب میکند و با استفاده ازimg_from_target_filesتصاویر CHD را از فایل هدف CHD تولید میکند.python3 tools/treble/cuttlefish/build_cf_hybrid_device.py \ --framework_target_files_zip <physical_device_target_files.zip> \ --vendor_target_files_zip <cuttlefish_device_target_files.zip> \ --otatools_zip <cuttlefish_otatools.zip> \ --target chd \ --output_dir <output_directory>
یک هدف برای فروشنده Cuttlefish ایجاد کنید
شما میتوانید aosp_cf_vendor.mk برای تعریف فایل هدف aosp_cf_arm64_phone_vendor استفاده کنید که میتوانید از آن به عنوان فایل هدف فروشنده برای یک تصویر CHD استفاده کنید.
برای ایجاد یک هدف فقط برای فروشندگان Cuttlefish، این مراحل را دنبال کنید:
هدف Cuttlefish را که مصنوعات کامل را میسازد، به ارث ببرید:
$(call inherit-product, device/google/cuttlefish/vsoc_arm64/phone/aosp_cf.mk)نام هدف را تعریف کنید:
PRODUCT_NAME := aosp_cf_arm64_phone_vendorغیرفعال کردن ساختهای غیرضروری از کل مصنوعات:
PRODUCT_BUILD_SYSTEM_IMAGE := false PRODUCT_BUILD_SYSTEM_OTHER_IMAGE := false PRODUCT_BUILD_PRODUCT_IMAGE := false PRODUCT_BUILD_SYSTEM_EXT_IMAGE := false PRODUCT_BUILD_SUPER_PARTITION := false TARGET_SKIP_OTA_PACKAGE := true
یک محیط میزبان برای راهاندازی CHD انتخاب کنید
برای راهاندازی یک محیط میزبان مقیاسپذیر برای راهاندازی و مدیریت CHDهای مبتنی بر ARM64، بر اساس گردش کار خود، یک تنظیم را انتخاب کنید:
سختافزار خام Google Cloud C4A (توصیه میشود): نمونههای سختافزار خام Google Cloud C4A ، مانند
c4a-standard-96-metalیاc4a-highmem-96-metal، شتاب سختافزاری ARM64 KVM بومی را که توسط پردازندههای Google Axion پشتیبانی میشود، ارائه میدهند. این تنظیمات، اجرای با کارایی بالا و بسیار مقیاسپذیر را برای ARM64 CHDها در ابر بدون سربار مجازیسازی تو در تو ارائه میدهد. علاوه بر این، OmniLab ATS Cloud Orchestration باc4a-metalادغام میشود تا تخصیص دستگاه، تنظیم تست و مدیریت زیرساخت را خودکار کند.راهاندازی دستی میزبان یا در محل (جایگزین): اگر روی سختافزار ARM محلی یا آزمایشگاهی سفارشی اجرا میکنید، یا یک محیط میزبان را بدون OmniLab ATS به صورت دستی پیکربندی میکنید، به اجرای Cuttlefish روی یک سرور در محل مراجعه کنید.