Corso linux device drivers
Questo corso fornisce le informazioni necessarie per iniziare a sviluppare Device Drivers per Linux. Verrà insegnato come configurare, eseguire e debuggare un device driver su un reale dispositivo. Le tecniche apprese sono applicabili ai sistemi embedded ma sono indipendenti dalla piattaforma e quindi portabili su ongi architettura Tutti gli esercizi di laboratorio verranno compilati e testati su una scheda di sviluppo basata su ARM, BeagleBone Black.
Dettagli
- Durata: 1 giorno (dalle 9:00 alle 18:00)
- Tipologia: ~50% presentazioni, ~50% esercizi pratici
- Lingua slides e materiale fornito: Inglese
- Lingua presentazione orale: Italiano o Inglese
- Numero partecipanti: massimo 10 persone
Attrezzatura richiesta
Ogni partecipante deve disporre di un Laptop su cui verrà installata una Macchina Virtuale fornita dal docente all’inizio del corso. Tutto il materiale necessario viene fornito da Koan tranne il PC. Pertanto i partecipanti devono avere il proprio computer portatile con:
- Laptop PC con almeno 8 GB di RAM e 40 GB di spazio libero su disco.
- Virtual Box installato (scaricabile da qui).
- Lavoreremo con Lubuntu Desktop 22.04 (64 bit). (Non supportiamo altre distribuzioni, perché non possiamo testare tutte le possibili versioni).
- Connessione a Internet (diretta o tramite il proxy aziendale).
- Per ragioni di sicurezza è necessario che ogni partecipante esegua il backup del proprio computer prima del corso.
Hardware utilizzato
Gli esercizi pratici saranno svolti su una scheda con CPU Cortex ARM BeagleBone Black fornita in prestito durante il corso.
Tutti gli esercizi effettuati saranno applicabili a qualsiasi altro tipo di scheda.
Materiale fornito in prestito
- BeagleBone Black (TI AM335x)
- Customized board with LED and button
- Nunchuck (Accelerometer)
Cosa sarà sviluppato e testato
- Minimal driver
- Character drivers
- Driver with udev management
- Driver with timer (blink led)
- Driver with INT (push button)
- I2C driver for Nunchuck (Accelerometer) management
Prerequisiti
Per ottenere i migliori risultati da questo corso è consigliabile conoscere i seguenti argomenti:
- Conoscenza di Linux embedded come descritto nel nostro training su Linux embedded
- Conoscenza di base della shell da riga di comando
- Conoscenza di programmazione C
- Esperienza con Embedded GNU / Linux (kernel, spazio utente, file system root, strumenti)
- Conoscenza e pratica dei comandi Unix o GNU / Linux
- Conoscenza dei cross-compilatori
- Conoscenza del kernel Linux
- Conoscenza del bootloader u-boot
Struttura del corso
Di seguito sono elencati alcuni degli argomenti trattati durante il corso.
Device driver basics
- Types of device driver
- Different ways for applications to interact with the driver
- Building and testing a simple character device driver
Kernel Modules
- get kernel sources
- configure/build/install
- device drivers (statically linked, loaded at runtime)
- Writing a module and compiling “out of tree”
- Loading and testing on the target
- Passing parameters
- Modules and the GPL license
- init/exit
- licensing
- EXPORT SYMBOL GPL
- out of tree makefile
- module-init-tools
- module in kernel tree
- Kconfig and Makefile
Character Device Drivers
- architecture
- user/kernel interface
- I/O subsystem
- VFS
- sysfs (devices, bus, drivers, classes),
- kobject/ktype/kset
- linux kernel driver model
- device files
- char driver
- initialization
- registration
- open, release
- cdev, cdev add, cdev del,…
- major/minor numbers
- udev, udevmonitor, udevadm
Interrupts
- interrupts vs. polling
- interrupt
- program sections
- reentrancy
- events
- interrupt handler
- shared interrupt handler
- interrupt flow
- interrupt control
Deferring Work
- top/bottom halves
- softirqs
- tasklets
- work queues
- threaded interrupts
Prossimi Corsi Device Drivers
Prossimi Corsi
Date | Type | Location | Language | Book |
20/02/2025 - 26/02/2025 | Linux Embedded and Yocto Project training | italiano | Book |
- Date: 20/02/2025 - 26/02/2025
Topic:
Location:
Language: italiano
Book a Seat