Contattataci

Struttura del corso

1. Introduzione al Kernel Linux

  • Panoramica su Linux Embedded
  • Architettura del kernel Linux
  • User space vs. kernel space
  • Rispettabilità del kernel
  • Flusso di lavoro per lo sviluppo del kernel
  • Panoramica delle piattaforme embedded supportate

2. Configurazione dell'ambiente di sviluppo

  • Preparazione della workstation di sviluppo
  • Concetti di cross-compilazione
  • Installazione degli strumenti di sviluppo necessari
  • Configurazione della scheda di sviluppo BeagleBone Black
  • Configurazione della console seriale
  • Avvio del dispositivo target

3. Ottenerlo e comprendere il sorgente del kernel

  • Struttura ad albero del codice sorgente del kernel Linux
  • Kernel stabili rispetto a quelli con supporto a lungo termine
  • Scaricamento dei sorgenti del kernel
  • Esplorazione della struttura del codice sorgente
  • Documentazione del kernel
  • Gestione delle versioni del kernel

4. Configurazione, compilazione e avvio del Kernel

  • Configurazione del kernel tramite menuconfig
  • Selezione delle funzionalità del kernel
  • Cross-compilazione del kernel
  • Creazione delle immagini del kernel
  • Installazione dei moduli del kernel
  • Panoramica sul bootloader
  • Avvio di un kernel personalizzato

5. Fondamenti della Device Tree

  • Scopo della Device Tree
  • File sorgente della Device Tree (DTS)
  • Device Tree Blob (DTB)
  • Concetti di descrizione dell'hardware
  • Modifica dei file della Device Tree
  • Costruzione e distribuzione delle Device Trees

6. Moduli del Kernel Linux

  • Architettura dei moduli del kernel
  • Creazione di moduli caricabili del kernel
  • Caricamento e scaricamento dei moduli
  • Parametri dei moduli
  • Dipendenze dei moduli
  • Interazione con i moduli del kernel
  • Tecniche di debug dei moduli

7. Debug del Kernel Linux

  • Logging del kernel tramite printk()
  • Utilizzo di dmesg
  • Debug dinamico
  • Analisi delle panic del kernel
  • Messaggi Oops
  • Debug con GDB
  • Strumenti base per il tracing delle prestazioni

8. Driver a Dispositivo Character

  • Modello dei driver di dispositivo Linux
  • Dispositivi character
  • Registrazione dei driver
  • Operazioni sui file
  • Operazioni di lettura e scrittura
  • Interfaccia IOCTL
  • Gestione della memoria
  • Pulizia del driver

9. Integrazione del Driver e Accesso all'Hardware

  • Device e driver di piattaforma
  • Programmazione GPIO
  • Gestione delle interruzioni
  • Timer e lavoro differito
  • Accesso ai registri dell'hardware
  • Lavorare con I/O mappato in memoria

10. Controllo di versione con Git

  • Fondamenti di Git
  • Gestione del codice sorgente del kernel
  • Branching e merging
  • Creazione di patch
  • Revisione delle modifiche
  • Collaborazione nello sviluppo del kernel

11. Laboratori pratici di sviluppo del Kernel

  • Configurazione di un kernel personalizzato
  • Creazione e distribuzione del kernel
  • Creazione di un semplice modulo del kernel
  • Sviluppo di un driver di dispositivo character base
  • Modifica dei file della Device Tree
  • Debug dei problemi del kernel su BeagleBone Black

12. Best Practices e Sintesi

  • Stile di codifica del kernel
  • Scrittura di driver manutenibili
  • Pitfalls comuni nello sviluppo
  • Risorse per la documentazione del kernel
  • Flusso di lavoro per le contribuzioni open-source
  • Revisione dei concetti chiave
  • Domande e risposte
  • Prossimi passi per lo sviluppo del kernel Linux

Requisiti

Conoscenza di base dell'uso di un sistema GNU/Linux

 14 ore

Numero di Partecipanti


Prezzo per partecipante

Recensioni (2)

Corsi in Arrivo

Categorie relative