Formation Linux embarqué/temps réel

Transcription

Formation Linux embarqué/temps réel
Formation Linux embarqué/temps réel
Durée : 5 jours
Public visé
Ingénieurs et chefs de projets techniques amenés à concevoir une solution industrielle complète avec des
technologies libres.
Objectif de la formation
Présenter les principaux aspects de la mise en place et de l'utilisation de Linux embarqué et des extensions
temps réel du noyau Linux.
Les travaux pratiques seront réalisés sur une carte Raspberry Pi B+ (RPi B+) basée sur un processeur ARM11
(BCM 2835), sur l'émulateur QEMU et sur plate-forme x86 (le PC du stagiaire). La RPi sera livrée avec une carte SD
de 4 Go et un câble console USB permettant également d'alimenter la RPi.
Les stagiaires utiliseront leur PC (Windows ou Linux) ou MacBook (Mac OS X 10.5 ou plus) puisque l'environnement
de développement est intégré à une image VirtualBox contenant également les supports de cours. L'image de
développement est basée sur la distribution Fedora 14.
Le matériel nécessaire aux travaux pratiques sera fourni aux stagiaires (carte RPi et accessoires, ouvrage « Linux
embarqué ») pourra être conservé à l'issue du stage (dans le cas d'une formation Inter-entreprises).
Connaissances requises
Pré-requis matériel
• Connaissance utilisateur Linux ou à défaut
UNIX
• OS Windows (XP ou supérieur), Linux ou bien
MacBook sous Mac OS X 10.5 ou supérieur.
• Notions de langage C
• Droits administrateur sur le système Windows
ou MacOS X afin d'ajouter l'image VirtualBox et
le pilote du câble USB/Série
• Notions de manipulation
commande (shell)
de
la
ligne
de
• Le stagiaire utilisera son PC portable (ou un
MacBook) pour la formation.
• La machine devra disposer AU MINIMUM de 2
Gode mémoire vive, de 20 Go d'espace libre sur
le disque et d'un lecteur de carte SD
Ils ont bénéficié du transfert de compétences Open Wide Ingénierie !
Une formation de Référence !
Cette formation a été conçue par Pierre Ficheux, auteur des quatre ouvrages Linux embarqué.
Formation Linux embarqué
Durée : 3 jours
Programme formation Linux embarqué
•
Quelques rappels sur GNU/Linux
•
Licences GPL/LGPL, GPL avec exception
•
Architecture de Linux : principaux fichiers et répertoires, procédure de démarrage
•
Prise en main de la carte RPi, test de la distribution fournie par le constructeur (Debian/Raspbian)
•
Construction d'une distribution embarquée « from scratch ». La distribution sera installée sur la carte
SD fournie avec la RPi.
•
o
Installation de la chaîne croisée CodeSourcery (Mentor Graphics) pour ARM
o
Le noyau Linux: introduction, configuration, compilation croisée
o
Busybox
o
Installation des bibliothèques
o
Configuration de la carte SD : noyau Linux et root-filesystem puis test de la distribution
o
Test avec NFS-Root
o
Outils de construction de distribution
Outils de construction de distribution
o
Présentation des solutions existantes
o
Utilisation de Buildroot et OpenEmbbeded
Création d'une distribution
Configuration et adaptation
Création d'un paquet « Hello World »
o
•
•
•
Conclusion : avantages et inconvénients des deux outils
Utilisation d'un Bootloader et mémoire « flash »
o
Test de U-Boot sur RPi et QEMU/ARM
o
Introduction aux mémoires flash NOR et NAND
o
Prise en compte des flash dans U-Boot et dans le noyau Linux (pilote MTD)
o
Systèmes de fichiers pour flash : JFFS2, UBIFS
o
Installation d'une distribution Linux sur mémoire flash NOR sous QEMU/ARM
Mise au point
o
Compilation d'une application minimale, installation sur la carte RPi et mise au point avec GDBSERVER
o
Mise au point du noyau ou d'un module noyau avec KGDB
IHM embarquée
o
Utilisation de Qt sur plate-forme ARM, intégration dans Buildroot
o
Test d'une application de démonstration sous QEMU/ARM
Formation Linux temps réel
Durée : 2 jours
Programme formation Linux temps réel
•
•
•
Solutions temps réel sous Linux
o
Rappels sur le temps réel
o
Linux standard
o
Les patch de préemption du noyau Linux (preempt-kernel, low-latency)
o
Le patch PREEMPT-RT
o
Technique du co-noyau (RTLinux, RTAI, Xenomai)
o
Tableau comparatif des solutions
o
Test des extensions temps réel de Linux sur la base d'une mini-distribution construite avec Buildroot et
basée sur PREEMPT-RT, RTAI ou Xenomai. Pour chaque extension, on mettra en évidence les
performances en utilisant les outils hackbench, latency, cyclictest, stress.
Programmation temps réel en POSIX sur noyau Linux standard
o
Configuration de l'ordonnanceur Linux (SCHED_OTHER, SCHED_FIFO, SCHED_RR)
o
Les signaux
o
Les « threads » POSIX : création, arrêt, MUTEX, sémaphores, conditions, extensions temps réel
o
Compteurs POSIX.1 et POSIX.4
o
Création d'un tâche périodique POSIX exploitant les GPIO de la RPi (rpi_gpio) et mise en évidence des
problèmes de « jitter »
Focus sur Xenomai
o
Historique Introduction
o
Description fonctionnelle
o
Architecture
o
Installation et mesure de performances avec les outils latency et hackbench (voir test PREEMPT-RT /
RTAI)
o
Domaines d'exécution, fonctionnement d'ADEOS
o
Migration et conception d'application
API POSIX de Xenomai
Mise en œuvre de l'API POSIX sur l'exemple xenomai_rpi_gpio et comparaison avec la version
Linux rpi_gpio.
Présentation de l'API RTDM (Real Time Driver Model)
Modification de l'application xenomai_rpi_gpio pour utiliser le pilote RTDM