Un árbol de dispositivos (DT) es una estructura de datos de nodos con nombre y propiedades que describen hardware no detectable. Los sistemas operativos, como el kernel de Linux que se usa en Android, usan DT para admitir una amplia gama de configuraciones de hardware que usan los dispositivos con Android. Los proveedores de hardware proporcionan sus propios archivos fuente DT, que luego Linux compila en el archivo Device Tree Blob (DTB) utilizado por el gestor de arranque.
Una superposición de árbol de dispositivos (DTO) permite superponer un blob de árbol de dispositivos central (DTB) en el árbol de dispositivos. Un cargador de arranque que usa DTO puede mantener el DT de sistema en chip (SoC) y superponer dinámicamente un DT específico del dispositivo, agregando nodos al árbol y realizando cambios en las propiedades del árbol existente.
Esta página detalla un flujo de trabajo típico del cargador de arranque para cargar un DT y proporciona una lista de términos comunes de DT. Otras páginas en esta sección describen cómo implementar la compatibilidad con el cargador de arranque para DTO , cómo compilar , verificar y optimizar su implementación de DTO y cómo usar múltiples DT . También puede obtener detalles sobre la sintaxis DTO y el formato de partición DTO/DTBO requerido.
Actualizaciones en la versión de Android 9
En Android 9, el gestor de arranque no debe modificar las propiedades definidas en las superposiciones del árbol de dispositivos antes de pasar el blob del árbol de dispositivos unificado al kernel.
Cargando un árbol de dispositivos
Cargar un árbol de dispositivos en el gestor de arranque implica construir, particionar y ejecutar.
![](https://source.android.google.cn/devices/architecture/images/treble_dto_bootloader.png?hl=es-419)
- Para construir:
- Utilice el compilador de árbol de dispositivos (
dtc
) para compilar el código fuente del árbol de dispositivos (.dts
) en un blob de árbol de dispositivos (.dtb
), formateado como un árbol de dispositivos aplanado. - Instale el archivo
.dtb
en una ubicación accesible en tiempo de ejecución del cargador de arranque (detallada a continuación).
- Utilice el compilador de árbol de dispositivos (
- Para particionar, determine una ubicación confiable y accesible en tiempo de ejecución del gestor de arranque en la memoria flash para colocar
.dtb
. Ubicaciones de ejemplo:Partición de arranque Figura 2. Coloque .dtb
en la partición de arranque agregandoimage.gz
y pasándolo como "kernel
" amkbootimg
.Partición única Figura 3. Coloque .dtb
en una partición única (p. ej., particióndtb
). - Correr:
- Cargue
.dtb
desde el almacenamiento a la memoria. - Inicie el kernel dada la dirección de memoria del DT cargado.
- Cargue
Terminología
Esta sección utiliza los siguientes términos del árbol de dispositivos:
DT | Árbol de dispositivos |
---|---|
DTB | Blob de árbol de dispositivos |
DTBO | Blob de árbol de dispositivos para superposición |
DTC | Compilador de árbol de dispositivos |
DTO | Superposición del árbol de dispositivos |
EDE | Fuente del árbol de dispositivos |
FDT | Árbol de dispositivos aplanado, un formato binario contenido en un archivo blob .dtb |