下载、构建和运行

本页介绍了如何在 Cuttlefish 上下载、构建和运行 AAOS SDV。

获取 AAOS SDV 源代码

按照下载 Android 源代码中提供的说明操作。

设置构建环境

在您的工作目录中,获取 envsetup.sh 脚本的源代码以设置构建环境:

source build/envsetup.sh

此脚本会导入若干命令(包括本页中使用的命令),让您能够使用 Android 源代码。如需查看脚本的源代码,请参阅 platform/build/envsetup.sh。如需查看内置帮助,请输入 hmm

选择目标

在构建 SDV 之前,请先确定要构建的 目标。如需确定要构建的目标,请使用 lunch 命令,后跟表示您要构建的目标的字符串。例如,使用以下命令为 Cuttlefish 模拟器构建目标:

lunch sdv_core_cf-trunk_staging-userdebug

此命令会选择要构建的产品、发布配置和变体,并将选择存储在环境中。

SDV 的 lunch 目标在位于 devices/google/sdv 目录中的单独 Git 项目中提供。如需详细了解可用目标,请参阅 device/google/sdv/README.md。主要的 Cuttlefish (cf) 目标包括:

  • sdv_core_cf-trunk_staging-userdebug - 构建在 Cuttlefish (cf) 上运行的 AAOS SDV Core (sdv_core) 映像。
  • sdv_media_cf-trunk_staging-userdebug - 构建包含 virtIO 虚拟化媒体 API (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 - 构建包含 SDV 网关和 Java 示例应用的车载 信息娱乐系统 (IVI) 映像。
  • sdv_ivi_cf_ds-trunk_staging-userdebug - 构建一个映像,该映像扩展了 AAOS SDV IVI 目标 (sdv_ivi_cf),并包含 Display Safety 的 DriverUI 和仪表板实现。

构建 AAOS SDV

运行以下命令以构建目标。根据工作站的规范,首次构建需要 30 到 60 分钟。后续构建所需的时间会显著缩短。

m

build 的输出会显示在 $OUT_DIR 中。如果您构建不同的目标,则每个目标 build 都会显示在 $OUT_DIR 中。

使用 Cuttlefish 测试 build

构建 AAOS SDV 后,请使用 Cuttlefish 测试 build。

  1. 如需使用 build 启动 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 以验证 build 是否正在运行。系统会显示类似以下内容的结果:

    List of devices attached
    0.0.0.0:6520 device
  4. 运行 cvd stop 以关机。

如需使用不同的 build 运行多个 Cuttlefish 实例,请参阅 Cuttlefish: 多租户

问题排查

本部分介绍了如何排查在下载、构建或运行 AAOS SDV 期间可能发生的错误。

RBE 错误

如果遇到任何远程构建执行 (RBE) 错误,请从 .bashrc.zshrc 中移除 USE_RBEENABLE_RBE_BOOTSTRAP 的定义

cvd:此机器不支持虚拟机管理器 crosvm

如果 Cuttlefish 报告您的机器不支持虚拟机管理器 crosvm,请运行以下命令以安装 Cuttlefish:

sudo apt install cuttlefish-common

找不到 cvd

如果您收到 cvd not found 错误,请执行以下操作:

  1. 重新设置构建
  2. 继续执行选择目标

Cuttlefish 崩溃循环

如果 Cuttlefish 进入崩溃循环,请执行以下操作:

  1. 如需停止所有 Cuttlefish 实例,请运行 cvd stop
  2. 使用 Cuttlefish 重新测试 build