Diferencias
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 | ||
bbx [2023/03/25 17:41] cnigri Incorporacion de QEMU y reorganizacion de dependencias |
bbx [2025/08/19 20:21] (actual) gzugman [FAQ] |
||
---|---|---|---|
Línea 5: | Línea 5: | ||
La idea es que el alumno pueda empaparse con el procedimiento básico para la generación de imágenes //custom// de Linux para sistemas embebidos. Cada caso, será particular al embebido en cuestión, pero típicamente consta de lo mismos **macro-pasos** enumerados. | La idea es que el alumno pueda empaparse con el procedimiento básico para la generación de imágenes //custom// de Linux para sistemas embebidos. Cada caso, será particular al embebido en cuestión, pero típicamente consta de lo mismos **macro-pasos** enumerados. | ||
- | |||
- | ====== Mapa de memoria ====== | ||
- | ==== Componentes del sistema ==== | ||
- | * **MLO :** | ||
- | Minimal LOader es un bootloader básico utilizado por TI (Texas Instruments) para las familias OMAP y derivados. Su principal misión es inicializar el hardware, unidades del SOC y | ||
- | periféricos de la placa, mínimo para la operación. Por lo general en este software se configura el controlador de RAM externa, terminal de depuración, | ||
- | |||
- | * **[[http:// | ||
- | Es un bootloader de propósito general destinado principalmente a embebidos. Entre las funciones implementadas se destacan la inicialización de los pines no críticos para la primera etapa de arranque, hardware secundario (USB, display), la copia de la imagen del kernel, rootfs y DTB de la memoria persistente a RAM y su posterior expansión (deflat) | ||
- | |||
- | * **[[http:// | ||
- | Es el binario (Device Tree Blob) asociado al DTS (Device Tree Source) que describe el hardware del sistema | ||
- | |||
- | * **zImage :** | ||
- | Imagen comprimida del kernel de Linux | ||
- | |||
- | * **rootfs :** | ||
- | Imagen del sistema de archivos del sistema. En el mismo se localizan todos los binarios necesarios para operación a nivel usuario (root/user) del sistema, así | ||
- | como tambien aquellos utilizados por el propio OS para su correcta ejecución. | ||
- | |||
- | |||
- | ==== SD ==== | ||
- | |||
- | <code asm> | ||
- | +--------------------------------------+ | ||
- | | | | ||
- | | MLO | | ||
- | | | | ||
- | +--------------------------------------+ | ||
- | | | | ||
- | | | ||
- | | | | ||
- | +--------------------------------------+ | ||
- | | | | ||
- | | DTB | | ||
- | | | | ||
- | +--------------------------------------+ | ||
- | | | | ||
- | | zImage | ||
- | | | | ||
- | +--------------------------------------+ | ||
- | | | | ||
- | | Linux rootfs | ||
- | | | | ||
- | +--------------------------------------+ | ||
- | </ | ||
- | |||
- | ==== RAM ==== | ||
- | {{: | ||
====== Procedimiento ====== | ====== Procedimiento ====== | ||
Línea 126: | Línea 77: | ||
user@machine: | user@machine: | ||
user@machine: | user@machine: | ||
+ | user@machine: | ||
+ | user@machine: | ||
+ | </ | ||
+ | Si se desea trabajar con el entorno visual [[https:// | ||
+ | <code bash> | ||
user@machine: | user@machine: | ||
user@machine: | user@machine: | ||
</ | </ | ||
- | |||
===== Instalación de emulador ===== | ===== Instalación de emulador ===== | ||
Instalar el emulador (responder Y a todo lo requerido) | Instalar el emulador (responder Y a todo lo requerido) | ||
Línea 337: | Línea 292: | ||
==== Preparación de la microSD ==== | ==== Preparación de la microSD ==== | ||
- | Verificar que la tarjeta microSD **no** se encuentre dentro de la lista de [[http:// | + | Verificar que la tarjeta microSD **no** se encuentre dentro de la lista de incompatibles |
**NOTA:** tener cuidado con los comandos a continuación, | **NOTA:** tener cuidado con los comandos a continuación, | ||
Línea 356: | Línea 311: | ||
<code bash> | <code bash> | ||
+ | |||
+ | Para el caso que nuestro dispositivo sea **/ | ||
+ | |||
+ | <code bash> | ||
Con el comando **lsblk** podrán obtener un listado de las unidades de almacenamiento y sus particiones. | Con el comando **lsblk** podrán obtener un listado de las unidades de almacenamiento y sus particiones. | ||
Línea 430: | Línea 389: | ||
=== Root File System === | === Root File System === | ||
- | <code bash> | + | <code bash> |
- | user@machine: | + | user@machine: |
- | user@machine: | + | user@machine: |
- | user@machine: | + | user@machine: |
Crear el archivo uEnv.txt en el directorio local de trabajo, con las siguientes lineas: | Crear el archivo uEnv.txt en el directorio local de trabajo, con las siguientes lineas: | ||
Línea 571: | Línea 530: | ||
</ | </ | ||
- | ===== Internet en Beaglebone a través de la PC ===== | + | ========== Internet en Beaglebone a través de la PC ========== |
- | Hay dos formas para lograrlo. | ||
- | ==== Primer método ==== | ||
- | === Pasos a realizar en la BBB === | ||
- | Ejecutar los siguientes comandos en la consola: | + | Hay dos formas para lograrlo. |
- | - sudo ifconfig usb0 192.168.7.2 | + | ==== Primer método ==== |
- | - sudo route add default gw 192.168.7.1 | + | |
=== Pasos a realizar en la PC === | === Pasos a realizar en la PC === | ||
- Correr ifconfig y anotar el nombre de la interfaz que tiene la dirección 192.168.7.1 (que es el que se conecta a la Beaglebone) y luego anotar el nombre de la interfaz que provee Internet. | - Correr ifconfig y anotar el nombre de la interfaz que tiene la dirección 192.168.7.1 (que es el que se conecta a la Beaglebone) y luego anotar el nombre de la interfaz que provee Internet. | ||
+ | Es importante no poner comillas en los nombres de las interfaces que se colocan en los comandos que se muestran arriba. Estos archivos se pueden poner un archivo batch ejecutable (de texto) para no tipearlos cada vez que arranque la PC o la Beaglebone. | ||
+ | |||
+ | Ejecutar los siguientes comandos por consola con los nombres de las interfaces correctas. | ||
- sudo su | - sudo su | ||
- ifconfig **nombre_interfaz_usb_de_BBB** 192.168.7.1 | - ifconfig **nombre_interfaz_usb_de_BBB** 192.168.7.1 | ||
Línea 593: | Línea 551: | ||
- echo 1 > / | - echo 1 > / | ||
- | Es importante no poner comillas en los nombres de las interfaces | + | Si reiniciamos la PC esta configuración se perderá, si se desea que permanezca hay que incluir pasos 2 a 4 en un archivo ejecutable de shell en incluirlo en el .bashrc |
- | === Verificar que haya internet | + | === Pasos a realizar en la BBB === |
- | ping www.example.com | + | |
- | En caso que no consigamos es probable que no este configurado ningún servidor DNS. | + | |
- | Para ello abrir el archivo "/ | + | |
- | sudo nano / | + | |
- | Si el archivo no tiene ningún nameserver, agregar: | + | Ejecutar los siguientes comandos en la consola: |
- | nameserver 8.8.8.8 | + | |
- | Luego reiniciar el servicio | + | 1) Crear un archivo config_gw.sh |
- | sudo systemctl restart systemd-resolved.service | + | |
- | Verificar nuevamente si se puede resolver | + | # |
+ | sudo ifconfig usb0 192.168.7.2 | ||
+ | sudo route add default gw 192.168.7.1 | ||
+ | |||
+ | 2) Proveer atributos de ejecucion: | ||
+ | |||
+ | chmod +x config_gw.sh | ||
+ | |||
+ | 3) Agregar | ||
+ | / | ||
+ | |||
+ | 4) Configurar DNS utilizando un archivo de configuración: | ||
+ | |||
+ | 4.a) Crear directorio donde guardaremos la configuracion: | ||
+ | |||
+ | sudo mkdir -p / | ||
+ | |||
+ | 4.b) Creamos un nuevo archivo, como ejemplo: | ||
+ | |||
+ | / | ||
+ | |||
+ | 4.c) Lo abrimos | ||
+ | sudo nano / | ||
+ | |||
+ | 4.d) y agregamos las configuraciones de DNS dentro de la seccion [Resolve]: | ||
+ | |||
+ | [Resolve] | ||
+ | DNS=8.8.8.8 8.8.4.4 | ||
+ | Domains=example.com local | ||
+ | |||
+ | 5) Reiniciar systemd-resolved: | ||
+ | Luego de aplicar los cambios, reiniciar el servicio systemd-resolved para que los cambios tomen efecto: | ||
+ | |||
+ | sudo systemctl restart systemd-resolved | ||
+ | |||
+ | 6) Reiniciar BBB | ||
+ | |||
+ | sudo reboot | ||
+ | |||
+ | 7) Verificar configuracion de DNS: | ||
+ | |||
+ | resolvectl status | ||
ping www.example.com | ping www.example.com | ||
+ | |||
+ | Si todo resulto exitoso, la BBB podrá resolver el dominio www.example.com | ||
+ | |||
+ | |||
==== Segundo método (NO seguro para producto) ==== | ==== Segundo método (NO seguro para producto) ==== | ||
Línea 652: | Línea 649: | ||
--- // | --- // | ||
--- // | --- // | ||
- | //2023/03/25 18:00// | + | |
+ | 2025/08/19 20:17// |