「裝置樹狀結構 (DT)」是具名節點和屬性的資料結構, 說明「不供探索」的硬體。核心,例如 Linux 核心 ,您可以運用 DT 來支援使用的各種硬體設定 在 Android 系統的裝置上運作硬體供應商自行提供裝置樹狀結構 來源 (DTS) 檔案,並編譯成裝置樹狀 blob (DTB) 檔案 使用裝置樹狀結構編譯器。這些檔案會用於 系統啟動載入程式。DTB 檔案包含二進位格式的扁平化裝置樹狀結構。
裝置樹狀結構疊加層 (DTO) 讓中央 DTB 在 DT 上重疊 (在裝置樹狀結構的 blob 用於重疊圖層 (DTBO)。使用 DTO 的系統啟動載入程式可持續維護晶片系統 (SoC) DT 和動態疊加裝置專屬的 DT,在樹狀結構中新增節點 以及變更現有樹狀結構的屬性
Android 9 版本更新
在 Android 9 中,系統啟動載入程式不得修改 ,然後再將統一的 DTB 傳遞至核心。
載入 DT
在系統啟動載入程式中載入 DT,包括建構、分區及執行。
圖 1. 在系統啟動載入程式中載入裝置樹狀結構的典型實作方式。
如何建立及刷新 DTB:
1a. 使用 DTC (
dtc
) 將 DTS (.dts
) 編譯為 DTB (.dtb
)。 DTB 採用扁平化的 DT 格式。 1b.將.dtb
檔案刷新至系統啟動載入程式執行階段可存取的位置 (詳述如下)。如要進行分區,請決定系統啟動載入程式執行階段可以存取且受信任位置 放入快閃記憶體中放置
.dtb
範例地點圖 2. 將 .dtb 放入啟動分區,方法是
附加至 image.gz,並以「kernel」形式傳遞
開啟 mkbootimg圖 3. 將 .dtb 放入不重複的分區
(例如 dtb 分區)。如要載入 DTB 並啟動核心:
- 將
.dtb
從儲存空間載入記憶體。 - 使用所載入 DT 的記憶體位址啟動核心。
- 將
後續步驟
本頁說明載入 DT 的一般系統啟動載入程式工作流程,並提供 「DT」常用詞彙清單本節其他頁面說明如何 導入系統啟動載入程式支援功能,以便瞭解如何 編譯、驗證及 改善 DTO,以及如何 使用多個 DT。你可以 也會取得 DTO 語法和 必選 DTO 和 DTBO 分區格式設定。