Gerätebaum-Overlays

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

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.

Abbildung 1. Typische Implementierung zum Laden des Gerätebaums im Bootloader.
  1. 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).
  2. 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 an image.gz und als " kernel " an mkbootimg .
    Eindeutige Partition
    Abbildung 3. Legen Sie .dtb in eine eindeutige Partition (z. B. dtb Partition).
  3. Laufen:
    • Laden .dtb aus dem Speicher in den Speicher.
    • Starten Sie den Kernel mit der Speicheradresse des geladenen DT.

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