Nakładki drzewa urządzeń

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Drzewo urządzeń (DT) to struktura danych z nazwanymi węzłami i właściwościami, które opisują niewykrywalny sprzęt. Systemy operacyjne, takie jak jądro Linux używane w systemie Android, używają DTs do obsługi szerokiej gamy konfiguracji sprzętowych używanych przez urządzenia z systemem Android. Dostawcy sprzętu dostarczają własne pliki źródłowe DT, które Linux następnie kompiluje do pliku Device Tree Blob (DTB) używanego przez bootloader.

Nakładka drzewa urządzeń (DTO) umożliwia nałożenie centralnego obiektu BLOB drzewa urządzeń (DTB) na drzewo urządzeń. Program ładujący używający DTO może utrzymywać ID systemu na chipie (SoC) i dynamicznie nakładać ID specyficzne dla urządzenia, dodając węzły do ​​drzewa i dokonując zmian we właściwościach w istniejącym drzewie.

Ta strona zawiera szczegółowe informacje na temat typowego przepływu pracy programu ładującego służącego do ładowania identyfikatora i zawiera listę popularnych terminów dotyczących identyfikatora. Inne strony w tej sekcji opisują jak zaimplementować obsługę bootloadera dla DTO , jak kompilować , weryfikować i optymalizować implementację DTO oraz jak używać wielu DT . Możesz również uzyskać szczegółowe informacje na temat składni DTO i wymaganego formatowania partycji DTO/DTBO .

Aktualizacje w wersji Androida 9

W systemie Android 9 program ładujący nie może modyfikować właściwości zdefiniowanych w nakładkach drzewa urządzeń przed przekazaniem obiektu BLOB ujednoliconego drzewa urządzeń do jądra.

Ładowanie drzewa urządzeń

Ładowanie drzewa urządzeń w bootloaderze obejmuje budowanie, partycjonowanie i uruchamianie.

Rysunek 1. Typowa implementacja ładowania drzewa urządzeń w bootloaderze.
  1. Budować:
    • Użyj kompilatora drzewa urządzeń ( dtc ) do skompilowania źródła drzewa urządzeń ( .dts ) do obiektu BLOB drzewa urządzeń ( .dtb ) sformatowanego jako spłaszczone drzewo urządzeń.
    • .dtb plik .dtb w lokalizacji dostępnej dla środowiska uruchomieniowego programu rozruchowego (szczegóły poniżej).
  2. Aby podzielić na partycje, określ zaufaną lokalizację dostępną dla środowiska uruchomieniowego programu rozruchowego w pamięci flash, aby umieścić .dtb . Przykładowe lokalizacje:
    Partycja rozruchowa
    Rysunek 2. Umieść .dtb na partycji startowej, dołączając do image.gz i przekazując jako " kernel " do mkbootimg .
    Unikalna partycja
    Rysunek 3. Umieść .dtb w unikalnej partycji (np. partycja dtb ).
  3. Biegać:
    • Załaduj .dtb z magazynu do pamięci.
    • Uruchom jądro podając adres pamięci załadowanego identyfikatora.

Terminologia

W tej sekcji zastosowano następujące terminy drzewa urządzeń:

DT Drzewo urządzeń
DTB Obiekt BLOB drzewa urządzeń
DTBO Obiekt BLOB drzewa urządzeń dla nakładki
DTC Kompilator drzewa urządzeń
DTO Nakładka drzewa urządzeń
DTS Źródło drzewa urządzeń
FDT Spłaszczone drzewo urządzeń, format binarny zawarty w pliku blob .dtb