硬體測試指南

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

本指南的目標對象

本指南假設您已熟悉硬體和低階軟體開發作業。

總覽

本指南中的所有 Fuchsia 硬體測試工作流程均假設您的 Fuchsia 裝置連線至「測試主機」。測試主機是執行 Linux 或 Windows 的筆電或桌機。如要測試 Fuchsia 裝置的硬體子系統,您可以在測試主機上執行 adb shell gpioutil list 等指令。指令的第一部分 adb shell傳輸系統,可處理測試主機和 Fuchsia 裝置之間的通訊。指令的第二個部分 gpioutil list測試工具,可實際在 Fuchsia 裝置上練習或查詢硬體子系統。

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

支援的設定

測試主機的作業系統會決定您可以使用的傳輸系統。舉例來說,Windows 目前僅支援 adb。下表列出支援的測試主機作業系統和傳輸系統組合:

測試主機 OS ffx adb UART
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 可以是 Fuchsia ADB Daemon,或任何與函式驅動程式庫通訊的任何其他 Daemon。

執行指令

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

不同傳輸系統之間的主要差異:能力

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

大部分 Fuchsia 通常會預期典型的 115200 8N1 UART 設定。如要將指令從測試主機傳送至 Fusia 裝置,您需要使用序列控制台,例如 minicomfx serial

adb

如果 Fuchsia 映像檔包含 adb,您就可以使用 adb 將指令從測試主機傳送至 Fuchsia 裝置。

如要啟動互動式殼層,請按照下列步驟操作:

adb shell

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

adb shell 'gpioutil list'

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

硬體測試工具清單

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

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