Ponte en Contacto

Temario del curso

1. Introducción al Núcleo de Linux

  • Visión general de Linux integrado
  • Arquitectura del núcleo de Linux
  • Espacio de usuario frente a espacio del núcleo
  • Responsabilidades del núcleo
  • Flujo de trabajo para el desarrollo del núcleo
  • Visión general de las plataformas integradas admitidas

2. Configuración del Entorno de Desarrollo

  • Preparación de la estación de trabajo para 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
  • Inicio del dispositivo destino

3. Obteniendo y Entendiendo el Código Fuente del Núcleo

  • Árbol de código fuente del núcleo de Linux
  • Núcleos estables frente a núcleos 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 e Inicio del Núcleo

  • Configuración del núcleo mediante menuconfig
  • Selección de características del núcleo
  • Compilación cruzada del núcleo
  • Construcción de imágenes del núcleo
  • Instalación de módulos del núcleo
  • Visión general del cargador de arranque (Bootloader)
  • Inicio de un núcleo personalizado

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

  • Propósito del Árbol de Dispositivos
  • Archivos de origen del Árbol de Dispositivos (DTS)
  • Árbol de Dispositivos Blob (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 Núcleo de Linux

  • Arquitectura de módulos del núcleo
  • Construcción de módulos cargables del núcleo
  • Carga y descarga de módulos
  • Parámetros de los módulos
  • Dependencias de los 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

  • Registro del núcleo con printk()
  • Uso de dmesg
  • Depuración dinámica
  • Análisis de panic del núcleo
  • Mensajes de error (Oops)
  • Depuración con GDB
  • Herramientas básicas de seguimiento 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 de GPIO
  • Gestión de interrupciones
  • Temporizadores y trabajo diferido
  • Acceso a registros de hardware
  • Trabajo con E/M mapeada en memoria

10. Control de Versiones con Git

  • Fundamentos de Git
  • Gestión del código fuente del núcleo
  • Ramas y fusiones
  • 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
  • Construcción e implementación del núcleo
  • Creación de un módulo simple del núcleo
  • Desarrollo de un controlador básico de dispositivo de caracteres
  • Modificación de archivos del Árbol de Dispositivos
  • Depuración de problemas del núcleo en BeagleBone Black

12. Mejores Prácticas y Resumen

  • Estilo de codificación del núcleo
  • Escribir controladores mantenibles
  • Pitfalls comunes en el desarrollo
  • Recursos de documentación del núcleo
  • Flujo de trabajo para contribución al código abierto
  • Revisión de conceptos clave
  • Preguntas y respuestas
  • Siguientes pasos para el desarrollo del núcleo 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