硬件测试指南

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

本指南的目标受众

本指南假定您熟悉硬件和低级软件开发。

概览

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

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

支持的设置

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

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

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

配置 Fuchsia build 以进行硬件测试

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

通过源代码构建 Fuchsia

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

  1. 下载源代码
  2. 配置和 build 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 设备。本部分详细介绍了如何使用每种传输系统运行命令。

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

为每个传输系统提供支持的底层组件会影响您可使用的功能。不同的组件会公开不同的功能。 功能 <0

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

大多数 Fuchsia 支持 3 针 (TX、RX、GND) 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。如需详细了解如何在 Fuchsia 中使用 adb,请参阅 //src/developer/adb/bin/README.md

硬件测试工具列表

下表列出了可用于测试 Fuchsia 设备上各种硬件子系统的具体工具。

硬件子系统 工具
音频
GPIO
I2C
灯光