本指南說明如何測試實體 Fuchsia 裝置的硬體子系統。
本指南的目標對象
本指南假設您已熟悉硬體和低層級軟體開發流程。
總覽
本指南中的所有 Fuchsia 硬體測試工作流程假設 Fuchsia 裝置已連接至測試主機。測試主機是執行 macOS、Linux 或 Windows 的筆記型電腦或桌上型電腦。如要測試 Fuchsia 裝置的硬體子系統,請在測試主機上執行 adb shell gpioutil list
這類指令。指令的第一個部分是 adb shell
,是處理測試主機與 Fuchsia 裝置之間的通訊的傳輸系統。指令的第二部分是 gpioutil list
,是用來在 Fuchsia 裝置上實際運動或查詢硬體子系統的測試工具。
支援的設定
您可使用的傳輸系統取決於測試主機的 OS。例如,目前 Windows 僅支援 adb
。下表列出支援的測試主機 OS 和傳輸系統組合:
測試主機作業系統 | ffx |
adb |
UART |
---|---|---|---|
macOS | |||
Linux | |||
Windows |
傳輸系統會決定測試主機和目標裝置之間可使用的實體連線類型。例如,adb
需要測試主機和 Fuchsia 裝置之間的 USB 連線。Fuchsia 裝置的硬體配置也會決定您可使用的傳輸系統。舉例來說,如果您的 Fuchsia 裝置並未公開 GND、TX 和 RX 接腳,您就無法使用 UART。
設定 Fuchsia 版本以進行硬體測試
本節說明如何透過從原始碼啟用的硬體測試工具建構 Fuchsia 映像檔的使用者。如果您已有包含所需工具的 Fuchsia 映像檔,可以略過這部分。
從原始碼建構 Fuchsia
如果您從未從來源建構 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。
執行指令
如總覽一文所述,您需要透過 ffx
、adb
或 UART 等傳輸系統,從測試主機將指令傳送至 Fuchsia 裝置。本節將詳細說明如何使用每個傳輸系統執行指令。
運輸系統之間的主要差異如下:功能
功能 capabilities
ffx
提供的功能取決於您正在探索的元件。adb
和 UART 提供的功能取決於 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 裝置,您需要序列控制台,例如 minicom
或 fx 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 | |
燈具 |