Google is committed to advancing racial equity for Black communities. See how.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

Sobreposições de árvore de dispositivo

Uma árvore de dispositivo (DT) é uma estrutura de dados de nós nomeados e propriedades que descrevem hardware não detectável. Os sistemas operacionais, como o kernel Linux usado no Android, usam DTs para oferecer suporte a uma ampla gama de configurações de hardware usadas por dispositivos com Android. Os fornecedores de hardware fornecem seus próprios arquivos de origem de DT, que o Linux então compila no arquivo Device Tree Blob (DTB) usado pelo carregador de inicialização.

Uma sobreposição da árvore do dispositivo (DTO) permite que um blob da árvore central do dispositivo (DTB) seja sobreposto na árvore do dispositivo. Um bootloader usando DTO pode manter o DT system-on-chip (SoC) e sobrepor dinamicamente um DT específico do dispositivo, adicionando nós à árvore e fazendo alterações nas propriedades na árvore existente.

Esta página detalha um fluxo de trabalho típico do carregador de inicialização para carregar uma DT e fornece uma lista de termos comuns da DT. Outras páginas nesta seção descrevem como implementar o suporte do bootloader para DTO , como compilar , verificar e otimizar sua implementação de DTO e como usar vários DTs . Você também pode obter detalhes sobre a sintaxe DTO e a formatação de partição DTO / DTBO necessária.

Atualizações na versão do Android 9

No Android 9, o carregador de inicialização não deve modificar as propriedades definidas nas sobreposições da árvore do dispositivo antes de passar o blob da árvore do dispositivo unificado para o kernel.

Carregando uma árvore de dispositivos

Carregar uma árvore de dispositivo no bootloader envolve construção, particionamento e execução.

Figura 1. Implementação típica para carregar a árvore de dispositivos no bootloader.
  1. Construir:
    • Use o compilador de árvore de dispositivo ( dtc ) para compilar a origem da árvore de dispositivo ( .dts ) em um blob de árvore de dispositivo ( .dtb ), formatado como uma árvore de dispositivo achatada.
    • .dtb arquivo .dtb em um local acessível por tempo de execução do carregador de inicialização (detalhado abaixo).
  2. Para particionar, determine um local confiável e acessível em tempo de execução do carregador de inicialização na memória flash para colocar .dtb . Locais de exemplo:
    Partição de inicialização
    Figura 2. Coloque .dtb na partição de inicialização anexando a image.gz e passando como " kernel " para mkbootimg .
    Partição Única
    Figura 3. Coloque .dtb em uma partição exclusiva (por exemplo, partição dtb ).
  3. Para correr:
    • Carregue .dtb do armazenamento para a memória.
    • Inicie o kernel com o endereço de memória do DT carregado.

Terminologia

Esta seção usa os seguintes termos da árvore de dispositivos:

DT Árvore de Dispositivos
DTB Device Tree Blob
DTBO Blob da árvore de dispositivos para sobreposição
DTC Device Tree Compiler
DTO Sobreposição de árvore de dispositivo
DTS Fonte da árvore do dispositivo
FDT Árvore de dispositivos achatada, um formato binário contido em um arquivo blob .dtb