Linux Temps Réel

Une formation concrète et pragmatique pour maîtriser le temps réel sous Linux
Le noyau Linux n'est pas temps réel, mais il existe des solutions libres très pertinentes pour faire du temps réel sous Linux, y compris du temps réel "dur".
Cette formation est assurée par un expert régulièrement confronté à des projets complexes de conception de plateforme temps réel dans un contexte industriel.

Objectif

Le but de la formation est de présenter les principaux aspects de la mise en place et de l'utilisation 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).  

Public visé

Ingénieurs de développement et chefs de projets techniques qui souhaitent acquérir les compétences nécessaires à la mise en œuvre et au développement de solutions temps réel dur basées sur Xenomai (historiquement RTAI / Fusion).

Pré-requis

Les connaissances nécessaires pour la participation au stage sont les suivantes :

  • Connaissance utilisateur Linux ou à défaut UNIX
  • Notions de langage C
  • Notions de manipulation de la ligne de commande (shell)

Le stagiaire utilisera son PC portable (ou un MacBook) pour la formation.

La machine devra satisfaire aux pré-requis suivants :

  • Système d'exploitation Windows (XP ou supérieur), Linux ou bien MacBook sous Mac OS X 10.5 ou supérieur.
  • Droits administrateursur le système Windows ou MacOS X afin d'ajouter l'image VirtualBox et le pilote du câble USB/Série
  • La machine devra disposer AU MINIMUM de 2 Gode mémoire vive et de 20 Go d'espace libre sur le disque.
  • La machine devra disposer d'un lecteur de carte SD

Programme

La formation s'effectue sur 2 journées de 7 h, soit 14 h de cours.

Linux temps réel (2 jours)

  • Solutions temps réel sous Linux
    • Rappels sur le temps réel
    • Linux standard
    • Les patch de préemption du noyau Linux (preempt-kernel, low-latency)
    • Le patch PREEMPT-RT
    • Technique du co-noyau (RTLinux, RTAI, Xenomai)
    • Tableau comparatif des solutions
    • 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
    • Configuration de l'ordonnanceur Linux (SCHED_OTHER, SCHED_FIFO, SCHED_RR)
    • Les signaux
    • Les « threads » POSIX : création, arrêt, MUTEX, sémaphores, conditions, extensions temps réel
    • Compteurs POSIX.1 et POSIX.4
    • 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
    • Historique Introduction
    • Description fonctionnelle
    • Architecture
    • Installation et mesure de performances avec les outils latency et hackbench (voir test PREEMPT-RT / RTAI)
    • Domaines d'exécution, fonctionnement d'ADEOS
    • 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