本指南說明如何測試 Fuchsia 實體裝置的硬體子系統。
本指南的目標對象
本指南假設您已熟悉硬體和低階軟體開發作業。
總覽
本指南中的所有 Fuchsia 硬體測試工作流程均假設您的 Fuchsia 裝置連線至「測試主機」。測試主機是執行 Linux 或 Windows 的筆電或桌機。如要測試 Fuchsia 裝置的硬體子系統,您可以在測試主機上執行 adb shell gpioutil list
等指令。指令的第一部分 adb shell
是傳輸系統,可處理測試主機和 Fuchsia 裝置之間的通訊。指令的第二個部分 gpioutil list
是測試工具,可實際在 Fuchsia 裝置上練習或查詢硬體子系統。
支援的設定
測試主機的作業系統會決定您可以使用的傳輸系統。舉例來說,Windows 目前僅支援 adb
。下表列出支援的測試主機作業系統和傳輸系統組合:
測試主機 OS | ffx |
adb |
UART |
---|---|---|---|
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 可以是 Fuchsia ADB Daemon,或任何與函式驅動程式庫通訊的任何其他 Daemon。
執行指令
如總覽中所述,您會透過 ffx
、adb
或 UART 等傳輸系統,將指令從測試主機傳送至 Fuchsia 裝置。本節將詳細說明如何透過各個傳輸系統執行指令。
不同傳輸系統之間的主要差異:能力
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
大部分 Fuchsia
通常會預期典型的 115200 8N1 UART 設定。如要將指令從測試主機傳送至 Fusia 裝置,您需要使用序列控制台,例如 minicom
或 fx 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 | |
燈光 |