Gracias por enviar su consulta! Uno de los miembros de nuestro equipo se pondrá en contacto con usted en breve.
Gracias por enviar su reserva! Uno de los miembros de nuestro equipo se pondrá en contacto con usted en breve.
Duración 14 horas
Temario del curso
1. Introducción al kernel de Linux
- Resumen de Linux embebido
- Arquitectura del kernel de Linux
- Espacio de usuario vs. espacio de kernel
- Responsabilidades del kernel
- Flujo de trabajo del desarrollo de kernel
- Resumen 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
- Iniciación del dispositivo objetivo
3. Obtención y comprensión de los fuentes del kernel
- Árbol de fuentes del kernel de Linux
- Kernels estables vs. kernels de soporte a largo plazo
- Descarga de los fuentes del kernel
- Exploración de la estructura del código fuente
- Documentación del kernel
- Gestión de versiones del kernel
4. Configuración, compilación e iniciación del kernel
- Configuración del kernel usando menuconfig
- Selección de características del kernel
- Compilación cruzada del kernel
- Creación de imágenes de kernel
- Instalación de módulos de kernel
- Resumen del bootloader
- Iniciación de un kernel personalizado
5. Fundamentos de Device Tree
- Propósito del Device Tree
- Archivos de fuente de Device Tree (DTS)
- Device Tree Blob (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 kernel de Linux
- Arquitectura de módulos de kernel
- Creación de módulos de kernel cargables
- Carga y descarga de módulos
- Parámetros de módulos
- Dependencias de módulos
- Interacción con módulos de 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 panics del kernel
- Mensajes de oops
- Depuración con GDB
- Herramientas básicas de seguimiento de rendimiento
8. Controladores de dispositivos de caracteres
- Modelo de controladores 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/S mapeada en memoria
10. Control de versiones con Git
- Fundamentos de Git
- Gestión del código fuente del kernel
- Creación de ramas y fusiones
- Creación de parches
- Revisión de cambios
- Colaboración en el desarrollo de kernels
11. Laboratorios prácticos de desarrollo de kernels
- Configuración de un kernel personalizado
- Compilación y despliegue 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 de Device Tree
- 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
- Errores comunes de desarrollo
- Recursos de documentación del kernel
- Flujo de trabajo de contribución al código abierto
- Repaso de conceptos clave
- Preguntas y respuestas
- Próximos pasos para el desarrollo del kernel de Linux
Requerimientos
Conocimientos básicos del uso de un sistema GNU/Linux.
Reseñas (2)
El conocimiento del formador. Fue capaz de responder a todas mis preguntas, incluso a las relacionadas con nuestra plataforma. También continuó ayudando hasta que todos comprendimos el material.
James O'Donnell - Tennant Company
Curso - Embedded Linux Kernel and Driver Development
Traducción Automática
I liked the hands-on nature of it.
Maurice Egan
Curso - Embedded Linux Kernel and Driver Development
Traducción Automática