Marc Silanus

TP : OS linux embarqué (2016-17)

TP 3 : Construction d’un système linux embarqué complet

Les ordinateurs embarqués fonctionnant sous le système d’exploitation Linux sont massivement présents dans les technologies modernes (transports, multimédia, téléphonie mobile, appareils photos …).

Contrairement aux versions de Linux destinées aux ordinateurs personnels et aux serveurs, les différents systèmes Linux embarqués sont conçus pour des systèmes aux ressources limitées.

Les systèmes embarqués sous Linux disposent généralement de peu de RAM et utilisent fréquemment de la mémoire flash plutôt qu'un disque dur. Comme ils sont souvent dédiés à un nombre de tâches réduites sur une cible matérielle bien définie, ils utilisent plutôt des versions du noyau Linux optimisées pour des contextes précis.

Les nécessités de déterminisme et de réactivité entraine parfois les concepteurs à se tourner vers des solutions temps réelles.

L’objectif de ce TP est de réaliser un système complet qui sera déployé sur un ordinateur Raspberry PI et d'en évaluer ces performances temps réelle.

Buildroot

Dans le domaine de l'embarqué, on se retrouve souvent en situation de devoir  reconstruire un système complet à partir des sources, pour une architecture cible souvent différente de celle de l’hôte. La cross-compilation et l'organisation d'un système embarqué sont des étapes longues et fastidieuses, surtout lorsque les éléments du système à compiler nécessitent des adaptations. Il existe heureusement des outils libres qui simplifient et accélèrent cette tâche, en proposant généralement des fonctionnalités complémentaires intéressantes.

Buildroot est un de ces outils qui simplifie et automatise le processus de construction d'un système Linux complet pour un système embarqué. Afin d'atteindre cet objectif, Buildroot est capable de générer une chaîne de compilation croisée, un système de fichiers (rootfs), une image du noyau Linux (kernel) et un chargeur de démarrage (firmware/bootloader) pour la cible.

Xenomai

Xenomai est une extension libre du noyau Linux lui apportant des fonctionnalités temps réel dures. Il apporte une approche symétrique entre programmation noyau et programmation système au niveau utilisateur sous Linux. Il introduit le concept de machine virtuelle en programmation temps réel et permet ainsi de disposer de plusieurs interfaces de programmation, au choix du programmeur.

Le but de cette partie est de générer un signal périodique sur un port GPIO et d'évaluer ses caractéristiques, notamment sa gigue, caractéristique de la latence du système. L'expérience sera menée système faiblement et fortement chargé.

Texte du TP : TP3-BuildrootXenomai