इस पेज पर, Cuttlefish पर AAOS SDV को डाउनलोड करने, बिल्ड करने, और चलाने का तरीका बताया गया है.
Repo क्लाइंट को शुरू करना
Android सोर्स रिपॉज़िटरी को ऐक्सेस करने के लिए, अपना क्लाइंट सेट अप करें:
sdvजैसी कोई वर्किंग डायरेक्ट्री बनाएं और उस पर जाएं:mkdir WORKING_DIRECTORYcd WORKING_DIRECTORYसोर्स कंट्रोल के लिए, अपनी वर्किंग डायरेक्ट्री को शुरू करें:
इस उदाहरण में,
26Q2-fs-releaseब्रांच का इस्तेमाल किया गया है.RELEASE=26Q2-fs-releaserepo init -u https://partner-android.googlesource.com/platform/vendor/pdk/generic/fs/manifest/ -b $RELEASE-uविकल्प ज़रूरी है. यह मेनिफ़ेस्ट फ़ाइल की पहचान करता है. यह एक एक्सएमएल फ़ाइल होती है. इसमें यह जानकारी होती है कि Android सोर्स में मौजूद अलग-अलग Git प्रोजेक्ट, आपकी वर्किंग डायरेक्ट्री में कहां रखे गए हैं. इस उदाहरण में, मेनिफ़ेस्ट फ़ाइल का नाम नहीं दिया गया है. इसलिए, कमांड डिफ़ॉल्ट मेनिफ़ेस्ट फ़ाइल (default.xml) का इस्तेमाल करती है.-bविकल्प से, उस ब्रांच की पहचान होती है जिसे शुरू किया जा रहा है.जवाब में यह मैसेज शामिल होना चाहिए:
repo has been initialized in path_to_working_directory
AAOS SDV का सोर्स डाउनलोड करना
Android सोर्स ट्री को अपनी वर्किंग डायरेक्ट्री में डाउनलोड करने के लिए, यह कमांड चलाएं:
repo sync -c -j8-c आर्ग्युमेंट, Repo को सर्वर से मौजूदा मेनिफ़ेस्ट ब्रांच फ़ेच करने का निर्देश देता है. -j8 कमांड, सिंक करने की प्रोसेस को थ्रेड में बांट देती है, ताकि यह प्रोसेस तेज़ी से पूरी हो सके.
बिल्ड एनवायरमेंट सेट अप करना
अपनी वर्किंग डायरेक्ट्री में जाकर, envsetup.sh स्क्रिप्ट को सोर्स करें, ताकि आपका बिल्ड एनवायरमेंट सेट अप हो सके:
source build/envsetup.shयह स्क्रिप्ट, कई ऐसे निर्देश इंपोर्ट करती है जिनकी मदद से Android के सोर्स कोड पर काम किया जा सकता है. इनमें इस पेज पर इस्तेमाल किए गए निर्देश भी शामिल हैं. स्क्रिप्ट का सोर्स देखने के लिए, platform/build/envsetup.sh पर जाएं. पहले से मौजूद मदद देखने के लिए, hmm टाइप करें.
कोई टारगेट चुनें
एसडीवी बनाने से पहले, बनाने के लिए टारगेट की पहचान करें. बनाए जाने वाले टारगेट की पहचान करने के लिए, lunch कमांड का इस्तेमाल करें. इसके बाद, उस टारगेट को दिखाने वाली स्ट्रिंग का इस्तेमाल करें जिसे आपको बनाना है. उदाहरण के लिए, Cuttlefish एम्युलेटर के लिए टारगेट बनाने के लिए, इस निर्देश का इस्तेमाल करें:
lunch sdv_core_cf-trunk_staging-userdebugइस कमांड से, प्रॉडक्ट, रिलीज़ कॉन्फ़िगरेशन, और वैरिएंट को बिल्ड करने के लिए चुना जाता है. साथ ही, इस चुनाव को एनवायरमेंट में सेव किया जाता है.
lunch डायरेक्ट्री में मौजूद अलग Git प्रोजेक्ट में, SDV के लिए टारगेट दिए गए हैं. उपलब्ध टारगेट के बारे में ज़्यादा जानकारी के लिए, device/google/sdv/README.md पर जाएं. Cuttlefish (cf) के मुख्य टारगेट ये हैं:devices/google/sdv
sdv_core_cf-trunk_staging-userdebug- AAOS SDV Core (sdv_core) की इमेज बनाएं, जो Cuttlefish (cf) पर चलती है.sdv_media_cf-trunk_staging-userdebug- virtIO-वर्चुअलाइज़्ड मीडिया एपीआई (sdv_media) की मदद से, AAOS SDV Core की इमेज बनाएं.sdv_media_har_cf-trunk_staging-userdebug- ऐसी इमेज बनाएं जो AAOS SDV मीडिया (sdv_media_cf)lunchटारगेट को बड़ा करके, उसमें हाई-अवेलेबिलिटी रेंडरर (HAR) को शामिल कर सके. HAR, बूट होने पर अपने-आप चालू हो जाता है.sdv_ivi_cf-trunk_staging-userdebug- गाड़ी में सूचना और मनोरंजन की सुविधाएं (आईवीआई) देने वाले सिस्टम की एक इमेज बनाएं. इसमें एसडीवी गेटवे और Java के सैंपल ऐप्लिकेशन शामिल हों.sdv_ivi_cf_ds-trunk_staging-userdebug- ऐसी इमेज बनाएं जो AAOS SDV IVI टारगेट (sdv_ivi_cf) को बढ़ाती हो. साथ ही, इसमें Display Safety के DriverUI और इंस्ट्रूमेंट क्लस्टर को लागू करने की सुविधा शामिल हो.
AAOS SDV बनाना
टारगेट बनाने के लिए, यह कमांड चलाएं. आपके वर्कस्टेशन की खास बातों के आधार पर, पहली बार बिल्ड करने में 30 से 60 मिनट लगते हैं. इसके बाद के बिल्ड में काफ़ी कम समय लगता है.
mआपकी बिल्ड का आउटपुट, $OUT_DIR में दिखता है. अलग-अलग टारगेट बनाने पर, हर टारगेट $OUT_DIR में दिखता है.
Cuttlefish का इस्तेमाल करके, अपने बिल्ड की जांच करना
AAOS SDV बनाने के बाद, Cuttlefish का इस्तेमाल करके अपने बिल्ड की जांच करें.
अपने बिल्ड के साथ Cuttlefish शुरू करने के लिए:
cvd createCuttlefish, आपके बनाए गए टारगेट (
sdv_core_cf-trunk_staging-userdebug) का इस्तेमाल करके चलता है. Cuttlefish के बूट होने के बाद, यह मैसेज दिखता है:VIRTUAL_DEVICE_BOOT_COMPLETED Virtual device booted successfullyCuttlefish से कनेक्ट करने के लिए,
adbचलाएं.adb devicesचलाकर पुष्टि करें कि आपका बिल्ड चल रहा है. आपको इस तरह का नतीजा दिखेगा:List of devices attached 0.0.0.0:6520 deviceडिवाइस को शट डाउन करने के लिए,
cvd stopचलाएं.
अलग-अलग बिल्ड के साथ Cuttlefish के कई इंस्टेंस चलाने के लिए, Cuttlefish: मल्टी-टेनेंसी देखें.
समस्या हल करें
इस सेक्शन में, AAOS SDV को डाउनलोड, बिल्ड या चलाने के दौरान होने वाली गड़बड़ियों को ठीक करने का तरीका बताया गया है.
आरबीई से जुड़ी गड़बड़ियां
अगर आपको रिमोट बिल्ड एक्ज़ीक्यूशन (आरबीई) से जुड़ी कोई गड़बड़ी मिलती है, तो .bashrc या .zshrc से USE_RBE और ENABLE_RBE_BOOTSTRAP की परिभाषाएं हटाएं
cvd: VM manager crosvm isn't supported on this machine
अगर Cuttlefish यह रिपोर्ट करता है कि VM मैनेजर crosvm आपके कंप्यूटर पर काम नहीं करता है, तो Cuttlefish को इंस्टॉल करने के लिए यह कमांड चलाएँ:
sudo apt install cuttlefish-commoncvd नहीं मिला
अगर आपको cvd not found गड़बड़ी का मैसेज मिलता है, तो:
- अपने बिल्ड को फिर से सेट अप करें.
- कोई टारगेट चुनें पर क्लिक करके आगे बढ़ें.
Cuttlefish में क्रैश लूप की समस्याएं
अगर Cuttlefish क्रैश लूप में चला जाता है, तो:
- सभी Cuttlefish इंस्टेंस को रोकने के लिए,
cvd stopचलाएं. - अपने बिल्ड को फिर से टेस्ट करने के लिए, Cuttlefish का इस्तेमाल करें.