硬體測試指南

本指南說明如何測試實體 Fuchsia 裝置的硬體子系統。

本指南的目標對象

本指南假設您已熟悉硬體和低層級軟體開發流程。

總覽

本指南中的所有 Fuchsia 硬體測試工作流程假設 Fuchsia 裝置已連接至測試主機。測試主機是執行 macOS、Linux 或 Windows 的筆記型電腦或桌上型電腦。如要測試 Fuchsia 裝置的硬體子系統,請在測試主機上執行 adb shell gpioutil list 這類指令。指令的第一個部分是 adb shell,是處理測試主機與 Fuchsia 裝置之間的通訊的傳輸系統。指令的第二部分是 gpioutil list,是用來在 Fuchsia 裝置上實際運動或查詢硬體子系統的測試工具

「ADB 殼層 gpioutil list」工作流程的序列圖表。

支援的設定

您可使用的傳輸系統取決於測試主機的 OS。例如,目前 Windows 僅支援 adb。下表列出支援的測試主機 OS 和傳輸系統組合:

測試主機作業系統 ffx adb UART
macOS
Linux
Windows

傳輸系統會決定測試主機和目標裝置之間可使用的實體連線類型。例如,adb 需要測試主機和 Fuchsia 裝置之間的 USB 連線。Fuchsia 裝置的硬體配置也會決定您可使用的傳輸系統。舉例來說,如果您的 Fuchsia 裝置並未公開 GND、TX 和 RX 接腳,您就無法使用 UART。

設定 Fuchsia 版本以進行硬體測試

本節說明如何透過從原始碼啟用的硬體測試工具建構 Fuchsia 映像檔的使用者。如果您已有包含所需工具的 Fuchsia 映像檔,可以略過這部分。

從原始碼建構 Fuchsia

如果您從未從來源建構 Fuchsia,且需要基本工作流程的協助,請參閱下列教學課程:

  1. 下載原始碼
  2. 設定及建構 Fuchsia

在版本中加入硬體測試工具

如果您嘗試執行硬體測試工具 (例如 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 建構檔案位於 //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 函式驅動程式和 Daemon。Daemon 可以是 Fuchsia adb Daemon,或其他與函式驅動程式庫對話的 Daemon。

執行指令

總覽一文所述,您需要透過 ffxadb 或 UART 等傳輸系統,從測試主機將指令傳送至 Fuchsia 裝置。本節將詳細說明如何使用每個傳輸系統執行指令。

運輸系統之間的主要差異如下:功能

功能 capabilities

ffx 提供的功能取決於您正在探索的元件。adbUART 提供的功能取決於 console-launcher,這是啟動這些殼層的基礎元件。

ffx

ffx 是 Fuchsia 的主機目標互動主要工具。

如要啟動互動殼層:

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 裝置。

如要啟動互動殼層:

adb shell

如要執行單一指令 (例如 gpioutil list):

adb shell 'gpioutil list'

Fuchsia 在設計上僅支援部分 adb。如要進一步瞭解哪些支援和不支援功能,請參閱 RFC-0200。如要進一步瞭解如何將 adb 與 Fuchsia 搭配使用,請參閱 //src/developer/adb/bin/README.md

硬體測試工具清單

下表將列出可用來測試 Fuchsia 裝置上各種硬體子系統的特定工具。

硬體子系統 工具
音訊
GPIO
I2C
燈具