Ponte en Contacto

Temario del curso

1. Introducción al Kernel de Linux

  • Panorama general del Linux embebido
  • Arquitectura del kernel de Linux
  • Espacio de usuario frente a espacio de kernel
  • Responsabilidades del kernel
  • Flujo de trabajo para el desarrollo del kernel
  • Panorama general de las plataformas embebidas admitidas

2. Configuración del Entorno de Desarrollo

  • Preparación del estacionamiento de desarrollo
  • Conceptos de compilación cruzada
  • Instalación de las herramientas de desarrollo requeridas
  • Configuración de la placa de desarrollo BeagleBone Black
  • Configuración de la consola serie
  • Arranque del dispositivo objetivo

3. Obteniendo y Entendiendo el Código Fuente del Kernel

  • Árbol de código fuente del kernel de Linux
  • Kernels estables versus de soporte a largo plazo (LTS)
  • Descarga de fuentes del kernel
  • Exploración de la estructura del código fuente
  • Documentación del kernel
  • Gestión de versiones del kernel

4. Configurando, Compilando y Arrancando el Kernel

  • Configuración del kernel usando menuconfig
  • Selección de características del kernel
  • Compilación cruzada del kernel
  • Generación de imágenes del kernel
  • Instalación de módulos del kernel
  • Panorama general del cargador de arranque (bootloader)
  • Arranque de un kernel personalizado

5. Fundamentos del Árbol de Dispositivos (Device Tree)

  • Propósito del Árbol de Dispositivos
  • Archivos de origen del Árbol de Dispositivos (DTS)
  • Gemelo del Árbol de Dispositivos (DTB)
  • Conceptos de descripción de hardware
  • Modificación de archivos del Árbol de Dispositivos
  • Construcción e implementación de Árboles de Dispositivos

6. Módulos del Kernel de Linux

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

7. Depuración del Kernel de Linux

  • Registro del kernel con printk()
  • Uso de dmesg
  • Depuración dinámica
  • Análisis de pánicos del kernel
  • Mensajes Oops
  • Depuración con GDB
  • Herramientas básicas de trazado de rendimiento

8. Controladores de Dispositivos de Caracteres

  • Modelo de controlador de dispositivos de Linux
  • Dispositivos de caracteres
  • 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 GPIO
  • Gestión de interrupciones
  • Acceso a registros de hardware
  • Trabajo con E/S mapeada en memoria (Memory-Mapped I/O)

10. Control de Versiones con Git

  • Fundamentos de Git
  • Gestión del código fuente del kernel
  • Ramas y fusiones (Branching and merging)
  • Creación de parches
  • Revisión de cambios
  • Colaboración en el desarrollo del kernel

11. Laboratorios Prácticos de Desarrollo del Kernel

  • Configuración de un kernel personalizado
  • Construcción e implementación del kernel
  • Creación de un módulo de kernel simple
  • Desarrollo de un controlador básico de dispositivo de caracteres
  • Modificación de archivos del Árbol de Dispositivos
  • Depuración de problemas del kernel en BeagleBone Black

12. Mejores Prácticas y Resumen

  • Estilo de codificación del kernel
  • Escritura de controladores mantenibles
  • Fallas comunes en el desarrollo
  • Recursos de documentación del kernel
  • Flujo de trabajo para contribuciones de código abierto
  • Revisión de conceptos clave
  • Preguntas y respuestas
  • Próximos pasos para el desarrollo del kernel de Linux

Requerimientos

Familiaridad básica con el uso de un sistema GNU/Linux

 14 Horas

Número de participantes


Precio por participante

Reseñas (2)

Próximos cursos

Categorías Relacionadas