硬件测试指南

本指南介绍了测试实体 Fuchsia 设备的硬件子系统的方法。

本指南的目标受众群体

本指南假定您熟悉硬件和底层软件开发。

概览

本指南中的所有 Fuchsia 硬件测试工作流都假定您的 Fuchsia 设备已连接到测试主机。测试主机是运行 macOS、Linux 或 Windows 的笔记本电脑或桌面设备。如需测试 Fuchsia 设备的硬件子系统,请在测试主机上运行 adb shell gpioutil list 等命令。命令的第一部分 adb shell 是用于处理测试主机与 Fuchsia 设备之间通信的传输系统。命令的第二部分 gpioutil list 是一个测试工具,用于实际执行或查询 Fuchsia 设备上的硬件子系统。

`adb shell gpioutil list` 工作流的序列图。

支持的设置

测试主机的操作系统决定了您可以使用哪些传输系统。例如,Windows 目前仅支持 adb。下表显示了支持的测试主机操作系统和传输系统的组合:

测试主机操作系统 ffx adb UART
macOS
Linux
Windows

传输系统决定了您可以在测试主机和目标设备之间使用哪种类型的物理连接。例如,adb 要求在测试主机和 Fuchsia 设备之间建立 USB 连接。Fuchsia 设备的硬件布局还决定了您可以使用的传输系统。例如,如果您的 Fuchsia 设备未公开 GND、TX 和 RX 引脚,则您无法使用 UART。

配置 Fuchsia build 以进行硬件测试

本部分为需要通过从源代码启用的硬件测试工具构建 Fuchsia 映像的人员提供指导。如果您已拥有包含所需工具的 Fuchsia 映像,则可以跳过本部分。

从源代码构建 Fuchsia

如果您从未通过源代码构建过 Fuchsia,并且需要有关基本工作流的帮助,请参阅以下教程:

  1. 下载源代码
  2. 配置和构建 Fuchsia

在 build 中添加硬件测试工具

如果您尝试运行硬件测试工具(例如 gpioutil)并收到 not found 错误,这可能意味着您在构建 Fuchsia 映像时未启用硬件测试工具。示例:

-v: 1: gpioutil: not found

如需解决此问题,请尝试将 --with-base //bundles/tools 添加到 fx set 调用中:

fx set PRODUCT.BOARD --with-base '//bundles/tools'

--with-base 选项会将 //bundles/tools/BUILD.gn 中列出的所有依赖项添加为 Fuchsia 映像中的“基础软件包”。Fuchsia 的大多数硬件测试工具都包含在此软件包中。

直接添加单个工具

如果 //bundles/tools/BUILD.gn 中未列出您需要的硬件测试工具,请尝试将 --with-base 值设置为硬件测试工具的 BUILD.gn 文件的路径。例如,gpioutil build 文件位于 //src/devices/gpio/bin/gpioutil/BUILD.gn。您可以使用以下 fx set 命令直接将 gpioutil 添加为基础软件包:

fx set PRODUCT.BOARD --with-base '//src/devices/gpio/bin/gpioutil'

您可以根据需要多次重复 --with-base 选项:

fx set PRODUCT.BOARD \
    --with-base '//src/devices/gpio/bin/gpioutil' \
    --with-base '//src/media/audio/tools/audio-driver-ctl'

包含 adb

如需在 Fuchsia 映像中启用 adb,您需要添加 adb 函数驱动程序和守护程序。该守护程序可以是 Fuchsia adb 守护程序,也可以是其他任何与函数驱动程序进行通信的守护程序。

正在运行的命令

概览中所述,您可以通过 ffxadb 或 UART 等传输系统将命令从测试主机发送到 Fuchsia 设备。本部分详细介绍了如何使用各个传输系统运行命令。

传输系统之间的主要区别:功能

capabilities

ffx 中提供的功能取决于您要探索的组件。adbUART 中提供的功能由 console-launcher 决定,后者是为这些 shell 提供支持的底层组件。

FFX

ffx 是 Fuchsia 的主要工具,用于进行宿主-目标互动。

如需启动交互式 shell,请执行以下操作:

ffx component explore COMPONENT -l namespace

如需运行单个命令(例如 gpioutil list),请运行以下命令:

ffx component explore COMPONENT -l namespace -c 'gpioutil list'

UART

他们通常希望使用典型的 115200 8N1 UART 配置。如需将命令从测试主机发送到 Fuchsia 设备,您需要一个串行控制台,如 minicomfx serial

adb

如果您的 Fuchsia 映像包含 adb,则您可以使用 adb 将命令从测试主机发送到 Fuchsia 设备。

如需启动交互式 shell,请执行以下操作:

adb shell

如需运行单个命令(例如 gpioutil list),请运行以下命令:

adb shell 'gpioutil list'

Fuchsia 从设计上只对 adb 提供部分支持。如需详细了解支持的功能和不支持的功能,请参阅 RFC-0200。如需详细了解如何将 adb 与 Fuchsia 搭配使用,请参阅 //src/developer/adb/bin/README.md

硬件测试工具列表

下表介绍了一些特定工具,您可以使用这些工具测试您在 Fuchsia 设备上测试的各种硬件子系统。

硬件子系统 工具
音频
GPIO
I2C