Drogenhändlerringe implementieren

Bei der Implementierung von Device Tree Overlays (DTOs) wird der Device Tree (DT) geteilt, Partitionierung und Ausführung. Wenn Sie über eine funktionierende Implementierung verfügen, müssen Sie auch Kompatibilität zwischen den beiden DTs und eine Strategie, um sicherzustellen, Sicherheit jeder DT-Partition.

DT dividieren

Beginnen Sie mit der Unterteilung des DT in zwei Teile:

  • Main DT: Der SoC-Teil und die Standardkonfigurationen vom SoC-Anbieter bereitgestellt.
  • Overlay-DT: Die gerätespezifischen Konfigurationen, die von ODM/OEM.

Nach der Aufteilung der DTs müssen Sie die Kompatibilität zwischen den Haupt- DT und Overlay-DT, sodass das Zusammenführen von Haupt-DT und Overlay-DT zu einer vollständigen DT für das Gerät. Weitere Informationen zum Format und zu den Regeln für DTOs finden Sie unter DTO-Syntax. Weitere Informationen zu mehrere DTs, siehe Mehrere DTs.

Haupt- und Overlay-DTs erstellen

So erstellen Sie den Haupt-DT:

  1. Kompilieren Sie den .dts-Haupt-DT in eine .dtb-Datei.
  2. .dtb-Datei in eine Bootloader-Partition flashen, auf die über die Laufzeit zugegriffen werden kann (ausführlich in [Partition DTs](#partition)).

So erstellen Sie den Overlay-DT:

  1. Kompilieren Sie den Overlay-DT .dts in eine .dtbo-Datei. Während Dieses Dateiformat entspricht der .dtb-Datei als Format Flattened DT unterscheidet, unterscheidet sie sich durch die unterschiedliche Dateiendung Haupt-DT.
  2. .dtbo-Datei in eine Bootloader-Partition flashen, auf die über die Laufzeit zugegriffen werden kann (ausführlich in [Partition DTs](#partition)).

Weitere Informationen zur Kompilierung mit DTC und zum Überprüfen der DTO-Ergebnisse auf dem Host findest du unter Kompilieren Sie den Dienst und prüfen Sie ihn.

Partitions-DTs

Vertrauenswürdigen, über die Bootloader-Laufzeit zugänglichen und vertrauenswürdigen Speicherort in Flash bestimmen Speicher für .dtb und .dtbo.

Beispielorte für den Haupt-DT:

  • Teil der Bootpartition, der an den Kernel (image.gz) angehängt ist
  • Separate Datenübertragungs-BLOBs (.dtb) in dedizierter Partition (dtb)

Beispielorte für die Overlay-DT:

Abbildung 1: Legen Sie .dtbo-Dateien in einer eindeutigen Partition ab, z. B. einer dtbo-Partition.

Abbildung 2: Legen Sie die Datei .dtbo in eine OMD-Partition ab (nur wenn Ihr Bootloader die Möglichkeit, Daten aus dem Dateisystem einer ODM-Partition zu laden).

Hinweis:Die Größe des Felds Die Overlay-DT-Partition hängt vom Gerät und der des Haupt-DT-BLOBs. Normalerweise sind 8 MB mehr als ausreichend und bieten Platz bei Bedarf wachsen.

Für Geräte, die den nahtlose (A/B) Updates, A/B der DT-Hauptpartitionen und Overlay-DT-Partitionen:

Abbildung 3: DTBO-Partition A/B, Beispiel 1.

Abbildung 4: DTBO-Partition A/B, Beispiel 2.

Im Bootloader ausführen

So führen Sie Folgendes aus:

Abbildung 5: Typische Laufzeitimplementierung für DTO im Bootloader.

  1. .dtb aus dem Speicher in den Arbeitsspeicher laden.
  2. .dtbo aus dem Speicher in den Arbeitsspeicher laden.
  3. Überlagere .dtb mit .dtbo zu einer zusammengeführten Datenübertragung.
  4. Startet den Kernel mit der Speicheradresse des zusammengeführten DT.

Kompatibilität aufrechterhalten

Der Haupt-DTB (vom SoC-Anbieter) wird als API-Oberfläche für DTBOs behandelt. Nachher den DT in einen SoC-gemeinsamen Teil und einen gerätespezifischen Teil, müssen Sie in Zukunft darauf achten, dass die beiden Teile miteinander kompatibel sind. Dazu gehört Folgendes:

  • DT-Definition in Haupt-DT: Zum Beispiel Knoten, Attribute, Labels. Jede Definitionsänderung im Haupt-DT kann Änderungen im Overlay auslösen DT. Definieren Sie beispielsweise einen "Alias", um einen Knotennamen im Haupt-DT zu korrigieren. beschriften, die wird dem ursprünglichen Knotennamen zugeordnet (um die Änderung des Overlay-DT zu vermeiden).
  • Overlay-DT-Store-Standort. Zum Beispiel Partitionsname, Speicher Format.

Sicherheit gewährleisten

Bootloader muss sicherstellen, dass der DTB oder DTBO sicher, unverändert und unbeschädigt ist. Sie könnten jede beliebige Lösung zur Sicherung von DTB oder DTBO verwenden, z. B. Boot-Image Signatur in VBoot 1.0 oder AVB HASH-Fußzeile (VBoot 2.0)

  • Befindet sich DTB oder DTBO in einer eindeutigen Partition, können Sie diese Partition von AVB. Die Vertrauenskette beginnt auf einem hardwaregeschützten Stamm und geht an den Bootloader, der die Integrität und Authentizität DTB- oder DTBO-Partition.
  • DTB oder DTBO befindet sich in einer vorhandenen Partition (z. B. odm). Partition) sollte sich diese Partition in der Vertrauenskette von AVB befinden. (DTBO-Partition einen öffentlichen Schlüssel für die Partition odm freigeben.

Weitere Informationen finden Sie unter Verifiziert Starten: