本指南介绍了测试实体 Fuchsia 设备的硬件子系统的方法。
本指南的目标受众群体
本指南假定您熟悉硬件和底层软件开发。
概览
本指南中的所有 Fuchsia 硬件测试工作流都假定您的 Fuchsia 设备已连接到测试主机。测试主机是运行 macOS、Linux 或 Windows 的笔记本电脑或桌面设备。如需测试 Fuchsia 设备的硬件子系统,请在测试主机上运行 adb shell gpioutil list
等命令。命令的第一部分 adb shell
是用于处理测试主机与 Fuchsia 设备之间通信的传输系统。命令的第二部分 gpioutil list
是一个测试工具,用于实际执行或查询 Fuchsia 设备上的硬件子系统。
支持的设置
测试主机的操作系统决定了您可以使用哪些传输系统。例如,Windows 目前仅支持 adb
。下表显示了支持的测试主机操作系统和传输系统的组合:
测试主机操作系统 | ffx |
adb |
UART |
---|---|---|---|
macOS | |||
Linux | |||
Windows |
传输系统决定了您可以在测试主机和目标设备之间使用哪种类型的物理连接。例如,adb
要求在测试主机和 Fuchsia 设备之间建立 USB 连接。Fuchsia 设备的硬件布局还决定了您可以使用的传输系统。例如,如果您的 Fuchsia 设备未公开 GND、TX 和 RX 引脚,则您无法使用 UART。
配置 Fuchsia build 以进行硬件测试
本部分为需要通过从源代码启用的硬件测试工具构建 Fuchsia 映像的人员提供指导。如果您已拥有包含所需工具的 Fuchsia 映像,则可以跳过本部分。
从源代码构建 Fuchsia
如果您从未通过源代码构建过 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 守护程序,也可以是其他任何与函数驱动程序进行通信的守护程序。
正在运行的命令
如概览中所述,您可以通过 ffx
、adb
或 UART 等传输系统将命令从测试主机发送到 Fuchsia 设备。本部分详细介绍了如何使用各个传输系统运行命令。
传输系统之间的主要区别:功能
ffx
中提供的功能取决于您要探索的组件。adb
和 UART 中提供的功能由 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 设备,您需要一个串行控制台,如 minicom
或 fx 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 | |
灯 |