硬件测试指南

本指南介绍了测试实体 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. 配置和构建 Fuchsia

在 build 中添加硬件测试工具

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

-v: 1: gpioutil: not found

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

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

大多数 Fuchsia 开发板 它们通常采用典型的 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
灯光