本指南說明如何測試 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 版本以進行硬體測試
本節提供的指導方針適用於需要使用從原始來源啟用的硬體測試工具,建構 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 函式驅動程式和守護程序。這個守護程式可以是 Fuchsia adb 守護程式,或是任何與函式驅動程式庫通訊的其他守護程式。
執行指令
如總覽所述,您可以透過 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
大部分 Fuchsia
通常會預期典型的 115200 8N1 UART 設定。如要從測試主機將指令傳送至 Fuchsia 裝置,您需要 minicom
或 fx serial
等序列主控台。
adb
如果 Fuchsia 映像檔包含 adb
,您就可以使用 adb
將指令從測試主機傳送至 Fuchsia 裝置。
如要啟動互動式殼層,請按照下列步驟操作:
adb shell
如要執行單一指令 (例如 gpioutil list
):
adb shell 'gpioutil list'
adb
僅在設計上部分支援 Fuchsia。如需支援和不支援的詳細資訊,請參閱 RFC-0200。如需有關在 Fuchsia 中使用 adb
的詳細指南,請參閱 //src/developer/adb/bin/README.md
。
硬體測試工具清單
下表列出可用於測試 Fuchsia 裝置上各種硬體子系統的特定工具。
硬體子系統 | 工具 |
---|---|
音訊 | |
GPIO | |
I2C | |
燈光 |