Ein Gerätebaum (Device Tree, DT) ist eine Datenstruktur aus benannten Knoten und Attributen, die nicht erkennbare Hardware beschreiben. Kernel wie der in Android verwendete Linux-Kernel verwenden Gerätebäume, um eine Vielzahl von Hardwarekonfigurationen zu unterstützen, die von Android-Geräten verwendet werden. Hardwareanbieter liefern eigene Gerätebaum-Quelldateien (Device Tree Source, DTS) , die mit dem Gerätebaum-Compiler (Device Tree Compiler) in die Gerätebaum-Blob-Datei (Device Tree Blob, DTB) kompiliert werden. Diese Dateien werden dann vom Bootloader verwendet. Die DTB-Datei enthält einen binär formatierten vereinfachten Gerätebaum.
Ein Gerätebaum-Overlay (Device Tree Overlay, DTO) ermöglicht das Überlagern eines zentralen DTB auf dem DT (ein Gerätebaum-Blob für Overlay (Device Tree Blob for Overlay, DTBO)). Ein Bootloader, der DTO verwendet, kann den DT des System-on-a-Chip (SoC) beibehalten und dynamisch einen gerätespezifischen DT überlagern, Knoten zum Baum hinzufügen und Änderungen an Attributen im vorhandenen Baum vornehmen.
Updates in Android 9
In Android 9 darf der Bootloader die in den DTOs definierten Attribute nicht ändern, bevor er den vereinheitlichten DTB an den Kernel übergibt.
Gerätebaum laden
Das Laden eines Gerätebaums im Bootloader umfasst das Erstellen, Partitionieren und Ausführen.

Abbildung 1 : Typische Implementierung zum Laden eines Gerätebaums im Bootloader
So erstellen und flashen Sie den DTB:
1a. Verwenden Sie den DTC (
dtc), um DTS (.dts) in einen DTB (.dtb) zu kompilieren. Der DTB ist als vereinfachter DT formatiert. 1b. Flashen Sie die Datei.dtban einen Speicherort, der für den Bootloader während der Laufzeit erreichbar ist (siehe unten).Legen Sie zum Partitionieren im Flash-Speicher einen Speicherort fest, der für den Bootloader während der Laufzeit erreichbar ist und der vertrauenswürdig ist, um die Datei
.dtbdort abzulegen. Beispieladressen:
Abbildung 2 : Legen Sie die Datei ` .dtb` in einer Boot-Partition ab, indem Sie sie an
`image.gz` anhängen und als
"kernel" an `mkbootimg` übergeben.
Abbildung 3 : Legen Sie die Datei `.dtb` in einer speziellen Partition ab
(z. B. einer DTB-Partition).So laden Sie den DTB und starten den Kernel:
- Laden Sie die Datei
.dtbvom Speicherort in den Arbeitsspeicher. - Starten Sie den Kernel mit der Adresse des Arbeitsspeichers, in dem sich der geladene Gerätebaum befindet.
- Laden Sie die Datei
Nächste Schritte
Auf dieser Seite wird ein typischer Bootloader-Workflow zum Laden eines Gerätebaums beschrieben und eine Liste häufig verwendeter Gerätebaum-Begriffe bereitgestellt. Auf anderen Seiten in diesem Abschnitt wird beschrieben, wie Sie die Bootloader-Unterstützung implementieren, wie Sie Ihr DTO kompilieren, überprüfen und optimieren und wie Sie mehrere Gerätebäume verwenden. Außerdem finden Sie hier Details zur DTO-Syntax und zur erforderlichen Formatierung der DTO- und DTBO-Partitionen.