{"id":129742,"date":"2026-04-21T12:00:15","date_gmt":"2026-04-21T10:00:15","guid":{"rendered":"https:\/\/riverdi.com\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays"},"modified":"2026-04-21T12:00:15","modified_gmt":"2026-04-21T10:00:15","slug":"building-device-tree-overlays-on-toradex-for-riverdi-displays","status":"publish","type":"post","link":"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays","title":{"rendered":"Construir superposiciones de \u00e1rboles de dispositivos en Toradex para pantallas Riverdi"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Alternar tabla de contenidos\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #002175;color:#002175\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #002175;color:#002175\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays\/#Vision_general_de_la_arquitectura_del_sistema\" >Visi\u00f3n general de la arquitectura del sistema<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays\/#Software\" >Software<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays\/#Instalar_dependencias_de_compilacion\" >Instalar dependencias de compilaci\u00f3n<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays\/#Crear_espacio_de_intercambio_y_preparar_el_directorio_de_trabajo\" >Crear espacio de intercambio y preparar el directorio de trabajo<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays\/#Clonar_las_fuentes_del_nucleo_Linux_Toradex\" >Clonar las fuentes del n\u00facleo Linux Toradex<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays\/#Seleccionar_la_rama_correcta_del_nucleo\" >Seleccionar la rama correcta del n\u00facleo<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays\/#Clonar_la_estructura_de_superposicion_del_Arbol_de_Dispositivos\" >Clonar la estructura de superposici\u00f3n del \u00c1rbol de Dispositivos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays\/#Seleccionar_la_rama_correcta_del_marco_de_superposicion\" >Seleccionar la rama correcta del marco de superposici\u00f3n<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays\/#Configurar_la_ruta_de_la_fuente_del_nucleo_y_clonar_las_fuentes_superpuestas_de_Riverdi\" >Configurar la ruta de la fuente del n\u00facleo y clonar las fuentes superpuestas de Riverdi<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays\/#Clonar_las_fuentes_de_superposicion_Riverdi\" >Clonar las fuentes de superposici\u00f3n Riverdi<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays\/#Verificar_las_ramas_del_repositorio_y_localizar_las_fuentes_superpuestas\" >Verificar las ramas del repositorio y localizar las fuentes superpuestas<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays\/#Construir_la_superposicion_y_preparar_el_arbol_de_fuentes_del_nucleo\" >Construir la superposici\u00f3n y preparar el \u00e1rbol de fuentes del n\u00facleo<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays\/#Anadir_las_fuentes_de_superposicion_Riverdi_al_marco_de_construccion\" >A\u00f1adir las fuentes de superposici\u00f3n Riverdi al marco de construcci\u00f3n<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays\/#Registrar_la_superposicion_en_el_sistema_de_construccion\" >Registrar la superposici\u00f3n en el sistema de construcci\u00f3n<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays\/#Construir_la_superposicion_del_Arbol_de_Dispositivos\" >Construir la superposici\u00f3n del \u00c1rbol de Dispositivos<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays\/#Desplegando\" >Desplegando<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays\/#Conexion_al_modulo_Verdin\" >Conexi\u00f3n al m\u00f3dulo Verdin<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays\/#Configurar_la_interfaz_de_red_en_el_modulo_Verdin\" >Configurar la interfaz de red en el m\u00f3dulo Verdin<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays\/#Configurar_una_direccion_IP_estatica_en_el_ordenador_principal\" >Configurar una direcci\u00f3n IP est\u00e1tica en el ordenador principal<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays\/#Transferencia_de_la_superposicion_al_modulo_Verdin\" >Transferencia de la superposici\u00f3n al m\u00f3dulo Verdin<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays\/#Resumen\" >Resumen<\/a><\/li><\/ul><\/nav><\/div>\n<p>El objetivo de esta gu\u00eda es crear un sistema en funcionamiento a partir de hardware limpio\/fresco, utilizando Torizon OS y archivos fuente de \u00e1rbol de dispositivos de ejemplo de Riverdi GitHub.<\/p>\n<p>As\u00ed lo conseguimos:<\/p>\n<ul>\n<li>Flashear Torizon OS desde cero<\/li>\n<li>Construye una superposici\u00f3n de \u00e1rbol de dispositivos personalizada desde Riverdi GitHub<\/li>\n<li>Activar superposici\u00f3n en Torizon<\/li>\n<li>Arranca en una pantalla totalmente gr\u00e1fica y t\u00e1ctil<\/li>\n<\/ul>\n<p>Esta gu\u00eda evita intencionadamente:<\/p>\n<ul>\n<li>Construir Yocto desde cero<\/li>\n<li>Recompilar el n\u00facleo Linux<\/li>\n<li>Utilizar una m\u00e1quina virtual Linux completa<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Vision_general_de_la_arquitectura_del_sistema\"><\/span>Visi\u00f3n general de la arquitectura del sistema<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><img decoding=\"async\" class=\"alignnone wp-image-129317 size-full\" src=\"https:\/\/riverdi.com\/wp-content\/uploads\/2026\/04\/BLOG_Grafika_POMIEDZY-TEKSTY_1-3-1.png\" alt=\"\" width=\"826\" height=\"504\" srcset=\"https:\/\/riverdi.com\/wp-content\/uploads\/2026\/04\/BLOG_Grafika_POMIEDZY-TEKSTY_1-3-1.png 826w, https:\/\/riverdi.com\/wp-content\/uploads\/2026\/04\/BLOG_Grafika_POMIEDZY-TEKSTY_1-3-1-300x183.png 300w, https:\/\/riverdi.com\/wp-content\/uploads\/2026\/04\/BLOG_Grafika_POMIEDZY-TEKSTY_1-3-1-768x469.png 768w, https:\/\/riverdi.com\/wp-content\/uploads\/2026\/04\/BLOG_Grafika_POMIEDZY-TEKSTY_1-3-1-600x366.png 600w, https:\/\/riverdi.com\/wp-content\/uploads\/2026\/04\/BLOG_Grafika_POMIEDZY-TEKSTY_1-3-1-64x39.png 64w\" sizes=\"(max-width: 826px) 100vw, 826px\" \/><\/p>\n<p><strong>Hardware<\/strong><\/p>\n<ul>\n<li>Toradex Verdin iMX8MP o iMX8MM<\/li>\n<li>Porta-dalias Toradex<\/li>\n<li>Pantalla Riverdi de 12,1&#8243; (o cualquier otra pantalla Riverdi, pero en este ejemplo utilizamos la de 12,1&#8243;)<\/li>\n<\/ul>\n<p>Antes de modificar el sistema, es importante entender c\u00f3mo est\u00e1 construido el canal de visualizaci\u00f3n en Verdin iMX8MP + Dahlia.<\/p>\n<p><strong>Mostrar ruta de datos<\/strong><\/p>\n<p>Para la pantalla Riverdi de 12,1&#8243;, la cadena de se\u00f1ales es:<\/p>\n<p>i.MX8MP LCDIF<\/p>\n<p>\u2193<\/p>\n<p>MIPI DSI<\/p>\n<p>\u2193<\/p>\n<p>SN65DSI83 (puente DSI \u2192 LVDS)<\/p>\n<p>\u2193<\/p>\n<p>Panel LVDS<\/p>\n<ul>\n<li>El bloque LCDIF del i.MX8MP genera datos de p\u00edxeles.<\/li>\n<li>Los datos se transmiten a trav\u00e9s de MIPI DSI.<\/li>\n<li>El SN65DSI83 de TI convierte DSI en LVDS.<\/li>\n<li>El panel LVDS recibe los datos de los p\u00edxeles y muestra la imagen.<\/li>\n<\/ul>\n<p><strong>Interfaces de control<\/strong><\/p>\n<p>Adem\u00e1s de la ruta de v\u00eddeo, hay que configurar otros dos subsistemas:<\/p>\n<ul>\n<li>Control de la retroiluminaci\u00f3n\n<ul>\n<li>Accionado por PWM desde el i.MX8MP<\/li>\n<li>Conectado al controlador de retroiluminaci\u00f3n de la pantalla<\/li>\n<li>El ciclo de trabajo controla el brillo (0-100%)<\/li>\n<\/ul>\n<\/li>\n<li>Tacto capacitivo\n<ul>\n<li>Conectado a trav\u00e9s de I2C<\/li>\n<li>Genera se\u00f1ales de interrupci\u00f3n<\/li>\n<li>Expone un dispositivo de entrada en Linux (\/dev\/input\/eventX)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Software\"><\/span>Software<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Utilizamos un entorno Linux, en este ejemplo una m\u00e1quina virtual Windows con Ubuntu instalado en ella. Este es el n\u00facleo de nuestra gu\u00eda. Aqu\u00ed encontrar\u00e1s todo lo necesario: todo el c\u00f3digo que utilizamos, todos los enlaces y todo est\u00e1 explicado. M\u00e1s abajo encontrar\u00e1s nuestro github:<br \/>\n<a href=\"https:\/\/github.com\/riverdi\/riverdi-toradex-DTS\">https:\/\/github.com\/riverdi\/riverdi-toradex-DTS<\/a><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Instalar_dependencias_de_compilacion\"><\/span><strong>Instalar dependencias de compilaci\u00f3n<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Antes de construir las superposiciones del \u00c1rbol de Dispositivos, el entorno de desarrollo debe contener las herramientas requeridas por el sistema de construcci\u00f3n del n\u00facleo Linux.<br \/>\nAbre un terminal e instala los paquetes necesarios utilizando lo siguiente<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">sudo apt install -y \\\ngit make gcc g++ bc bison flex \\\nlibssl-dev libncurses-dev \\N - libssl-dev\npython3 python3-pip rsync wget xz-utils \\\ndispositivo-compilador-\u00e1rbol\n<\/pre>\n<p>Estos paquetes proporcionan las utilidades b\u00e1sicas necesarias para construir componentes relacionados con el n\u00facleo y artefactos del \u00c1rbol de Dispositivos.<\/p>\n<p>Las siguientes herramientas son especialmente importantes para el proceso de construcci\u00f3n de superposiciones:<\/p>\n<ul>\n<li>Git &#8211; Se utiliza para clonar las fuentes del n\u00facleo Toradex y el marco de superposici\u00f3n del \u00e1rbol de dispositivos.<\/li>\n<li>Herramientas de compilaci\u00f3n (gcc, make, etc.) &#8211; Requeridas por el sistema de compilaci\u00f3n del n\u00facleo Linux.<\/li>\n<li>compilador de \u00e1rbol de dispositivos (dtc) &#8211; Compila archivos fuente del \u00c1rbol de Dispositivos (.dts) en blobs binarios del \u00c1rbol de Dispositivos (.dtb o .dtbo)<\/li>\n<li>Otras bibliotecas, como libssl-dev y libncurses-dev, son necesarias para diversas partes de la infraestructura de compilaci\u00f3n del n\u00facleo.<\/li>\n<\/ul>\n<p>Una vez instaladas las dependencias, el sistema est\u00e1 listo para clonar las fuentes del n\u00facleo Toradex y preparar el entorno de compilaci\u00f3n para la superposici\u00f3n del \u00c1rbol de Dispositivos.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Crear_espacio_de_intercambio_y_preparar_el_directorio_de_trabajo\"><\/span><strong>Crear espacio de intercambio y preparar el directorio de trabajo<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Cuando se trabaja en una m\u00e1quina virtual, la memoria RAM disponible puede ser limitada. Los sistemas de compilaci\u00f3n relacionados con el n\u00facleo pueden requerir memoria adicional durante la compilaci\u00f3n, especialmente al procesar grandes \u00e1rboles de fuentes. <\/p>\n<p>Para evitar fallos de compilaci\u00f3n relacionados con la memoria, se recomienda crear un archivo de intercambio que proporcione memoria virtual adicional.<\/p>\n<p>Crea un archivo swap de 4 GB utilizando los siguientes comandos:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">sudo fallocate -l 4G \/archivo de intercambio\nsudo chmod 600 \/archivo de intercambio\nsudo mkswap \/archivo de intercambio\nsudo swapon \/archivo swap\n<\/pre>\n<p>El archivo de intercambio se a\u00f1ade entonces a la configuraci\u00f3n del sistema para que se active autom\u00e1ticamente tras el reinicio:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">echo '\/swapfile none swap sw 0 0' | sudo tee -a \/etc\/fstab\n<\/pre>\n<p>Tras preparar el espacio de intercambio, crea un directorio de trabajo que almacenar\u00e1 todos los repositorios y artefactos de construcci\u00f3n utilizados en esta gu\u00eda:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">mkdir -p ~\/trabajo\ncd ~\/trabajo\n<\/pre>\n<p>Este directorio se utilizar\u00e1 como espacio de trabajo principal para clonar las fuentes del n\u00facleo Toradex, el marco de superposici\u00f3n y los archivos de superposici\u00f3n de la pantalla Riverdi.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Clonar_las_fuentes_del_nucleo_Linux_Toradex\"><\/span>Clonar las fuentes del n\u00facleo Linux Toradex<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>El siguiente paso es descargar las fuentes del n\u00facleo Toradex Linux. Estas fuentes proporcionan la infraestructura de compilaci\u00f3n y los archivos de cabecera necesarios para el proceso de compilaci\u00f3n de la superposici\u00f3n del \u00c1rbol de Dispositivos. <\/p>\n<p>Navega hasta el directorio de trabajo creado anteriormente y clona el repositorio del n\u00facleo Toradex:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">git clone git:\/\/git.toradex.com\/linux-toradex.git  \n<\/pre>\n<p>Este repositorio contiene el n\u00facleo Linux utilizado en las versiones BSP de Toradex e incluye los archivos de configuraci\u00f3n y los scripts de compilaci\u00f3n necesarios para compilar los componentes del n\u00facleo y las superposiciones del \u00c1rbol de Dispositivos.<\/p>\n<p>El repositorio del n\u00facleo es relativamente grande, por lo que clonarlo puede llevar varios minutos dependiendo de la conexi\u00f3n de red. En el v\u00eddeo adjunto se acelera este paso para que el tutorial sea conciso. <\/p>\n<p>Una vez descargado el repositorio, el siguiente paso ser\u00e1 seleccionar la rama del n\u00facleo que coincida con la versi\u00f3n BSP utilizada en el m\u00f3dulo Verdin de destino.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Seleccionar_la_rama_correcta_del_nucleo\"><\/span>Seleccionar la rama correcta del n\u00facleo<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Tras clonar el repositorio del kernel Toradex, el siguiente paso es seleccionar la rama que corresponde a la versi\u00f3n BSP que se ejecuta en el dispositivo de destino.<\/p>\n<p>Las versiones BSP de Toradex se basan en versiones espec\u00edficas del kernel de Linux, y las superposiciones del \u00c1rbol de Dispositivos deben compilarse con la misma rama del kernel para garantizar la compatibilidad.<\/p>\n<p>Para listar las ramas del n\u00facleo disponibles relacionadas con Linux 5.15, ejecuta:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">git branch -a | grep -E \"5\\.15|toradex_5\\.15\" | head -n 50\n<\/pre>\n<p>Este comando filtra las ramas disponibles y muestra las relacionadas con la serie de kernels Linux 5.15 utilizada por varias versiones de Toradex BSP.<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">git checkout toradex_5.15-2.2.x-imx\n<\/pre>\n<p>Esta rama contiene las fuentes del n\u00facleo y la configuraci\u00f3n utilizadas por las versiones BSP de Toradex basadas en Linux 5.15 para los procesadores NXP i.MX.<\/p>\n<p>Seleccionar la rama correcta garantiza que la superposici\u00f3n del \u00c1rbol de Dispositivos se construya con un \u00e1rbol del n\u00facleo que coincida con el software que se ejecuta en el hardware de destino.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Clonar_la_estructura_de_superposicion_del_Arbol_de_Dispositivos\"><\/span>Clonar la estructura de superposici\u00f3n del \u00c1rbol de Dispositivos<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>El siguiente paso es descargar el marco de superposici\u00f3n del \u00c1rbol de Dispositivos de Toradex. Este repositorio contiene la infraestructura de compilaci\u00f3n utilizada para compilar las superposiciones del \u00c1rbol de Dispositivos utilizando el sistema de compilaci\u00f3n del n\u00facleo de Linux. <\/p>\n<p>Clona el repositorio en el directorio de trabajo:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">git clone git:\/\/git.toradex.com\/device-tree-overlays.git\n<\/pre>\n<p>Este repositorio proporciona la estructura e integraci\u00f3n Makefile necesarias para construir archivos .dtbo utilizando las fuentes del n\u00facleo clonadas anteriormente.<\/p>\n<p>Una vez clonado el repositorio, aparecer\u00e1 un nuevo directorio llamado device-tree-overlays en el espacio de trabajo. Este directorio se utilizar\u00e1 m\u00e1s adelante para a\u00f1adir las fuentes de la superposici\u00f3n Riverdi y compilar la superposici\u00f3n final. <\/p>\n<h3><span class=\"ez-toc-section\" id=\"Seleccionar_la_rama_correcta_del_marco_de_superposicion\"><\/span>Seleccionar la rama correcta del marco de superposici\u00f3n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Despu\u00e9s de clonar el repositorio dispositivo-tres-overlays, el siguiente paso es seleccionar la rama que corresponde a la misma versi\u00f3n del n\u00facleo utilizada anteriormente.<\/p>\n<p>El marco de superposici\u00f3n del \u00c1rbol de Dispositivos debe coincidir con la rama del n\u00facleo utilizada en el repositorio linux-toradex. Esto garantiza que el proceso de compilaci\u00f3n de la superposici\u00f3n utilice las cabeceras del n\u00facleo y la configuraci\u00f3n de compilaci\u00f3n correctas. <\/p>\n<p>En primer lugar, enumera las ramas disponibles relacionadas con la serie del n\u00facleo Linux 5.15:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">git branch -a | grep -E \"5\\.15|toradex_5\\.15\" | head -n 50\n<\/pre>\n<p>Este comando filtra las ramas disponibles y muestra las asociadas al n\u00facleo Linux 5.15 utilizado por varias versiones del BSP de Toradex.<\/p>\n<p>A continuaci\u00f3n, comprueba la rama correspondiente a la versi\u00f3n del n\u00facleo seleccionada anteriormente:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">git checkout toradex_5.15-2.2.x-imx\n<\/pre>\n<p>Utilizar la misma rama tanto para las fuentes del n\u00facleo como para el marco superpuesto garantiza que el sistema de compilaci\u00f3n siga siendo compatible con el BSP que se ejecuta en el m\u00f3dulo Verdin de destino.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Configurar_la_ruta_de_la_fuente_del_nucleo_y_clonar_las_fuentes_superpuestas_de_Riverdi\"><\/span>Configurar la ruta de la fuente del n\u00facleo y clonar las fuentes superpuestas de Riverdi<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Antes de construir superposiciones del \u00c1rbol de Dispositivos, el sistema de construcci\u00f3n de superposiciones debe saber d\u00f3nde se encuentran las fuentes del kernel de Linux. Esto se hace definiendo la variable de entorno STAGING_KERNEL_DIR, que apunta al repositorio linux-toradex clonado previamente. <\/p>\n<p>Establece la variable utilizando el siguiente comando:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">export STAGING_KERNEL_DIR=$HOME\/trabajo\/linux-toradex\n<\/pre>\n<p>Para que la configuraci\u00f3n persista en todas las sesiones de terminal, a\u00f1\u00e1dela al archivo de configuraci\u00f3n del int\u00e9rprete de comandos:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">echo 'export STAGING_KERNEL_DIR=$HOME\/work\/linux-toradex'  &gt;&gt;  ~\/.bashrc\nfuente ~\/.bashrc\n<\/pre>\n<p>Esta variable permite que el marco de construcci\u00f3n de la superposici\u00f3n acceda a las cabeceras del n\u00facleo y a los scripts de construcci\u00f3n que necesita el sistema de construcci\u00f3n del n\u00facleo de Linux.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Clonar_las_fuentes_de_superposicion_Riverdi\"><\/span>Clonar las fuentes de superposici\u00f3n Riverdi<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Una vez configurada la ruta del n\u00facleo, el siguiente paso es descargar las fuentes de superposici\u00f3n Riverdi utilizadas en esta gu\u00eda.<\/p>\n<p>Clona el repositorio en el directorio de trabajo:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">git clone https:\/\/github.com\/riverdi\/riverdi-toradex-DTS.git\n<\/pre>\n<p>Este repositorio contiene los archivos fuente de superposici\u00f3n del \u00c1rbol de Dispositivos utilizados para configurar las pantallas Riverdi con los m\u00f3dulos Toradex Verdin.<\/p>\n<p>Estas fuentes de superposici\u00f3n se integrar\u00e1n en el marco de construcci\u00f3n de superposiciones Toradex en el siguiente paso de la gu\u00eda.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Verificar_las_ramas_del_repositorio_y_localizar_las_fuentes_superpuestas\"><\/span>Verificar las ramas del repositorio y localizar las fuentes superpuestas<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Antes de continuar con el proceso de construcci\u00f3n de la superposici\u00f3n, se recomienda verificar que tanto el repositorio linux-toradex como el framework device-tree-overlays utilizan la misma rama del n\u00facleo.<\/p>\n<p>Esto garantiza que el proceso de construcci\u00f3n de la superposici\u00f3n siga siendo compatible con las fuentes del n\u00facleo utilizadas anteriormente.<\/p>\n<p>Puedes verificar la rama activa en cada repositorio utilizando:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">git rev-parse --abbrev-ref HEAD\n<\/pre>\n<p>Ambos repositorios deben informar del mismo nombre de rama, por ejemplo:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">toradex_5.15-2.2.x-imx\n<\/pre>\n<p>Utilizar la misma rama en ambos repositorios garantiza que el marco de superposici\u00f3n del \u00c1rbol de Dispositivos utilice las cabeceras del n\u00facleo y la configuraci\u00f3n de compilaci\u00f3n correctas.<\/p>\n<p>A continuaci\u00f3n, navega hasta el repositorio Riverdi clonado para localizar las fuentes de superposici\u00f3n del \u00c1rbol de Dispositivos:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">cd ~\/trabajo\/riverdi-toradex-DTS\nls\n<\/pre>\n<p>Este repositorio contiene los archivos fuente del \u00c1rbol de Dispositivos (.dts) y los archivos de inclusi\u00f3n (.dtsi) utilizados para configurar las pantallas Riverdi en las plataformas Toradex Verdin.<\/p>\n<p>Los archivos de superposici\u00f3n necesarios se copiar\u00e1n en el marco de construcci\u00f3n de superposiciones Toradex en el siguiente paso.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Construir_la_superposicion_y_preparar_el_arbol_de_fuentes_del_nucleo\"><\/span>Construir la superposici\u00f3n y preparar el \u00e1rbol de fuentes del n\u00facleo<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>En esta fase, los fuentes de la superposici\u00f3n Riverdi est\u00e1n presentes en el directorio de compilaci\u00f3n de la superposici\u00f3n y \u00e9sta se ha a\u00f1adido a la lista dtb-y en el Makefile. El siguiente paso es compilar la superposici\u00f3n. <\/p>\n<p>Desde el directorio device-tree-overlays\/overlays, inicia la compilaci\u00f3n:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">limpiar\nhaz\n<\/pre>\n<p>Si a\u00fan no se ha preparado el \u00e1rbol de fuentes del n\u00facleo, la compilaci\u00f3n puede fallar con un error similar a:<\/p>\n<p>La configuraci\u00f3n del n\u00facleo no es v\u00e1lida<br \/>\nfaltan include\/generated\/autoconf.h o include\/config\/auto.conf<\/p>\n<p>Esto es de esperar porque el marco de superposici\u00f3n Toradex utiliza el sistema de construcci\u00f3n del n\u00facleo de Linux (Kbuild). Kbuild requiere un \u00e1rbol del n\u00facleo configurado y preparado para generar los archivos de cabecera y los artefactos de configuraci\u00f3n necesarios. <\/p>\n<p>Para solucionarlo, prepara el \u00e1rbol de fuentes del n\u00facleo:<\/p>\n<ol>\n<li>Navega hasta el repositorio del n\u00facleo.<br \/>\ncd ~\/work\/linux-toradex<\/li>\n<li>Configura la compilaci\u00f3n para la plataforma Verdin iMX8M Plus. El SoC es ARM de 64 bits, as\u00ed que utiliza arm64 y un compilador cruzado AArch64.<br \/>\nexport ARCH=arm64<br \/>\nexport CROSS_COMPILE=aarch64-linux-gnu- <\/li>\n<li>Instala la cadena de herramientas del compilador cruzado en el sistema anfitri\u00f3n:<br \/>\nsudo apt install -y gcc-aarch64-linux-gnu<\/li>\n<li>Genera una configuraci\u00f3n del n\u00facleo por defecto y prepara el \u00e1rbol del n\u00facleo:<br \/>\nmake defconfig<br \/>\nmake oldconfig<br \/>\nmake prepare<br \/>\nmake scripts<\/li>\n<\/ol>\n<p>Estos comandos generan los archivos de configuraci\u00f3n y cabeceras que faltan y que necesita Kbuild, incluidos include\/config\/auto.conf y include\/generated\/autoconf.h.<\/p>\n<p>Una vez preparado el \u00e1rbol del n\u00facleo, vuelve al directorio de la superposici\u00f3n y ejecuta de nuevo la construcci\u00f3n de la superposici\u00f3n:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">cd ~\/work\/device-tree-overlays\/overlays\nlimpiar\nhaz\n<\/pre>\n<p>Ahora la superposici\u00f3n deber\u00eda compilarse correctamente y producir un archivo de salida .dtbo.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Anadir_las_fuentes_de_superposicion_Riverdi_al_marco_de_construccion\"><\/span>A\u00f1adir las fuentes de superposici\u00f3n Riverdi al marco de construcci\u00f3n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>El marco de construcci\u00f3n de superposiciones Toradex compila las superposiciones ubicadas en el directorio de superposiciones. Por lo tanto, los archivos fuente del \u00c1rbol de Dispositivos Riverdi deben copiarse en este directorio antes de que pueda comenzar el proceso de compilaci\u00f3n. <\/p>\n<p>Navega hasta el directorio de construcci\u00f3n de la superposici\u00f3n:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">cd ~\/work\/device-tree-overlays\/overlays\n<\/pre>\n<p>Copia el archivo fuente de la superposici\u00f3n Riverdi para la pantalla DSI de 12 pulgadas:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">cp ~\/trabajo\/riverdi-toradex-DTS\/verdin-imx8mp_panel-cap-touch-12inch-dsi_overlay.dts .\n<\/pre>\n<p>A continuaci\u00f3n, copia los archivos de inclusi\u00f3n de pantalla adicionales que utiliza la superposici\u00f3n:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">cp ~\/trabajo\/riverdi-toradex-DTS\/display-*.dtsi  \n<\/pre>\n<p>Estos archivos .dtsi contienen datos de configuraci\u00f3n espec\u00edficos del panel, como par\u00e1metros de temporizaci\u00f3n y definiciones de interfaz del panel utilizados por el archivo de superposici\u00f3n principal.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Registrar_la_superposicion_en_el_sistema_de_construccion\"><\/span>Registrar la superposici\u00f3n en el sistema de construcci\u00f3n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Para que la superposici\u00f3n se compile, debe a\u00f1adirse al Makefile utilizado por el marco de superposici\u00f3n Toradex.<\/p>\n<p>Abre el Makefile situado en el directorio de superposiciones:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">nano Makefile\n<\/pre>\n<p>A\u00f1ade una nueva entrada a la lista dtb-y:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">cd ~\/trabajo\/riverdi-toradex-DTS\ndtb-y += verdin-imx8mp_panel-cap-touch-12inch-dsi_overlay.dtbo\n<\/pre>\n<p>Esta l\u00ednea indica al sistema de construcci\u00f3n del n\u00facleo que compile el archivo .dts correspondiente en un binario .dtbo durante el proceso de construcci\u00f3n.<\/p>\n<p>Una vez a\u00f1adida esta entrada, la superposici\u00f3n pasa a formar parte de los objetivos de compilaci\u00f3n y se generar\u00e1 cuando se ejecute el comando de compilaci\u00f3n de superposiciones.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Construir_la_superposicion_del_Arbol_de_Dispositivos\"><\/span>Construir la superposici\u00f3n del \u00c1rbol de Dispositivos<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Tras preparar el \u00e1rbol de c\u00f3digo fuente del n\u00facleo, la superposici\u00f3n puede compilarse correctamente.<\/p>\n<p>Vuelve al directorio de construcci\u00f3n de la superposici\u00f3n:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">cd ~\/work\/device-tree-overlays\/overlays\n<\/pre>\n<p>Limpia cualquier artefacto de construcci\u00f3n anterior:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">limpiar<\/pre>\n<p>A continuaci\u00f3n, inicia la construcci\u00f3n de la superposici\u00f3n:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">haz<\/pre>\n<p>Durante el proceso de compilaci\u00f3n, el sistema de compilaci\u00f3n del n\u00facleo Linux invoca al Compilador del \u00c1rbol de Dispositivos (dtc) y compila el archivo fuente de superposici\u00f3n registrado en un archivo binario .dtbo.<\/p>\n<p>Si la construcci\u00f3n finaliza con \u00e9xito, la salida de la construcci\u00f3n incluir\u00e1:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">DTC verdin-imx8mp_panel-cap-touch-12inch-dsi_overlay.dtbo<\/pre>\n<p>Esto indica que el archivo fuente del \u00c1rbol de Dispositivos se ha compilado correctamente.<\/p>\n<p>El archivo .dtbo generado aparecer\u00e1 en el mismo directorio de superposiciones y ya est\u00e1 listo para ser transferido al m\u00f3dulo Toradex Verdin de destino.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Desplegando\"><\/span>Desplegando<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"Conexion_al_modulo_Verdin\"><\/span>Conexi\u00f3n al m\u00f3dulo Verdin<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Despu\u00e9s de construir con \u00e9xito la superposici\u00f3n \u00c1rbol de Dispositivos en el sistema anfitri\u00f3n, el siguiente paso es desplegarla en el m\u00f3dulo Verdin de Toradex.<\/p>\n<p>Para acceder a la consola Linux del m\u00f3dulo, con\u00e9ctate al dispositivo mediante un terminal serie. En este ejemplo, se utiliza PuTTY para establecer la conexi\u00f3n. <\/p>\n<p>Configura la conexi\u00f3n serie con los siguientes par\u00e1metros:<\/p>\n<ul>\n<li><strong>Tipo de conexi\u00f3n:<\/strong> Serie<\/li>\n<li><strong>L\u00ednea serie:<\/strong> El puerto COM asignado a la UART de depuraci\u00f3n Verdin &#8211; compru\u00e9balo en el administrador de dispositivos<\/li>\n<li><strong>Velocidad:<\/strong> 115200<\/li>\n<\/ul>\n<p>Tras abrir la conexi\u00f3n, el terminal mostrar\u00e1 el registro de arranque y, finalmente, proporcionar\u00e1 acceso a la shell de Linux que se ejecuta en el m\u00f3dulo Verdin.<\/p>\n<p>Esta consola se utilizar\u00e1 para transferir el archivo .dtbo compilado y habilitar la superposici\u00f3n en la configuraci\u00f3n de arranque.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Configurar_la_interfaz_de_red_en_el_modulo_Verdin\"><\/span>Configurar la interfaz de red en el m\u00f3dulo Verdin<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Antes de transferir el archivo de superposici\u00f3n compilado al dispositivo de destino, el m\u00f3dulo Verdin debe tener conectividad de red con el host de desarrollo.<\/p>\n<p>Primero, comprueba las interfaces de red disponibles y su configuraci\u00f3n actual:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">ip a<\/pre>\n<p>Este comando muestra todas las interfaces de red presentes en el sistema y su estado actual.<\/p>\n<p>A continuaci\u00f3n, asigna una direcci\u00f3n IP est\u00e1tica a la interfaz Ethernet:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">ip add add 192.168.10.2\/24 dev eth0<\/pre>\n<p>A continuaci\u00f3n, activa la interfaz:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">ip link set eth0 up<\/pre>\n<p>Con la interfaz configurada, el m\u00f3dulo Verdin puede comunicarse con la m\u00e1quina anfitriona a trav\u00e9s de la red local. Esta conexi\u00f3n se utilizar\u00e1 en el siguiente paso para transferir el archivo .dtbo compilado.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Configurar_una_direccion_IP_estatica_en_el_ordenador_principal\"><\/span>Configurar una direcci\u00f3n IP est\u00e1tica en el ordenador principal<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Para permitir la comunicaci\u00f3n entre el host de desarrollo y el m\u00f3dulo Verdin, ambos dispositivos deben estar situados en la misma subred de red.<\/p>\n<p>Tras asignar la direcci\u00f3n 192.168.10.2 al m\u00f3dulo Verdin, configura la interfaz Ethernet del ordenador principal con una direcci\u00f3n IP est\u00e1tica.<\/p>\n<p>En Windows, abre Configuraci\u00f3n avanzada de red, luego ve a las propiedades del adaptador Ethernet y configura manualmente los ajustes IPv4.<\/p>\n<p>Establece los siguientes par\u00e1metros: (puedes establecer otros diferentes, pero s\u00f3lo te recomendamos \u00e9stos)<\/p>\n<ul>\n<li><strong>Direcci\u00f3n IP:<\/strong> 192.168.10.1<\/li>\n<li><strong>M\u00e1scara de subred:<\/strong> 255.255.255.0<\/li>\n<li><strong>Puerta de enlace predeterminada:<\/strong> dejar vac\u00edo<\/li>\n<\/ul>\n<p>Esta configuraci\u00f3n coloca ambos dispositivos en la misma red local:<\/p>\n<ul>\n<li><strong>Ordenador anfitri\u00f3n \u2192 192.168.10.1<\/strong><\/li>\n<li><strong>M\u00f3dulo Verdin \u2192 192.168.10.2<\/strong><\/li>\n<\/ul>\n<p>Con esta configuraci\u00f3n, los dos sistemas pueden comunicarse directamente a trav\u00e9s de Ethernet y el archivo .dtbo compilado puede transferirse al m\u00f3dulo Verdin en el siguiente paso.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Transferencia_de_la_superposicion_al_modulo_Verdin\"><\/span>Transferencia de la superposici\u00f3n al m\u00f3dulo Verdin<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Una vez que el ordenador principal y el m\u00f3dulo Verdin est\u00e1n conectados a trav\u00e9s de la red, la superposici\u00f3n compilada del \u00c1rbol de Dispositivos puede transferirse al dispositivo de destino.<\/p>\n<p>En este ejemplo, el archivo se copia utilizando scp (Protocolo de Copia Segura):<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">scp ~\/work\/device-tree-overlays\/overlays\/verdin-imx8mp_panel-cap-touch-12inch-dsi_overlay.dtbo\nroot@192.168.10.2:\/boot\/overlays\/<\/pre>\n<p>Este comando copia el archivo .dtbo compilado desde el host de desarrollo al directorio \/boot\/overlays del m\u00f3dulo Verdin.<\/p>\n<p>Durante la primera conexi\u00f3n SSH, el sistema anfitri\u00f3n puede mostrar un aviso de seguridad pidiendo que se confirme la autenticidad del dispositivo de destino. Tras aceptar la huella, la transferencia de archivos se realiza con normalidad. <\/p>\n<p>El directorio \/boot\/overlays es utilizado por la configuraci\u00f3n de arranque Toradex para almacenar los binarios de superposici\u00f3n del \u00c1rbol de Dispositivos que se pueden cargar durante el arranque del sistema.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Resumen\"><\/span>Resumen<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Aseg\u00farate de que la superposici\u00f3n coincide exactamente con el BSP y la rama del kernel utilizados en tu dispositivo de destino: de ah\u00ed provienen la mayor\u00eda de los problemas de compilaci\u00f3n. Una vez que el entorno est\u00e1 configurado correctamente, el flujo de trabajo es repetible: compilar, desplegar, activar y probar. A partir de ah\u00ed, adaptar las superposiciones a otras pantallas Riverdi es principalmente cuesti\u00f3n de ajustar los archivos espec\u00edficos del panel.  <\/p>\n<p><iframe style=\"aspect-ratio: 16\/9;\" title=\"\" src=\"https:\/\/www.youtube.com\/embed\/n40RdwaPgkY\" width=\"100%\" height=\"auto\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>El objetivo de esta gu\u00eda es crear un sistema en funcionamiento a partir de hardware limpio\/fresco, utilizando Torizon OS y archivos fuente de \u00e1rbol de dispositivos de ejemplo de Riverdi GitHub. As\u00ed lo conseguimos: Flashear Torizon OS desde cero Construye una superposici\u00f3n de \u00e1rbol de dispositivos personalizada desde Riverdi GitHub Activar superposici\u00f3n en Torizon Arranca [&hellip;]<\/p>\n","protected":false},"author":3328,"featured_media":129316,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","inline_featured_image":false,"footnotes":""},"categories":[787],"tags":[],"class_list":["post-129742","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pantalla-101"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Construir superposiciones de \u00e1rboles de dispositivos en Toradex para pantallas Riverdi - Riverdi<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Construir superposiciones de \u00e1rboles de dispositivos en Toradex para pantallas Riverdi - Riverdi\" \/>\n<meta property=\"og:description\" content=\"El objetivo de esta gu\u00eda es crear un sistema en funcionamiento a partir de hardware limpio\/fresco, utilizando Torizon OS y archivos fuente de \u00e1rbol de dispositivos de ejemplo de Riverdi GitHub. As\u00ed lo conseguimos: Flashear Torizon OS desde cero Construye una superposici\u00f3n de \u00e1rbol de dispositivos personalizada desde Riverdi GitHub Activar superposici\u00f3n en Torizon Arranca [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays\" \/>\n<meta property=\"og:site_name\" content=\"Riverdi\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/riverdi.displays\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-21T10:00:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/riverdi.com\/wp-content\/uploads\/2026\/04\/BLOG_COVER_Device-tree-overlays-on-Toradex-guide.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Rafa\u0142 F\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@riverdidisplays\" \/>\n<meta name=\"twitter:site\" content=\"@riverdidisplays\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rafa\u0142 F\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/riverdi.com\\\/es\\\/blog\\\/building-device-tree-overlays-on-toradex-for-riverdi-displays#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/riverdi.com\\\/es\\\/blog\\\/building-device-tree-overlays-on-toradex-for-riverdi-displays\"},\"author\":{\"name\":\"Rafa\u0142 F\",\"@id\":\"https:\\\/\\\/riverdi.com\\\/es#\\\/schema\\\/person\\\/dac328f88dda36bae87261c19a2e30ef\"},\"headline\":\"Construir superposiciones de \u00e1rboles de dispositivos en Toradex para pantallas Riverdi\",\"datePublished\":\"2026-04-21T10:00:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/riverdi.com\\\/es\\\/blog\\\/building-device-tree-overlays-on-toradex-for-riverdi-displays\"},\"wordCount\":3125,\"image\":{\"@id\":\"https:\\\/\\\/riverdi.com\\\/es\\\/blog\\\/building-device-tree-overlays-on-toradex-for-riverdi-displays#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/riverdi.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/BLOG_COVER_Device-tree-overlays-on-Toradex-guide.jpg\",\"articleSection\":[\"Pantalla 101\"],\"inLanguage\":\"es\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/riverdi.com\\\/es\\\/blog\\\/building-device-tree-overlays-on-toradex-for-riverdi-displays\",\"url\":\"https:\\\/\\\/riverdi.com\\\/es\\\/blog\\\/building-device-tree-overlays-on-toradex-for-riverdi-displays\",\"name\":\"Construir superposiciones de \u00e1rboles de dispositivos en Toradex para pantallas Riverdi - Riverdi\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/riverdi.com\\\/es#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/riverdi.com\\\/es\\\/blog\\\/building-device-tree-overlays-on-toradex-for-riverdi-displays#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/riverdi.com\\\/es\\\/blog\\\/building-device-tree-overlays-on-toradex-for-riverdi-displays#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/riverdi.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/BLOG_COVER_Device-tree-overlays-on-Toradex-guide.jpg\",\"datePublished\":\"2026-04-21T10:00:15+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/riverdi.com\\\/es#\\\/schema\\\/person\\\/dac328f88dda36bae87261c19a2e30ef\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/riverdi.com\\\/es\\\/blog\\\/building-device-tree-overlays-on-toradex-for-riverdi-displays#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/riverdi.com\\\/es\\\/blog\\\/building-device-tree-overlays-on-toradex-for-riverdi-displays\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/riverdi.com\\\/es\\\/blog\\\/building-device-tree-overlays-on-toradex-for-riverdi-displays#primaryimage\",\"url\":\"https:\\\/\\\/riverdi.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/BLOG_COVER_Device-tree-overlays-on-Toradex-guide.jpg\",\"contentUrl\":\"https:\\\/\\\/riverdi.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/BLOG_COVER_Device-tree-overlays-on-Toradex-guide.jpg\",\"width\":1280,\"height\":600},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/riverdi.com\\\/es\\\/blog\\\/building-device-tree-overlays-on-toradex-for-riverdi-displays#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Front Page\",\"item\":\"https:\\\/\\\/riverdi.com\\\/es\\\/portada\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Construir superposiciones de \u00e1rboles de dispositivos en Toradex para pantallas Riverdi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/riverdi.com\\\/es#website\",\"url\":\"https:\\\/\\\/riverdi.com\\\/es\",\"name\":\"Riverdi\",\"description\":\"Global TFT LCD Manufacturer\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/riverdi.com\\\/es?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/riverdi.com\\\/es#\\\/schema\\\/person\\\/dac328f88dda36bae87261c19a2e30ef\",\"name\":\"Rafa\u0142 F\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b208bcbc75c8894f7448c2283e1f99dd68d97018826b56edce8aeb3c8c3985ee?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b208bcbc75c8894f7448c2283e1f99dd68d97018826b56edce8aeb3c8c3985ee?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b208bcbc75c8894f7448c2283e1f99dd68d97018826b56edce8aeb3c8c3985ee?s=96&d=mm&r=g\",\"caption\":\"Rafa\u0142 F\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Construir superposiciones de \u00e1rboles de dispositivos en Toradex para pantallas Riverdi - Riverdi","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays","og_locale":"es_ES","og_type":"article","og_title":"Construir superposiciones de \u00e1rboles de dispositivos en Toradex para pantallas Riverdi - Riverdi","og_description":"El objetivo de esta gu\u00eda es crear un sistema en funcionamiento a partir de hardware limpio\/fresco, utilizando Torizon OS y archivos fuente de \u00e1rbol de dispositivos de ejemplo de Riverdi GitHub. As\u00ed lo conseguimos: Flashear Torizon OS desde cero Construye una superposici\u00f3n de \u00e1rbol de dispositivos personalizada desde Riverdi GitHub Activar superposici\u00f3n en Torizon Arranca [&hellip;]","og_url":"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays","og_site_name":"Riverdi","article_publisher":"https:\/\/www.facebook.com\/riverdi.displays\/","article_published_time":"2026-04-21T10:00:15+00:00","og_image":[{"width":1280,"height":600,"url":"https:\/\/riverdi.com\/wp-content\/uploads\/2026\/04\/BLOG_COVER_Device-tree-overlays-on-Toradex-guide.jpg","type":"image\/jpeg"}],"author":"Rafa\u0142 F","twitter_card":"summary_large_image","twitter_creator":"@riverdidisplays","twitter_site":"@riverdidisplays","twitter_misc":{"Escrito por":"Rafa\u0142 F","Tiempo de lectura":"17 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays#article","isPartOf":{"@id":"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays"},"author":{"name":"Rafa\u0142 F","@id":"https:\/\/riverdi.com\/es#\/schema\/person\/dac328f88dda36bae87261c19a2e30ef"},"headline":"Construir superposiciones de \u00e1rboles de dispositivos en Toradex para pantallas Riverdi","datePublished":"2026-04-21T10:00:15+00:00","mainEntityOfPage":{"@id":"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays"},"wordCount":3125,"image":{"@id":"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays#primaryimage"},"thumbnailUrl":"https:\/\/riverdi.com\/wp-content\/uploads\/2026\/04\/BLOG_COVER_Device-tree-overlays-on-Toradex-guide.jpg","articleSection":["Pantalla 101"],"inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays","url":"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays","name":"Construir superposiciones de \u00e1rboles de dispositivos en Toradex para pantallas Riverdi - Riverdi","isPartOf":{"@id":"https:\/\/riverdi.com\/es#website"},"primaryImageOfPage":{"@id":"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays#primaryimage"},"image":{"@id":"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays#primaryimage"},"thumbnailUrl":"https:\/\/riverdi.com\/wp-content\/uploads\/2026\/04\/BLOG_COVER_Device-tree-overlays-on-Toradex-guide.jpg","datePublished":"2026-04-21T10:00:15+00:00","author":{"@id":"https:\/\/riverdi.com\/es#\/schema\/person\/dac328f88dda36bae87261c19a2e30ef"},"breadcrumb":{"@id":"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays#primaryimage","url":"https:\/\/riverdi.com\/wp-content\/uploads\/2026\/04\/BLOG_COVER_Device-tree-overlays-on-Toradex-guide.jpg","contentUrl":"https:\/\/riverdi.com\/wp-content\/uploads\/2026\/04\/BLOG_COVER_Device-tree-overlays-on-Toradex-guide.jpg","width":1280,"height":600},{"@type":"BreadcrumbList","@id":"https:\/\/riverdi.com\/es\/blog\/building-device-tree-overlays-on-toradex-for-riverdi-displays#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Front Page","item":"https:\/\/riverdi.com\/es\/portada"},{"@type":"ListItem","position":2,"name":"Construir superposiciones de \u00e1rboles de dispositivos en Toradex para pantallas Riverdi"}]},{"@type":"WebSite","@id":"https:\/\/riverdi.com\/es#website","url":"https:\/\/riverdi.com\/es","name":"Riverdi","description":"Global TFT LCD Manufacturer","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/riverdi.com\/es?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/riverdi.com\/es#\/schema\/person\/dac328f88dda36bae87261c19a2e30ef","name":"Rafa\u0142 F","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/b208bcbc75c8894f7448c2283e1f99dd68d97018826b56edce8aeb3c8c3985ee?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/b208bcbc75c8894f7448c2283e1f99dd68d97018826b56edce8aeb3c8c3985ee?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b208bcbc75c8894f7448c2283e1f99dd68d97018826b56edce8aeb3c8c3985ee?s=96&d=mm&r=g","caption":"Rafa\u0142 F"}}]}},"_links":{"self":[{"href":"https:\/\/riverdi.com\/es\/wp-json\/wp\/v2\/posts\/129742","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/riverdi.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/riverdi.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/riverdi.com\/es\/wp-json\/wp\/v2\/users\/3328"}],"replies":[{"embeddable":true,"href":"https:\/\/riverdi.com\/es\/wp-json\/wp\/v2\/comments?post=129742"}],"version-history":[{"count":0,"href":"https:\/\/riverdi.com\/es\/wp-json\/wp\/v2\/posts\/129742\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/riverdi.com\/es\/wp-json\/wp\/v2\/media\/129316"}],"wp:attachment":[{"href":"https:\/\/riverdi.com\/es\/wp-json\/wp\/v2\/media?parent=129742"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/riverdi.com\/es\/wp-json\/wp\/v2\/categories?post=129742"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/riverdi.com\/es\/wp-json\/wp\/v2\/tags?post=129742"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}