Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
dispositivos_ingobernables_device_tree [2018/11/03 17:19] pietre |
dispositivos_ingobernables_device_tree [2018/11/03 17:57] (actual) pietre |
||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | - **Que es el árbol de dispositivos** | ||
- | - **Perspectiva del usuario: Iniciar con el árbol de dispositivos.** | ||
- | - **Sintaxis y compilación del Basic Device Tree.** | ||
- | - **Ejemplo simple de fragmento de árbol de dispositivo.** | ||
- | - **Organización general de un árbol de dispositivos.** | ||
- | - **Ejemplos de uso del árbol de dispositivos.** | ||
- | - **Consideraciones generales sobre el Árbol de dispositivos en Linux.** | ||
- | |||
En informática, un árbol de dispositivos (también escrito device tree) es una estructura de datos que describe los componentes de hardware de una computadora particular para que el núcleo (kernel)del sistema operativo pueda usar y administrar esos componentes, incluyendo la CPU o GPU, la memoria, los buses y los periféricos. | En informática, un árbol de dispositivos (también escrito device tree) es una estructura de datos que describe los componentes de hardware de una computadora particular para que el núcleo (kernel)del sistema operativo pueda usar y administrar esos componentes, incluyendo la CPU o GPU, la memoria, los buses y los periféricos. | ||
Línea 30: | Línea 22: | ||
===Árbol de dispositivos: Resumido=== | ===Árbol de dispositivos: Resumido=== | ||
+ | |||
+ | El árbol de dispositivos son un conjunto de archivos .dts y .dtsi que se encuentran arch/arm/boot/dts en la carpeta del código fuente del kernel de linux. | ||
+ | se editan con un editor de textos simple como gedit leafpad o geany, | ||
+ | |||
+ | Estos archivos se han de modificar para configurar un archivo concreto para tu objetivo, ya sea una tablet, un teléfono móvil, un gps o cualquier dispositivo arm que queramos hacer funcionar con Linux | ||
+ | |||
+ | Cuando tenemos configurado el archivo o los archivos para tu objetivo hay que compilarlo, | ||
+ | |||
+ | Yo conozco 2 opciones, compilar el árbol entero o solo un archivo. | ||
+ | |||
+ | a la hora de compilar el kernel se compilar también todo el árbol con la orden dtbs | ||
+ | |||
+ | ''make -j$(nproc) ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs | ||
+ | '' | ||
+ | |||
+ | Si se realiza cualquier cambio en el árbol después de compilar el kernel solo se tiene que invocar: | ||
+ | |||
+ | ''make -j$(nproc) ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs'' | ||
+ | |||
+ | |||
+ | ==Árbol de dispositivos: Documentación oficial== | ||
+ | |||
+ | Para poder leer la documentación oficial del árbol de dispositivos que se aplica en el kernel de linux puede hacerlo online | ||
+ | |||
+ | https://www.kernel.org/doc/Documentation/devicetree/ | ||
+ | |||
+ | También puede descargar el código fuente de linux y poder leer los archivos de documentación en la carpeta "Documentaction/devicetree/bindings y así poder empezar a sentirse hacker!! | ||
+ | |||
+ | |||
+ | Podríamos identificar 3 tipos de archivos del árbol, (estas denominaciones me las estoy inventando por que no tienen conceptos asociativos validos en ingles) | ||
+ | |||
+ | dts de definición de modelo | ||
+ | |||
+ | dts de definición de gama | ||
+ | |||
+ | dtsi de definición de subarquitectura | ||
+ | |||
+ | Esta separación ha sido casual o practica, no esta documentada esta practica en los manuales oficiales del árbol de dispositivos, | ||
+ | |||
+ | **dts de definición de modelo:** | ||
+ | |||
+ | Estos archivos hacer referencia a un modelo determinado, es decir si samsung tuviese el interés de pasar sus tablets a linux (que utopia) tendría que hacer todo un árbol de dispositivos propio, los del ultimo nivel serían estos ficheros que harían referencia a un modelo exacto, con un RAM,CPU,NAND,Wi-Fi concreto. | ||
+ | |||
+ | **dts de definición de gama** | ||
+ | |||
+ | Estos archivos pueden ser dts o dtsi, y si continuamos con el mismo ejemplo de samsung estos ficheros harían referencia a una gama entera de la que se diferenciasen componentes como Wi-Fi ,usb y controlador de energía, pero que mantienen siempre el mismo tipo de procesador, | ||
+ | |||
+ | **dtsi de definición de subarquitectura** | ||
+ | |||
+ | Estos ficheros compondrían los componentes de subarquitectura, por ejemplo todas las tablets samsung de 32 bits, definen los conceptos básicos del procesador, las dependencias de estos ficheros suelen ser archivos .c | ||
+ | |||
+ |