הורדה, בנייה והפעלה

בדף הזה מוסבר איך להוריד, לבנות ולהפעיל את AAOS SDV ב-Cuttlefish.

קבלת קוד המקור של AAOS SDV

פועלים לפי ההוראות שמופיעות במאמר הורדת קוד המקור של Android.

הגדרת סביבת ה-build

בספריית העבודה, מריצים את הסקריפט envsetup.sh כדי להגדיר את סביבת הפיתוח:

source build/envsetup.sh

הסקריפט הזה מייבא כמה פקודות שמאפשרות לעבוד עם קוד המקור של Android, כולל הפקודות שמופיעות בדף הזה. כדי לראות את המקור של הסקריפט, אפשר לעיין במאמר platform/build/envsetup.sh. כדי להציג את העזרה המובנית, מקלידים hmm.

בחירת יעד

לפני שיוצרים SDV, צריך לזהות יעד לבנייה. כדי לזהות את יעד הבנייה, משתמשים בפקודה lunch ואחריה מחרוזת שמייצגת את היעד שלשמו אתם בונים. לדוגמה, משתמשים בפקודה הזו כדי ליצור יעד לאמולטור Cuttlefish:

lunch sdv_core_cf-trunk_staging-userdebug

הפקודה הזו בוחרת את המוצר, את הגדרת הגרסה ואת הווריאנט לבנייה, ושומרת את הבחירה בסביבה.

lunch יעדי ה-SDV מסופקים בפרויקט Git נפרד שנמצא בספרייה devices/google/sdv. תיאור מפורט של יעדים זמינים מופיע בכתובת device/google/sdv/README.md. יעדי Cuttlefish (cf) העיקריים הם:

  • sdv_core_cf-trunk_staging-userdebug – יצירת תמונה של AAOS SDV Core‏ (sdv_core) שפועלת ב-Cuttlefish‏ (cf).
  • sdv_media_cf-trunk_staging-userdebug – יצירת תמונה של AAOS SDV Core עם ממשקי API של מדיה וירטואלית של virtIO (sdv_media).
  • sdv_media_har_cf-trunk_staging-userdebug – יצירת תמונה שמרחיבה את יעד המדיה של AAOS SDV ‏ (sdv_media_cf) lunch כך שיכיל את רכיב העיבוד הגרפי של זמינות גבוהה (HAR). ה-HAR מופעל אוטומטית בזמן האתחול.
  • sdv_ivi_cf-trunk_staging-userdebug – יצירת תמונה של מערכת מידע ובידור (IVI) ברכב שמכילה את שער ה-SDV ואת אפליקציות לדוגמה ב-Java.
  • sdv_ivi_cf_ds-trunk_staging-userdebug – יצירת תמונה שמרחיבה את יעד ה-SDV IVI של AAOS (sdv_ivi_cf) וכוללת הטמעה של DriverUI ושל Instrument Cluster של Display Safety.

יצירת AAOS SDV

מריצים את הפקודה הבאה כדי ליצור את היעד. בהתאם למפרט של תחנת העבודה, הבנייה הראשונה נמשכת בין 30 ל-60 דקות. הגרסאות הבאות ייבנו בזמן קצר בהרבה.

m

הפלט של הבנייה יופיע ב-$OUT_DIR. אם יוצרים יעדים שונים, כל יעד מופיע ב-$OUT_DIR.

בדיקת גרסת ה-build באמצעות Cuttlefish

אחרי שיוצרים את AAOS SDV, בודקים את ה-build באמצעות Cuttlefish.

  1. כדי להפעיל את Cuttlefish עם גרסת ה-build:

    cvd create

    ‫Cuttlefish פועל באמצעות יעד ה-build שלכם (sdv_core_cf-trunk_staging-userdebug). אחרי ש-Cuttlefish מופעל, מוצגת ההודעה הבאה:

    VIRTUAL_DEVICE_BOOT_COMPLETED
    Virtual device booted successfully
  2. מריצים את הפקודה adb כדי להתחבר ל-Cuttlefish.

  3. מריצים את הפקודה adb devices כדי לוודא שגרסת ה-build פועלת. מוצגת תוצאה דומה לזו:

    List of devices attached
    0.0.0.0:6520 device
  4. מריצים את הפקודה cvd stop כדי לכבות את המכשיר.

כדי להפעיל כמה מופעים של Cuttlefish עם גרסאות build שונות, אפשר לעיין במאמר Cuttlefish: ריבוי דיירים.

פתרון בעיות

בקטע הזה מוסבר איך לפתור בעיות שעלולות להתרחש במהלך ההורדה, הבנייה או ההפעלה של AAOS SDV.

שגיאות RBE

אם נתקלתם בשגיאות בהפעלת Remote Build Execution ‏ (RBE), צריך להסיר את ההגדרות של USE_RBE ושל ENABLE_RBE_BOOTSTRAP מ-.bashrc או מ-.zshrc.

‫cvd: VM manager crosvm isn't supported on this machine

אם Cuttlefish מדווח שמנהל המכונות הווירטואליות crosvm לא נתמך במחשב שלכם, מריצים את הפקודה הבאה כדי להתקין את Cuttlefish:

sudo apt install cuttlefish-common

לא נמצא cvd

אם מופיעה השגיאה cvd not found:

  1. מגדירים מחדש את הגרסה.
  2. ממשיכים עם בחירת יעד.

Cuttlefish crash loops

אם Cuttlefish נכנס ללולאת קריסה:

  1. כדי להפסיק את כל המופעים של Cuttlefish, מריצים את הפקודה cvd stop.
  2. איך משתמשים ב-Cuttlefish כדי לבדוק מחדש את ה-build