從 DFv1 遷移至 DFv2 驅動程式庫

本手冊提供指南、最佳做法、範例和參考資料,協助您將現有的舊版 DFv1 驅動程式 (儲存在 Fuchsia 來源存放區 (fuchsia.git) 中) 遷移至新的驅動程式架構 (DFv2)。

事前準備

開始進行驅動程式庫遷移作業前,請先詳閱 DFv2 相關的重要概念,並熟悉 DFv1 驅動程式庫的單元測試和整合測試。

DFv1 和 DFv2 的主要差異

DFv2 可讓 Fuchsia 驅動程式成為完全的使用者空間元件。如同其他 Fuchsia 元件,DFv2 驅動程式庫會向系統中的其他元件和驅動程式公開及接收 FIDL 功能。

請注意 DFv1 和 DFv2 之間的下列主要差異:

  • DFv1:驅動程式不是元件。Banjo 通訊協定用於驅動程式庫之間的通訊。驅動程式主機介面或 DDK (Driver Development Kit) 包裝函式可用於管理驅動程式的生命週期。

  • DFv2:驅動程式是元件。FIDL 可用於所有通訊,包括駕駛員和非駕駛員之間的通訊。驅動程式庫架構會管理驅動程式的生命週期。

詳情請參閱「DFv1 與 DFv2 的比較」。

預期結果

以下是完成 DFv2 遷移後,驅動程式預期的狀態:

  • 您可以使用 DFv2 驅動程式管理工具註冊驅動程式。
  • 驅動程式可以繫結至系統中的裝置節點
  • 系統中的其他 Fuchsia 元件和驅動程式可以使用驅動程式庫的功能。
  • Fuchsia 裝置可以透過含有驅動程式庫的產品映像檔進行刷新。
  • 此驅動程式庫會通過所有現有的單元測試和整合測試。

驅動程式遷移教戰手冊

本手冊旨在以線性方式引導您完成遷移作業,並分為以下兩個階段:

  1. 從 DFv1 遷移至 DFv2:將驅動程式庫的舊版 DDK 介面和其他服務更新為 DFv2。
  2. 從 Banjo 遷移至 FIDL:將驅動程式庫使用的 Banjo 通訊協定更新為 FIDL,即可完成遷移。

不過請注意,視驅動程式庫的功能或設定而定,您可能需要完成本手冊未涵蓋的其他工作。

擴充功能

我們新增了下列指南,以支援先前在 Playbook 中缺少的工作: