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łaszczoną strukturę drzewa urządzenia 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). Bootloader korzystający z DTO może utrzymywać DT systemu na chipie (SoC) i dynamicznie nakładać DT specyficzny dla urządzenia, dodając węzły do drzewa oraz wprowadzając zmiany w właściwościach w dotychczasowym 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 DT

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

Rysunek 1. Typowe wdrożenie wczytywania drzewa urządzenia w programie rozruchowym.

  1. Aby utworzyć i przeflashować DTB:

    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 w czasie działania programu ładującego (szczegóły poniżej).

  2. Aby utworzyć partycję, określ zaufane miejsce w pamięci flash, do którego bootloader ma dostęp w czasie działania, i umieścić w nim .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.
    • Uruchom jądro, używając adresu pamięci załadowanego DT.

Co dalej?

Ta strona zawiera szczegółowy opis typowego procesu ładowania DT przez bootloader oraz listę typowych terminów dotyczących DT. Na innych stronach w tej sekcji znajdziesz informacje o tym, jak wdrożyć obsługę bootloadera, skompilować, zweryfikować i zoptymalizować DTO oraz jak używać wielu DSO. Możesz też uzyskać szczegółowe informacje na temat składni DTO oraz wymaganego formatowania partycji DTO i DTBO.