डाउनलोड करना, बनाना, और चलाना

इस पेज पर, Cuttlefish पर AAOS SDV को डाउनलोड करने, बिल्ड करने, और चलाने का तरीका बताया गया है.

Repo क्लाइंट को शुरू करना

Android सोर्स रिपॉज़िटरी को ऐक्सेस करने के लिए, अपना क्लाइंट सेट अप करें:

  1. sdv जैसी कोई वर्किंग डायरेक्ट्री बनाएं और उस पर जाएं:

    mkdir WORKING_DIRECTORY
    cd WORKING_DIRECTORY
  2. सोर्स कंट्रोल के लिए, अपनी वर्किंग डायरेक्ट्री को शुरू करें:

    इस उदाहरण में, 26Q2-fs-release ब्रांच का इस्तेमाल किया गया है.

    RELEASE=26Q2-fs-release
    repo 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 का इस्तेमाल करके अपने बिल्ड की जांच करें.

  1. अपने बिल्ड के साथ Cuttlefish शुरू करने के लिए:

    cvd create

    Cuttlefish, आपके बनाए गए टारगेट (sdv_core_cf-trunk_staging-userdebug) का इस्तेमाल करके चलता है. Cuttlefish के बूट होने के बाद, यह मैसेज दिखता है:

    VIRTUAL_DEVICE_BOOT_COMPLETED
    Virtual device booted successfully
  2. Cuttlefish से कनेक्ट करने के लिए, adb चलाएं.

  3. adb devices चलाकर पुष्टि करें कि आपका बिल्ड चल रहा है. आपको इस तरह का नतीजा दिखेगा:

    List of devices attached
    0.0.0.0:6520 device
  4. डिवाइस को शट डाउन करने के लिए, 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-common

cvd नहीं मिला

अगर आपको cvd not found गड़बड़ी का मैसेज मिलता है, तो:

  1. अपने बिल्ड को फिर से सेट अप करें.
  2. कोई टारगेट चुनें पर क्लिक करके आगे बढ़ें.

Cuttlefish में क्रैश लूप की समस्याएं

अगर Cuttlefish क्रैश लूप में चला जाता है, तो:

  1. सभी Cuttlefish इंस्टेंस को रोकने के लिए, cvd stop चलाएं.
  2. अपने बिल्ड को फिर से टेस्ट करने के लिए, Cuttlefish का इस्तेमाल करें.