Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
bbx [2023/05/02 00:34]
cnigri Actualizacion de dependencias
bbx [2023/10/19 21:57] (actual)
cnigri Aclaracion para caso SD
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, relojes del sistema y unidades de control de alimentación 
- 
-* **[[http://www.denx.de/wiki/U-Boot|U-Boot]] :** 
-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://wiki.electron.frba.utn.edu.ar/doku.php?id=td3:device_tree_presentation|DTB]] :** 
-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                 | 
-|                                      | 
-+--------------------------------------+ 
-|                                      | 
-|                 U-Boot               | 
-|                                      | 
-+--------------------------------------+ 
-|                                      | 
-|                  DTB                 | 
-|                                      | 
-+--------------------------------------+ 
-|                                      | 
-|                zImage                | 
-|                                      | 
-+--------------------------------------+ 
-|                                      | 
-|              Linux rootfs            | 
-|                                      | 
-+--------------------------------------+  
-</code> 
- 
-==== RAM ==== 
-{{:td3:under_construction.jpg|105x200}} 
  
 ====== Procedimiento ====== ====== Procedimiento ======
Línea 126: Línea 77:
 user@machine:~/ubicacion_carpeta/Imagen_BBB$ sudo apt install flex user@machine:~/ubicacion_carpeta/Imagen_BBB$ sudo apt install flex
 user@machine:~/ubicacion_carpeta/Imagen_BBB$ sudo apt install build-essential user@machine:~/ubicacion_carpeta/Imagen_BBB$ sudo apt install build-essential
-user@machine:~/ubicacion_carpeta/Imagen_BBB$ sudo apt-get install libncurses5 +user@machine:~/ubicacion_carpeta/Imagen_BBB$ sudo apt install libncurses5 
-user@machine:~/ubicacion_carpeta/Imagen_BBB$ sudo apt install install libpython2.7 +user@machine:~/ubicacion_carpeta/Imagen_BBB$ sudo apt install libpython2.7
-user@machine:~/ubicacion_carpeta/Imagen_BBB$ sudo apt install ddd +
-user@machine:~/ubicacion_carpeta/Imagen_BBB$ sudo apt install gdb-multiarch+
 </code> </code>
 Si se desea trabajar con el entorno visual [[https://www.gnu.org/software/ddd/ | DDD ]] y disponer del [[https://www.gnu.org/software/gdb/ | GDB]] para depurar múltiples arquitecturas (el conjunto de herramientas //crosstoolchain// ya dispone del //gdb// para la arquitectura ARM) Si se desea trabajar con el entorno visual [[https://www.gnu.org/software/ddd/ | DDD ]] y disponer del [[https://www.gnu.org/software/gdb/ | GDB]] para depurar múltiples arquitecturas (el conjunto de herramientas //crosstoolchain// ya dispone del //gdb// para la arquitectura ARM)
Línea 343: 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://http://wiki.electron.frba.utn.edu.ar/doku.php?id=td3:bbx&do=edit&rev=#faq|incompatibles]])+Verificar que la tarjeta microSD **no** se encuentre dentro de la lista de incompatibles en la sección FAQ (al final de esta página)
  
 **NOTA:** tener cuidado con los comandos a continuación, sobre todo con el comando **dd**, ya que si ponemos mal el //device// (el "disco" en este caso"), podemos llegar a perder la PC Host. Para más información, ingresar a la pagina [[http://man7.org/linux/man-pages/man1/dd.1.html|man linux dd]]. **NOTA:** tener cuidado con los comandos a continuación, sobre todo con el comando **dd**, ya que si ponemos mal el //device// (el "disco" en este caso"), podemos llegar a perder la PC Host. Para más información, ingresar a la pagina [[http://man7.org/linux/man-pages/man1/dd.1.html|man linux dd]].
Línea 362: Línea 311:
  
 <code bash>user@machine:~/ubicacion_carpeta/Imagen_BBB$ export DISK=/dev/mmcblk0</code> <code bash>user@machine:~/ubicacion_carpeta/Imagen_BBB$ export DISK=/dev/mmcblk0</code>
 +
 +Para el caso que nuestro dispositivo sea **/dev/sd<letra><numero>**
 +
 +<code bash>user@machine:~/ubicacion_carpeta/Imagen_BBB$ export DISK=/dev/sd<letra></code>
  
 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 436: Línea 389:
 === Root File System === === Root File System ===
  
-<code bash>user@machine:~/ubicacion_carpeta/Imagen_BBB$ sudo tar xfvp ./*-*-*-armhf-*/armhf-rootfs-*.tar -C /media/rootfs/  +<code bash>user@machine:~/ubicacion_carpeta/Imagen_BBB/ubuntu-XXXX-XXXX-XXX-XXX$ sudo tar xfvp ./*-*-*-armhf-*/armhf-rootfs-*.tar -C /media/rootfs/  
-user@machine:~/ubicacion_carpeta/Imagen_BBB$ sync +user@machine:~/ubicacion_carpeta/Imagen_BBB/ubuntu-XXXX-XXXX-XXX-XXX$ sync 
-user@machine:~/ubicacion_carpeta/Imagen_BBB$ sudo chown root:root /media/rootfs/ +user@machine:~/ubicacion_carpeta/Imagen_BBB/ubuntu-XXXX-XXXX-XXX-XXX$ sudo chown root:root /media/rootfs/ 
-user@machine:~/ubicacion_carpeta/Imagen_BBB$ sudo chmod 755 /media/rootfs/</code>+user@machine:~/ubicacion_carpeta/Imagen_BBB/ubuntu-XXXX-XXXX-XXX-XXX$ sudo chmod 755 /media/rootfs/</code>
  
 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: