Ponte en Contacto

Temario del curso

1. Introducción al kernel de Linux</h3>
  • Vista general de Linux embebido</li>
  • Arquitectura del kernel de Linux</li>
  • Espacio de usuario y espacio de kernel</li>
  • Responsabilidades del kernel</li>
  • Flujo de trabajo de desarrollo de kernels</li>
  • Resumen de las plataformas embebidas soportadas</li> </ul>

    2. Configuración del entorno de desarrollo</h3>
    • Preparación de la estación de trabajo</li>
    • Conceptos de compilación cruzada</li>
    • Instalación de las herramientas de desarrollo necesarias</li>
    • Configuración de la placa de desarrollo BeagleBone Black</li>
    • Configuración de la consola serial</li>
    • Arranque del dispositivo de destino</li> </ul>

      3. Obtención y comprensión del código fuente del kernel</h3>
      • Árbol de fuentes del kernel de Linux</li>
      • Kernels estables frente a kernels de soporte prolongado (LTS)</li>
      • Descarga de las fuentes del kernel</li>
      • Exploración de la estructura del código fuente</li>
      • Documentación del kernel</li>
      • Gestión de versiones del kernel</li> </ul>

        4. Configuración, compilación y arranque del kernel</h3>
        • Configuración del kernel mediante menuconfig</li>
        • Selección de funciones del kernel</li>
        • Compilación cruzada del kernel</li>
        • Construcción de imágenes del kernel</li>
        • Instalación de módulos del kernel</li>
        • Resumen del bootloader</li>
        • Arranque de un kernel personalizado</li> </ul>

          5. Fundamentos del Device Tree</h3>
          • Propósito del Device Tree</li>
          • Archivos de origen del Device Tree (DTS)</li>
          • Blob del Device Tree (DTB)</li>
          • Conceptos de descripción de hardware</li>
          • Modificación de archivos Device Tree</li>
          • Construcción y despliegue de Device Trees</li> </ul>

            6. Módulos del kernel de Linux</h3>
            • Arquitectura de los módulos del kernel</li>
            • Construcción de módulos de kernel cargables</li>
            • Carga y descarga de módulos</li>
            • Parámetros de los módulos</li>
            • Dependencias de los módulos</li>
            • Interacción con los módulos del kernel</li>
            • Técnicas de depuración de módulos</li> </ul>

              7. Depuración del kernel de Linux</h3>
              • Registro del kernel con printk()</li>
              • Uso de dmesg</li>
              • Depuración dinámica</li>
              • Análisis de pánico del kernel (kernel panic)</li>
              • Mensajes de error (Oops)</li>
              • Depuración con GDB</li>
              • Herramientas básicas de trazado de rendimiento</li> </ul>

                8. Controladores de dispositivos de caracteres</h3>
                • Modelo de controladores de dispositivos de Linux</li>
                • Dispositivos de caracteres</li>
                • Registro de controladores</li>
                • Operaciones de archivo</li>
                • Operaciones de lectura y escritura</li>
                • Interfaz IOCTL</li>
                • Gestión de memoria</li>
                • Limpieza del controlador</li> </ul>

                  9. Integración de controladores y acceso al hardware</h3>
                  • Dispositivos y controladores de plataforma</li>
                  • Programación de GPIO</li>
                  • Manejo de interrupciones</li>
                  • Temporizadores y trabajos diferidos</li>
                  • Acceso a registros de hardware</li>
                  • Trabajo con E/S mapeada en memoria (memory-mapped I/O)</li> </ul>

                    10. Control de versiones con Git</h3>
                    • Fundamentos de Git</li>
                    • Gestión del código fuente del kernel</li>
                    • Creación de ramas y fusión (branching y merging)</li>
                    • Creación de parches (patches)</li>
                    • Revisión de cambios</li>
                    • Colaboración en el desarrollo del kernel</li> </ul>

                      11. Laboratorios prácticos de desarrollo de kernels</h3>
                      • Configuración de un kernel personalizado</li>
                      • Construcción y despliegue del kernel</li>
                      • Creación de un módulo de kernel sencillo</li>
                      • Desarrollo de un controlador básico de dispositivo de caracteres</li>
                      • Modificación de archivos Device Tree</li>
                      • Depuración de problemas del kernel en BeagleBone Black</li> </ul>

                        12. Mejores prácticas y resumen</h3>
                        • Estilo de codificación del kernel</li>
                        • Escritura de controladores mantenibles</li>
                        • Errores comunes en el desarrollo</li>
                        • Recursos de documentación del kernel</li>
                        • Flujo de trabajo de contribución al código abierto</li>
                        • Repaso de los conceptos clave</li>
                        • Preguntas y respuestas</li>
                        • Próximos pasos en el desarrollo de kernels de Linux</li> </ul>

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