Ein Gerätebaum (DT) ist eine Datenstruktur aus benannten Knoten und Eigenschaften, die nicht erkennbare Hardware beschreiben. Betriebssysteme wie der in Android verwendete Linux-Kernel verwenden DTs, um eine Vielzahl von Hardwarekonfigurationen zu unterstützen, die von Android-Geräten verwendet werden. Hardwareanbieter liefern ihre eigenen DT-Quelldateien, die Linux dann in die vom Bootloader verwendete Device Tree Blob (DTB)-Datei kompiliert.
Ein Gerätebaum-Overlay (DTO) ermöglicht das Überlagern eines zentralen Gerätebaum-Blobs (DTB) auf dem Gerätebaum. Ein Bootloader, der DTO verwendet, kann die System-on-Chip (SoC)-DT verwalten und eine gerätespezifische DT dynamisch überlagern, Knoten zum Baum hinzufügen und Änderungen an Eigenschaften im vorhandenen Baum vornehmen.
Diese Seite beschreibt einen typischen Bootloader-Workflow zum Laden eines DT und bietet eine Liste gängiger DT-Begriffe. Auf anderen Seiten in diesem Abschnitt wird beschrieben, wie Sie die Bootloader-Unterstützung für DTO implementieren, wie Sie Ihre DTO-Implementierung kompilieren , überprüfen und optimieren und wie Sie mehrere DTs verwenden . Sie können auch Einzelheiten zur DTO-Syntax und zur erforderlichen DTO/DTBO-Partitionsformatierung abrufen .
Aktualisierungen in der Android 9-Version
In Android 9 darf der Bootloader die in den Überlagerungen der Gerätestruktur definierten Eigenschaften nicht ändern, bevor er das vereinheitlichte Gerätestruktur-Blob an den Kernel weitergibt.
Laden eines Gerätebaums
Das Laden eines Gerätebaums im Bootloader umfasst das Erstellen, Partitionieren und Ausführen.

- Bauen:
- Verwenden Sie den Gerätebaum-Compiler (
dtc
), um die Gerätebaumquelle (.dts
) in ein Gerätebaum-Blob (.dtb
) zu kompilieren, das als vereinfachter Gerätebaum formatiert ist. - Flashen Sie die
.dtb
-Datei in einen Speicherort, auf den die Bootloader-Laufzeit zugreifen kann (siehe unten).
- Verwenden Sie den Gerätebaum-Compiler (
- Bestimmen Sie zum Partitionieren einen für die Bootloader-Laufzeit zugänglichen und vertrauenswürdigen Speicherort im Flash-Speicher, um
.dtb
. Beispielstandorte:Boot-Partition Abbildung 2. Fügen Sie .dtb
in die Bootpartition ein, indem Sie es animage.gz
und als "kernel
" anmkbootimg
.Eindeutige Partition Abbildung 3. Legen Sie .dtb
in eine eindeutige Partition (z. B.dtb
Partition). - Laufen:
- Laden
.dtb
aus dem Speicher in den Speicher. - Starten Sie den Kernel mit der Speicheradresse des geladenen DT.
- Laden
Terminologie
In diesem Abschnitt werden die folgenden Gerätebaumbegriffe verwendet:
DT | Gerätebaum |
---|---|
DTB | Gerätebaum-Blob |
DTBO | Gerätebaum-Blob für Overlay |
Fehlercode | Gerätebaum-Compiler |
DTO | Gerätebaum-Overlay |
DTS | Gerätebaumquelle |
FDT | Flattened Device Tree, ein binäres Format, das in einer .dtb -BLOB-Datei enthalten ist |