Ponte en Contacto
 Duración 14 horas

Temario del curso

1. Introducción al Kernel de Linux[/7]

  • Vista general de Linux Embebido[/9]
  • Arquitectura del kernel de Linux[/11]
  • Espacio de usuario frente a espacio de kernel[/13]
  • Responsabilidades del kernel[/15]
  • Flujo de trabajo de desarrollo del kernel[/17]
  • Vista general de las plataformas embebidas soportadas[/19]

2. Configuración del Entorno de Desarrollo[/21]

  • Preparación de la estación de trabajo de desarrollo[/23]
  • Conceptos de compilación cruzada[/25]
  • Instalación de las herramientas de desarrollo necesarias[/27]
  • Configuración de la placa de desarrollo BeagleBone Black[/29]
  • Configuración de la consola serial[/31]
  • Inicio del dispositivo objetivo[/33]

3. Obtención y Comprensión del Código Fuente del Kernel[/35]

  • Árbol de código fuente del kernel de Linux[/37]
  • Kernels estables frente a kernels de soporte a largo plazo[/39]
  • Descarga de los códigos fuente del kernel[/41]
  • Exploración de la estructura del código fuente[/43]
  • Documentación del kernel[/45]
  • Gestión de versiones del kernel[/47]

4. Configuración, Compilación e Inicio del Kernel[/49]

  • Configuración del kernel utilizando menuconfig[/51]
  • Selección de características del kernel[/53]
  • Compilación cruzada del kernel[/55]
  • Construcción de imágenes del kernel[/57]
  • Instalación de módulos del kernel[/59]
  • Visión general del gestor de arranque (bootloader)[/61]
  • Arranque de un kernel personalizado[/63]

5. Fundamentos de Device Tree[/65]

  • Propósito de Device Tree[/67]
  • Archivos de Fuente de Device Tree (DTS)[/69]
  • Objeto Binario de Device Tree (DTB)[/71]
  • Conceptos de descripción de hardware[/73]
  • Modificación de archivos Device Tree[/75]
  • Compilación y despliegue de Device Trees[/77]

6. Módulos del Kernel de Linux[/79]

  • Arquitectura de los módulos del kernel[/81]
  • Construcción de módulos de kernel cargables[/83]
  • Carga y descarga de módulos[/85]
  • Parámetros de los módulos[/87]
  • Dependencias de los módulos[/89]
  • Interacción con los módulos del kernel[/91]
  • Técnicas de depuración de módulos[/93]

7. Depuración del Kernel de Linux[/95]

  • Registro de kernel con printk()[/97]
  • Uso de dmesg[/99]
  • Depuración dinámica[/101]
  • Análisis de pánico del kernel (kernel panic)[/103]
  • Mensajes de error Oops[/105]
  • Depuración con GDB[/107]
  • Herramientas básicas de seguimiento de rendimiento[/109]

8. Controladores de Dispositivos de Caracteres[/111]

  • Modelo de controladores de dispositivos de Linux[/113]
  • Dispositivos de caracteres[/115]
  • Registro de controladores[/117]
  • Operaciones de archivos[/119]
  • Operaciones de lectura y escritura[/121]
  • Interfaz IOCTL[/123]
  • Gestión de memoria[/125]
  • Limpieza del controlador[/127]

9. Integración de Controladores y Acceso a Hardware[/129]

  • Dispositivos y controladores de plataforma[/131]
  • Programación de GPIO[/133]
  • Manejo de interrupciones[/135]
  • Temporizadores y trabajo diferido[/137]
  • Acceso a registros de hardware[/139]
  • Trabajo con E/S mapeada en memoria[/141]

10. Control de Versiones con Git[/143]

  • Fundamentos de Git[/145]
  • Gestión del código fuente del kernel[/147]
  • Ramas y fusiones (branching and merging)[/149]
  • Creación de parches (patches)[/151]
  • Revisión de cambios[/153]
  • Colaboración en el desarrollo del kernel[/155]

11. Laboratorios Prácticos de Desarrollo de Kernel[/157]

  • Configuración de un kernel personalizado[/159]
  • Compilación y despliegue del kernel[/161]
  • Creación de un módulo de kernel simple[/163]
  • Desarrollo de un controlador de dispositivo de caracteres básico[/165]
  • Modificación de archivos Device Tree[/167]
  • Depuración de problemas del kernel en BeagleBone Black[/169]

12. Mejores Prácticas y Resumen[/171]

  • Estilo de codificación del kernel[/173]
  • Escritura de controladores mantenibles[/175]
  • Errores comunes en el desarrollo[/177]
  • Recursos de documentación del kernel[/179]
  • Flujo de trabajo para contribuciones de código abierto[/181]
  • Repaso de conceptos clave[/183]
  • Preguntas y respuestas[/185]
  • Próximos pasos para el desarrollo del kernel de Linux[/187]

Requerimientos

Conocimiento básico del uso de un sistema GNU/Linux[/5]

Número de participantes


Precio por participante

Reseñas (2)

Próximos cursos

Categorías Relacionadas