Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previa | |||
| td3:edicion_de_device_tree_en_beagle_bone [2017/12/16 20:58] – gdegiovanni | td3:edicion_de_device_tree_en_beagle_bone [2026/09/11 13:14] (actual) – borrado - editor externo (Fecha desconocida) 127.0.0.1 | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| - | ====== Método básico de edición de device tree en Beagle Bone ====== | ||
| - | ===== Cómo obtener el directorio que contiene archivos de device tree ===== | ||
| - | Las distribuciones de Linux tienen un directorio en el que se almacenan los [[device_tree_presentation|device tree]] en formato binario con extensión dtb. El objetivo es modificar el device tree para que en vez de usar el controlador de dispositivo estándar para un periférico, | ||
| - | Lamentablemente las diferentes distribuciones usan su propio directorio para almacenar los archivos dtb. Por ejemplo, en versiones modernas de Debian el directorio es ''/ | ||
| - | |||
| - | Si no existe ese directorio, lo más conveniente es ir al directorio raíz, y logueado como root, ejecutar el comando '' | ||
| - | |||
| - | A partir de este momento suponemos que el directorio actual es el que contiene los archivos dtb. | ||
| - | |||
| - | ===== Editando el device tree ===== | ||
| - | Para poder editar el device tree, necesitamos convertir el formato binario a texto. Eso se logra mediante el comando dtc: | ||
| - | |||
| - | '' | ||
| - | |||
| - | La opción -I indica el formato de entrada (binario), la opción -O el formato de salida (texto) y la opción -o el archivo de salida. | ||
| - | |||
| - | Suponiendo que queremos escribir un controlador de dispositivos que maneje el I2C número 2, que de acuerdo al manual del procesador Sitara AM3359 se encuentra en la dirección física 0x4819c000, debemos buscar la cadena @4819c000 y luego reemplazamos la entrada para que quede de la siguiente manera: | ||
| - | |||
| - | i2c_td3@4819c000 { | ||
| - | compatible = " | ||
| - | # | ||
| - | #size-cells = < | ||
| - | ti,hwmods = " | ||
| - | reg = < | ||
| - | interrupts = < | ||
| - | . | ||
| - | . | ||
| - | . | ||
| - | } | ||
| - | |||
| - | | ||
| - | Las líneas modificadas son aquéllas que incluyen el texto td3. | ||
| - | |||
| - | Una vez realizada la modificación, | ||
| - | |||
| - | ===== Generación del nuevo archivo binario de device tree ===== | ||
| - | |||
| - | Al arrancar el sistema, Linux puede obtener información para el device tree de otros archivos dtb. Para no tener ese inconveniente, | ||
| - | |||
| - | Para generar el nuevo archivo dtb en base al fuente que acabamos de modificar ejecutamos: | ||
| - | |||
| - | '' | ||
| - | |||
| - | En este caso el formato de entrada es texto (dts) y de salida en binario (dtb). | ||
| - | |||
| - | ===== Verificación de nuestros cambios en el device tree ===== | ||
| - | |||
| - | Una vez generado el archivo binario am335x-boneblack.dtb, | ||
| - | |||
| - | Es sumamente importante seguir los pasos como se indica en este instructivo, | ||
| - | |||
| - | ====== Método alternativo de edición de device tree en Beagle Bone ====== | ||
| - | Se deben repetir los pasos 1 y 2 pero el dtb modificado se guarda con un nombre no default (por ejemplo '' | ||
| - | |||
| - | ===== Desactivación de los dtbo y elección del dtb a cargar ===== | ||
| - | Se abre el archivo '' | ||
| - | |||
| - | Se comenta la siguiente línea: | ||
| - | |||
| - | ''# | ||
| - | |||
| - | |||
| - | Se eliminan los comentarios de las siguientes líneas: | ||
| - | |||
| - | '' | ||
| - | |||
| - | '' | ||
| - | |||
| - | '' | ||
| - | |||
| - | '' | ||
| - | |||
| - | '' | ||
| - | |||
| - | |||
| - | Se agrega la siguiente línea (se puede usar otro nombre pero siempre que se respete en el dtb generado): | ||
| - | |||
| - | '' | ||
| - | |||
| - | ===== Resultado ===== | ||
| - | |||
| - | Si todo salío bien el kernel realizará el boot con el nuevo dtb elegido y sin los dtbo. La verificación se realiza del mismo modo que en el procedimiento anterior | ||
| - | |||
| - | |||
| - | U-Boot SPL 2017.09-rc2-00002-g7c9353e752 (Aug 31 2017 - 09:25:14) | ||
| - | |||
| - | Trying to boot from MMC1 | ||
| - | |||
| - | |||
| - | |||
| - | U-Boot 2017.09-rc2-00002-g7c9353e752 (Aug 31 2017 - 09:25:14 -0500), Build: jenkins-github_Bootloader-Builder-596 | ||
| - | |||
| - | |||
| - | CPU : AM335X-GP rev 2.1 | ||
| - | |||
| - | I2C: ready | ||
| - | |||
| - | DRAM: 512 MiB | ||
| - | |||
| - | No match for driver ' | ||
| - | |||
| - | No match for driver ' | ||
| - | |||
| - | Some drivers were not found | ||
| - | |||
| - | Reset Source: Power-on reset has occurred. | ||
| - | |||
| - | MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1 | ||
| - | |||
| - | Using default environment | ||
| - | |||
| - | ... | ||
| - | |||
| - | Checking for: /uEnv.txt ... | ||
| - | |||
| - | Checking for: /boot.scr ... | ||
| - | |||
| - | Checking for: / | ||
| - | |||
| - | Checking for: / | ||
| - | |||
| - | gpio: pin 55 (gpio 55) value is 1 | ||
| - | |||
| - | 2051 bytes read in 56 ms (35.2 KiB/s) | ||
| - | |||
| - | Loaded environment from / | ||
| - | |||
| - | **debug: [dtb=td3-BBB.dtb] ... | ||
| - | |||
| - | Using: dtb=td3-BBB.dtb ...** | ||
| - | |||
| - | Checking if uname_r is set in / | ||
| - | |||
| - | gpio: pin 56 (gpio 56) value is 1 | ||
| - | |||
| - | Running uname_boot ... | ||
| - | |||
| - | loading / | ||
| - | |||
| - | 9464664 bytes read in 645 ms (14 MiB/s) | ||
| - | |||
| - | **loading / | ||
| - | |||
| - | 56827 bytes read in 131 ms (422.9 KiB/s) | ||
| - | |||
| - | **uboot_overlays: | ||
| - | |||
| - | loading / | ||
| - | |||
| - | 5908180 bytes read in 426 ms (13.2 MiB/s) | ||
| - | |||
| - | debug: [console=ttyO0, | ||
| - | |||
| - | debug: [bootz 0x82000000 0x88080000: | ||
| - | |||
| - | ## Flattened Device Tree blob at 88000000 | ||
| - | |||
| - | | ||
| - | |||
| - | | ||
| - | |||
| - | | ||
| - | |||
| - | |||
| - | Starting kernel ... | ||
| - | |||
| - | [ 0.000848] clocksource_probe: | ||
| - | |||
| - | [ 2.305683] wkup_m3_ipc 44e11324.wkup_m3_ipc: | ||
| - | |||
| - | [ 2.432383] cpu cpu0: " | ||
| - | |||
| - | [ 2.525903] ti_emif_sram 4c000000.emif: | ||
| - | |||
| - | [ 2.545563] omap_voltage_late_init: | ||
| - | |||
| - | ... | ||
| - | |||
| - | Debian GNU/Linux 9 beaglebone ttyS0 | ||
| - | |||
| - | BeagleBoard.org Debian Image 2017-08-31 | ||
| - | |||
| - | Support/ | ||
| - | |||
| - | default username: | ||