یک دستگاه هیبریدی Cuttlefish بسازید

این صفحه نحوه ایجاد یک دستگاه هیبریدی Cuttlefish (CHD) را شرح می‌دهد.

یک CHD یک دستگاه مجازی ترکیبی Cuttlefish است که به جای یک تصویر سیستم Cuttlefish روی HAL های دستگاه، تصویر سیستم یک دستگاه فیزیکی را اجرا می‌کند. این مزایای زیر را ارائه می‌دهد:

  • توسعه و آزمایش اولیه: CHDها امکان توسعه و آزمایش اولیه نرم‌افزار سیستم نسل بعدی را قبل از در دسترس بودن سخت‌افزار فیزیکی فراهم می‌کنند.

  • مقیاس‌پذیری: CHDها گسترش آسان‌تر ظرفیت توسعه و آزمایش را تسهیل می‌کنند.

یک تصویر CHD ایجاد کنید

برای ایجاد یک تصویر CHD، مراحل زیر را دنبال کنید:

  1. با استفاده از make dist فایل‌های هدف را برای دستگاه هدف فروشنده و دستگاه فیزیکی ایجاد کنید. فایل‌های هدف فروشنده را با استفاده از یکی از گزینه‌های زیر تولید کنید:

    • یک هدف کامل موجود برای ماهی مرکب
    • یک هدف Cuttlefish که فقط فایل‌های فروشنده Cuttlefish را می‌سازد. برای اطلاعات بیشتر، به ایجاد یک هدف فروشنده Cuttlefish مراجعه کنید.
  2. دو فایل هدف را در یک فایل هدف 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، این مراحل را دنبال کنید:

  1. هدف Cuttlefish را که مصنوعات کامل را می‌سازد، به ارث ببرید:

    $(call inherit-product, device/google/cuttlefish/vsoc_arm64/phone/aosp_cf.mk)
    
  2. نام هدف را تعریف کنید:

    PRODUCT_NAME := aosp_cf_arm64_phone_vendor
    
  3. غیرفعال کردن ساخت‌های غیرضروری از کل مصنوعات:

    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 روی یک سرور در محل مراجعه کنید.