इस पेज पर, Cuttlefish हाइब्रिड डिवाइस (सीएचडी) बनाने का तरीका बताया गया है.
सीएचडी, हाइब्रिड वर्चुअल Cuttlefish डिवाइस होता है. यह डिवाइस के एचएएल पर Cuttlefish सिस्टम इमेज के बजाय, किसी फ़िज़िकल डिवाइस की सिस्टम इमेज चलाता है. इससे ये फ़ायदे मिलते हैं:
शुरुआती डेवलपमेंट और टेस्टिंग: सीएचडी की मदद से, अगली जनरेशन के सिस्टम सॉफ़्टवेयर को फ़िज़िकल हार्डवेयर के उपलब्ध होने से पहले ही डेवलप और टेस्ट किया जा सकता है.
स्केलेबिलिटी: सीएचडी की मदद से, डेवलपमेंट और टेस्टिंग की क्षमता को आसानी से बढ़ाया जा सकता है.
CHD इमेज बनाना
सीएचडी इमेज बनाने के लिए, यह तरीका अपनाएं:
make distका इस्तेमाल करके, वेंडर टारगेट और फ़िज़िकल डिवाइस के लिए टारगेट फ़ाइलें जनरेट करें. इनमें से किसी एक विकल्प का इस्तेमाल करके, वेंडर टारगेट फ़ाइलें जनरेट करें:- मौजूदा Cuttlefish टारगेट
- यह 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 टारगेट तय किया जा सकता है. इसका इस्तेमाल, सीएचडी इमेज के लिए वेंडर टारगेट फ़ाइल के तौर पर किया जा सकता है.
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
सीएचडी लॉन्च करने के लिए, होस्ट एनवायरमेंट चुनें
ARM64 पर आधारित सीएचडी को लॉन्च और मैनेज करने के लिए, एक ऐसा होस्ट एनवायरमेंट सेट अप करें जिसे आसानी से बढ़ाया जा सके. इसके लिए, अपने वर्कफ़्लो के हिसाब से कोई सेटअप चुनें:
Google Cloud C4A बेयर मेटल (सुझाया गया): Google Cloud C4A बेयर मेटल इंस्टेंस, जैसे कि
c4a-standard-96-metalयाc4a-highmem-96-metal, Google Axion प्रोसेसर की मदद से, ARM64 KVM हार्डवेयर ऐक्सलरेशन की सुविधा देते हैं. इस सेटअप की मदद से, ARM64 CHDs को क्लाउड में ज़्यादा परफ़ॉर्मेंस और ज़्यादा स्केलेबिलिटी के साथ एक्ज़ीक्यूट किया जा सकता है. इसके लिए, नेस्टेड वर्चुअलाइज़ेशन की ज़रूरत नहीं होती. इसके अलावा, OmniLab ATS Cloud Orchestration,c4a-metalके साथ इंटिग्रेट होता है. इससे डिवाइसों को अपने-आप असाइन करने, टेस्ट ऑर्केस्ट्रेशन, और इन्फ़्रास्ट्रक्चर मैनेजमेंट को ऑटोमेट किया जा सकता है.मैन्युअल होस्ट या कंपनी की इमारत में सेटअप (वैकल्पिक): अगर कस्टम लोकल या लैब एआरएम हार्डवेयर पर काम किया जा रहा है या OmniLab ATS के बिना होस्ट एनवायरमेंट को मैन्युअल तरीके से कॉन्फ़िगर किया जा रहा है, तो कंपनी की इमारत में सर्वर पर Cuttlefish चलाना लेख पढ़ें.