Ahtapot karma cihaz oluşturma

Bu sayfada, Cuttlefish hibrit cihazının (CHD) nasıl oluşturulacağı açıklanmaktadır.

CHD, cihazın HAL'lerinde Cuttlefish sistem görüntüsü yerine fiziksel bir cihazın sistem görüntüsünü çalıştıran hibrit bir sanal Cuttlefish cihazıdır. Bu durum, şu avantajları sunar:

  • Erken geliştirme ve test: CHD'ler, fiziksel donanım kullanıma sunulmadan önce yeni nesil sistem yazılımının erken geliştirilmesine ve test edilmesine olanak tanır.

  • Ölçeklenebilirlik: CH'ler, geliştirme ve test kapasitesinin daha kolay genişletilmesini sağlar.

CHD görüntüsü oluşturma

CHD görüntüsü oluşturmak için aşağıdaki adımları uygulayın:

  1. make dist kullanarak satıcı hedefi ve fiziksel cihaz için hedef dosyaları oluşturun. Aşağıdaki seçeneklerden birini kullanarak satıcı hedef dosyalarını oluşturun:

    • Mevcut bir tam Cuttlefish hedefi
    • Yalnızca Cuttlefish satıcı dosyalarını oluşturan bir Cuttlefish hedefi. Daha fazla bilgi için Cuttlefish satıcı hedefi oluşturma başlıklı makaleyi inceleyin.
  2. İki hedef dosyayı bir CHD hedef dosyasında birleştirin ve build_cf_hybrid_device.py komut dosyasını çalıştırarak CHD hedef dosyasından CHD görüntüleri oluşturun. Bu komut dosyası, merge_target_files.py kullanarak iki hedef dosyayı tek bir CHD hedef dosyasında birleştirir ve img_from_target_files kullanarak CHD hedef dosyasından CHD görüntüleri oluşturur.

    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 tedarikçi hedefi oluşturma

aosp_cf_vendor.mk kullanarak aosp_cf_arm64_phone_vendor hedefi tanımlayabilirsiniz. Bu hedefi, CHD görüntüsü için satıcı hedef dosyası olarak kullanabilirsiniz.

Yalnızca satıcıya yönelik bir Cuttlefish hedefi oluşturmak için aşağıdaki adımları uygulayın:

  1. Tam yapılar oluşturan Cuttlefish hedefini devralın:

    $(call inherit-product, device/google/cuttlefish/vsoc_arm64/phone/aosp_cf.mk)
    
  2. Hedef adını tanımlayın:

    PRODUCT_NAME := aosp_cf_arm64_phone_vendor
    
  3. Tam yapıtlar içindeki gereksiz derlemeleri devre dışı bırakın:

    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 başlatmak için bir ana makine ortamı seçin

ARM64 tabanlı CHD'leri başlatmak ve yönetmek için ölçeklenebilir bir ana makine ortamı oluşturmak istiyorsanız iş akışınıza uygun bir kurulum seçin:

  • Google Cloud C4A bare metal (önerilir): Google Cloud C4A bare metal örnekleri (ör. c4a-standard-96-metal veya c4a-highmem-96-metal), Google Axion işlemcileri tarafından desteklenen yerel ARM64 KVM donanım hızlandırması sağlar. Bu kurulum, iç içe sanallaştırma ek yükü olmadan bulutta ARM64 CHD'ler için yüksek performanslı ve yüksek oranda ölçeklenebilir yürütme sağlar. Ayrıca, OmniLab ATS Cloud Orchestration, cihaz tahsisini, test düzenlemesini ve altyapı yönetimini otomatikleştirmek için c4a-metal ile entegre olur.

  • Manuel ana makine veya şirket içi kurulum (alternatif): Özel yerel veya laboratuvar ARM donanımında çalışıyorsanız ya da OmniLab ATS olmadan bir ana makine ortamını manuel olarak yapılandırıyorsanız Cuttlefish'i şirket içi bir sunucuda çalıştırma başlıklı makaleyi inceleyin.