Nakładki drzewa urządzeń

Drzewo urządzenia (DT) to struktura danych złożona z nazwanych węzłów i właściwości, które opisują sprzęt niewykrywalny. Rdzenie, takie jak jądro Linuksa używane w Androidzie, korzystają z DT, aby obsługiwać szeroki zakres konfiguracji sprzętowych używanych przez urządzenia z Androidem. Dostawcy sprzętu dostarczają własne pliki źródłowe drzewa urządzenia (DTS), które są kompilowane do pliku blob drzewa urządzenia (DTB) za pomocą kompilatora drzewa urządzenia. Te pliki są następnie używane przez bootloader. Plik DTB zawiera spłaszczone drzewo urządzeń w formacie binarnym.

Nakładka drzewa urządzenia (DTO) umożliwia nałożenie centralnego pliku DTB na plik DT (plik blob drzewa urządzenia). Program rozruchowy, który korzysta z DTO, może utrzymywać przenoszenie danych SOC i dynamicznie nakładać pliki przenoszenia danych właściwe dla danego urządzenia, dodając węzły do drzewa i wprowadzając zmiany we właściwościach w istniejącym drzewie.

Aktualizacje w wersji Androida 9

W Androidzie 9 bootloader nie może modyfikować właściwości zdefiniowanych w obiektach DTO przed przekazaniem zjednoczonej tabeli DTB do jądra.

Wczytywanie pliku DT

Wczytywanie DT w programie rozruchowym obejmuje kompilację, partycjonowanie i uruchamianie.

Rysunek 1. Typowa implementacja wczytywania drzewa urządzenia w programie rozruchowym.

  1. Aby utworzyć i zainstalować przenoszenie danych:

    1a. Użyj narzędzia DTC (dtc), aby skompilować DTS (.dts) w pliku DTB (.dtb). Plik DTB jest sformatowany jako spłaszczone drzewo urządzeń. 1b. Wgraj plik .dtb do lokalizacji dostępnej dla bootloadera w czasie wykonywania (szczegóły poniżej).

  2. Na potrzeby partycjonowania wskaż zaufaną i dostępną w środowisku wykonawczym lokalizację programu rozruchowego i umieść w pamięci flash .dtb. Przykładowe lokalizacje:

    Rysunek 2. Umieść plik .dtb na partycji rozruchowej,
    dołączając go do pliku image.gz i przekazując jako
    „jądro” do mkbootimg.

    Rysunek 3. Umieść plik .dtb w osobnej partycji
    (np. partycji dtb).

  3. Aby załadować DTB i uruchomić jądro:

    • Wczytaj .dtb z pamięci masowej.
    • Uruchom jądro, używając adresu pamięci załadowanego DT.

Co dalej?

Ta strona zawiera szczegółowy opis typowego przepływu pracy w bootloaderze podczas wczytywania DT oraz listę typowych terminów związanych z DT. Na innych stronach w tej sekcji znajdziesz informacje o tym, jak wdrożyć obsługę bootloadera, jak skompilować, zweryfikować i zoptymalizować DTO oraz jak użyć wielu DTO. Możesz też uzyskać szczegółowe informacje o składni DTO oraz wymaganym formatowaniu partycji DTO i DTBO.