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

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

รับซอร์สโค้ด AAOS SDV

ทำตามวิธีการที่ระบุไว้ในหัวข้อดาวน์โหลดซอร์สโค้ด Android

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

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

source build/envsetup.sh

สคริปต์นี้นำเข้าคำสั่งหลายรายการที่ช่วยให้คุณทำงานกับซอร์สโค้ดของ Android ได้ รวมถึงคำสั่งที่ใช้ในหน้านี้ หากต้องการดูแหล่งที่มาของสคริปต์ โปรดดู platform/build/envsetup.sh หากต้องการดูความช่วยเหลือในตัว ให้พิมพ์ hmm

เลือกเป้าหมาย

ก่อนสร้าง SDV ให้ระบุเป้าหมายที่จะสร้าง หากต้องการระบุเป้าหมายที่จะสร้าง ให้ใช้คำสั่ง lunch ตามด้วยสตริงที่แสดงถึงเป้าหมายที่คุณกำลังสร้าง เช่น ใช้คำสั่งนี้เพื่อสร้างเป้าหมายสำหรับโปรแกรมจำลอง Cuttlefish

lunch sdv_core_cf-aosp_current-userdebug

คำสั่งนี้จะเลือกผลิตภัณฑ์ การกำหนดค่ารุ่น และตัวแปรที่จะสร้าง และจัดเก็บรายการที่เลือกไว้ในสภาพแวดล้อม

เป้าหมาย lunch สำหรับ SDV จะอยู่ในโปรเจ็กต์ Git แยกต่างหากในไดเรกทอรี device/google/sdv ดูคำอธิบายโดยละเอียดของเป้าหมายที่ใช้ได้ที่ device/google/sdv/README.md เป้าหมายหลักของ Cuttlefish (cf) มีดังนี้

  • sdv_core_cf-aosp_current-userdebug - สร้างอิมเมจของ AAOS SDV Core (sdv_core) ที่ทำงานบน Cuttlefish (cf)
  • sdv_media_cf-aosp_current-userdebug - สร้างอิมเมจของ AAOS SDV Core ด้วย API สื่อที่จำลองเสมือนด้วย virtIO (sdv_media)
  • sdv_media_har_cf-aosp_current-userdebug - สร้างอิมเมจที่ขยายเป้าหมายสื่อ SDV ของ AAOS (sdv_media_cf) lunch ให้มีโปรแกรมแสดงผลที่มีความพร้อมใช้งานสูง (HAR) HAR จะทำงานโดยอัตโนมัติเมื่อเปิดเครื่อง
  • sdv_ivi_cf-aosp_current-userdebug - สร้างอิมเมจของระบบสาระบันเทิงในรถยนต์ (IVI) ที่มีเกตเวย์ SDV และแอปตัวอย่าง Java
  • sdv_ivi_cf_ds-aosp_current-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-aosp_current-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: การทำงานแบบกลุ่มผู้ใช้

แก้ปัญหา

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

ข้อผิดพลาด RBE

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

cvd: เครื่องนี้ไม่รองรับ crosvm ของ VM Manager

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

sudo apt install cuttlefish-common

ไม่พบ cvd

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

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

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

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

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