ดาวน์โหลด สร้าง และเรียกใช้

หน้านี้อธิบายวิธีดาวน์โหลด สร้าง และเรียกใช้ AAOS SDV บน Cuttlefish

เริ่มต้นไคลเอ็นต์ 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 และระบุไฟล์ manifest ซึ่งเป็นไฟล์ XML ที่ระบุตำแหน่งของโปรเจ็กต์ Git ต่างๆ ในซอร์สโค้ดของ Android ภายในไดเรกทอรีการทำงาน ในตัวอย่างนี้ ไม่ได้ระบุชื่อไฟล์ Manifest คำสั่งจึงใช้ไฟล์ Manifest เริ่มต้น (default.xml)

    ตัวเลือก -b จะระบุสาขาที่คุณกำลังเริ่มต้น

    เอาต์พุตควรมีข้อความต่อไปนี้

    repo has been initialized in path_to_working_directory

ดาวน์โหลดแหล่งที่มาของ SDV ใน AAOS

เรียกใช้คำสั่งต่อไปนี้เพื่อดาวน์โหลดโครงสร้างแหล่งที่มาของ Android ไปยังไดเรกทอรีการทำงาน

repo sync -c -j8

อาร์กิวเมนต์ -c จะสั่งให้ Repo ดึงสาขาของไฟล์ Manifest ปัจจุบันจากเซิร์ฟเวอร์ คำสั่ง -j8 จะแยกการซิงค์ออกเป็นหลายเธรดเพื่อให้เสร็จสมบูรณ์ได้เร็วขึ้น

ตั้งค่าสภาพแวดล้อมของบิลด์

จากภายในไดเรกทอรีการทำงาน ให้เรียกใช้สคริปต์ 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 - สร้างอิมเมจที่ขยายเป้าหมายสื่อ SDV ของ AAOS (sdv_media_cf) lunch ให้มีตัวแสดงผลที่มีความพร้อมใช้งานสูง (HAR) HAR จะทำงานโดยอัตโนมัติเมื่อบูต
  • sdv_ivi_cf-trunk_staging-userdebug - สร้างอิมเมจของระบบสาระบันเทิงในรถยนต์ (IVI) ที่มีเกตเวย์ SDV และแอปตัวอย่าง Java
  • sdv_ivi_cf_ds-trunk_staging-userdebug - สร้างอิมเมจที่ขยายเป้าหมาย AAOS SDV IVI (sdv_ivi_cf) และรวมการใช้งาน DriverUI ของ Display Safety และแผงหน้าปัด

สร้าง SDV ของ AAOS

เรียกใช้คำสั่งต่อไปนี้เพื่อสร้างเป้าหมาย การสร้างครั้งแรกจะใช้เวลา 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. เรียกใช้ adb เพื่อเชื่อมต่อกับ Cuttlefish

  3. เรียกใช้ adb devices เพื่อยืนยันว่าบิลด์ของคุณทำงานอยู่ ระบบจะแสดงผลลัพธ์ที่คล้ายกับ รายการนี้

    List of devices attached
    0.0.0.0:6520 device
  4. เรียกใช้ cvd stop เพื่อปิดอุปกรณ์

หากต้องการเรียกใช้ Cuttlefish หลายอินสแตนซ์ด้วยบิลด์ที่แตกต่างกัน โปรดดู Cuttlefish: multi-tenancy

แก้ปัญหา

ส่วนนี้จะอธิบายวิธีแก้ปัญหาข้อผิดพลาดที่อาจเกิดขึ้นระหว่างการดาวน์โหลด การสร้าง หรือการเรียกใช้ AAOS SDV

ข้อผิดพลาด RBE

หากพบข้อผิดพลาดในการดำเนินการสร้างจากระยะไกล (RBE) ให้นำคำจำกัดความของ USE_RBE และ ENABLE_RBE_BOOTSTRAP ออกจาก .bashrc หรือ .zshrc

cvd: เครื่องนี้ไม่รองรับ crosvm ตัวจัดการ VM

หาก Cuttlefish รายงานว่าเครื่องของคุณไม่รองรับ VM Manager crosvm ให้เรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้ง Cuttlefish

sudo apt install cuttlefish-common

ไม่พบ cvd

หากได้รับข้อผิดพลาด cvd not found ให้ทำดังนี้

  1. ตั้งค่าบิลด์อีกครั้ง
  2. ดำเนินการต่อโดยเลือกเป้าหมาย

ลูปข้อขัดข้องของ Cuttlefish

หาก Cuttlefish เข้าสู่ลูปข้อขัดข้อง ให้ทำดังนี้

  1. หากต้องการหยุดอินสแตนซ์ Cuttlefish ทั้งหมด ให้เรียกใช้ cvd stop
  2. ใช้ Cuttlefish เพื่อทดสอบบิลด์อีกครั้ง