本指南介绍了测试实体 Fuchsia 设备的硬件子系统的方法。
本指南的目标受众
本指南假定您熟悉硬件和低级软件开发。
概览
本指南中的所有 Fuchsia 硬件测试工作流都假定您的 Fuchsia 设备已连接到测试主机。测试主机是一台运行 Linux 或 Windows 的笔记本电脑或台式机。如需测试 Fuchsia 设备的硬件子系统,您可以在测试主机上运行 adb shell gpioutil list
等命令。该命令的第一部分 adb shell
是用于处理测试主机与 Fuchsia 设备之间通信的传输系统。命令的第二部分 gpioutil list
是实际运行或查询 Fuchsia 设备上硬件子系统的测试工具。
支持的设置
测试主机的操作系统决定了您可以使用哪些传输系统。例如,目前 Windows 上仅支持 adb
。下表显示了支持的测试主机操作系统和传输系统组合:
测试主机操作系统 | ffx |
adb |
UART |
---|---|---|---|
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
如需解决此问题,请尝试向 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 守护程序,也可以是与函数驱动程序通信的任何其他守护程序。
运行命令
如概览中所述,您可以通过 ffx
、adb
或 UART 等传输系统将命令从测试主机发送到 Fuchsia 设备。本部分详细介绍了如何使用每种传输系统运行命令。
交通系统之间的一个关键区别:功能
为每种交通系统提供支持的底层技术会影响您可以使用哪些功能。不同的组件会公开不同的 capabilities
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
大多数 Fuchsia
开发板
它们通常采用典型的 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 | |
灯光 |