Ponte en Contacto

Temario del curso

1. Introducción al núcleo de Linux

  • Vista general de Linux embebido
  • Arquitectura del núcleo de Linux
  • Espacio de usuario vs. espacio de núcleo
  • Responsabilidades del núcleo
  • Flujo de trabajo de desarrollo del núcleo
  • Vista general de las plataformas embebidas soportadas

2. Configuración del entorno de desarrollo

  • Preparación de la estación de trabajo de desarrollo
  • Conceptos de compilación cruzada
  • Instalación de herramientas de desarrollo necesarias
  • Configuración de la placa de desarrollo BeagleBone Black
  • Configuración de la consola serial
  • Arranque del dispositivo objetivo

3. Obtención y comprensión del código fuente del núcleo

  • Árbol de fuentes del núcleo de Linux
  • Núcleos estables vs. de soporte a largo plazo
  • Descarga de las fuentes del núcleo
  • Exploración de la estructura del código fuente
  • Documentación del núcleo
  • Gestión de versiones del núcleo

4. Configuración, compilación y arranque del núcleo

  • Configuración del núcleo mediante menuconfig
  • Selección de características del núcleo
  • Compilación cruzada del núcleo
  • Creación de imágenes del núcleo
  • Instalación de módulos del núcleo
  • Vista general del programador de arranque (bootloader)
  • Arranque de un núcleo personalizado

5. Fundamentos de Device Tree

  • Propósito de Device Tree
  • Archivos de fuente de Device Tree (DTS)
  • Objeto de Device Tree (DTB)
  • Conceptos de descripción de hardware
  • Modificación de archivos de Device Tree
  • Compilación y despliegue de Device Trees

6. Módulos del núcleo de Linux

  • Arquitectura de módulos del núcleo
  • Creación de módulos de núcleo cargables
  • Carga y descarga de módulos
  • Parámetros de módulo
  • Dependencias de módulos
  • Interacción con módulos del núcleo
  • Técnicas de depuración de módulos

7. Depuración del núcleo de Linux

  • Registros del núcleo con printk()
  • Uso de dmesg
  • Depuración dinámica
  • Análisis de pánico del núcleo
  • Mensajes de Oops
  • Depuración con GDB
  • Herramientas básicas de rastreo de rendimiento

8. Controladores de dispositivos de carácter

  • Modelo de controladores de dispositivos de Linux
  • Dispositivos de carácter
  • Registro de controladores
  • Operaciones de archivo
  • Operaciones de lectura y escritura
  • Interfaz IOCTL
  • Gestión de memoria
  • Limpieza del controlador

9. Integración de controladores y acceso al hardware

  • Dispositivos y controladores de plataforma
  • Programación de GPIO
  • Manejo de interrupciones
  • Temporizadores y trabajo diferido
  • Acceso a registros de hardware
  • Trabajo con E/S mapeada en memoria

10. Control de versiones con Git

  • Fundamentos de Git
  • Gestión del código fuente del núcleo
  • Ramas y combinaciones (merging)
  • Creación de parches
  • Revisión de cambios
  • Colaboración en el desarrollo del núcleo

11. Laboratorios prácticos de desarrollo del núcleo

  • Configuración de un núcleo personalizado
  • Compilación y despliegue del núcleo
  • Creación de un módulo de núcleo sencillo
  • Desarrollo de un controlador básico de dispositivo de carácter
  • Modificación de archivos de Device Tree
  • Depuración de problemas del núcleo en BeagleBone Black

12. Mejores prácticas y resumen

  • Estilo de codificación del núcleo
  • Escritura de controladores mantenibles
  • Piezas comunes en el desarrollo
  • Recursos de documentación del núcleo
  • Flujo de trabajo de contribución al código abierto
  • Repaso de conceptos clave
  • Preguntas y respuestas
  • Próximos pasos en el desarrollo del núcleo de Linux

Requerimientos

Conocimientos básicos del uso de un sistema GNU/Linux

 14 Horas

Número de participantes


Precio por participante

Reseñas (2)

Próximos cursos

Categorías Relacionadas