Linux Embarqué
Du 21 au 22 novembre 2012
Lille
Pour connaitre les prochaines sessions de formation en Logiciel embarque et programmation cliquez ici.
L’utilisation de Linux dans les environnements embarqués sur des systèmes restreints nécessite une bonne connaissance des mécanismes sous-jacents, de la configuration du noyau, de l’organisation des bibliothèques et de la mise en oeuvre des services et applications utilisateurs. Ce cours vous propose de construire un système Linux complet en commençant sur émulateur puis en utilisant une carte à processeur ARM. De la configuration bas-niveau du système (drivers, ordonnanceur, système de fichiers...) aux applications utilisateur (serveurs, IHM, graphique...) en passant par les outils de mise au point et de débogage, vous découvrirez l’imbrication et le rôle de chaque composant de votre système Linux embarqué.

Programme :
Mercredi 21 novembre 2012
9h00-12h00 : Linux en environnement industriel
- Linux, logiciels libres, licences
Présentation des concepts, des principes et des pratiques. Projet Gnu.
Noyaux et distributions Linux. Principes des GPL, LGPL, BSD... et implications pour
l’embarqué. - Outils libres de développement embarqué
Outils Gnu : compilation, débogage et mise au point. Plate-formes hôte et cible,
processeurs et émulateur. Création d’une chaîne croisée avec Buildroot. - Éclipse et le CDT
Environnement de développement intégré. Création de projet, compilation et débogage.
Compilation croisée avec Éclipse. - Travaux pratiques
Utilisation de GCC, effets des différentes options. Débogage dynamique et post-mortem avec GDB. Compilation et débogage de projet sous Eclipse. Création et utilisation d’une chaîne de compilation pour processeur Arm.
13h00-17h00 : Espace noyau
- Compilation du noyau Linux
Principe. Versions du noyaux Linux. Sélection et application d’un patch.
Configuration et compilation pour une cible embarquée. - Installation sur cible
Transfert de l’image du noyau. Configuration du bootloader ou de l’émulateur.
Paramètres de démarrage du kernel. - Système de fichiers
Types de système de fichiers. Formatage et préparation d’une arborescence.
Fichiers spéciaux des périphériques. Principe du processus init. - Travaux pratiques
Application d’un patch (Linux-rt) sur les sources du noyau.
Configuration et compilation d’un noyau Linux pour cible Arm.
Préparation d’un système de fichiers minimal et boot avec processus
Jeudi 22 Novembre
9h00-12h00 : Espace utilisateur
- Utilitaires système
Busybox, outil incontournable de l’embarqué. Scripts de démarrage. Édition des liens, bibliothèques statiques ou dynamiques. - Services réseau
Configuration des interfaces réseau. Utilitaires réseau essentiels. Affectation d’adresse statique ou dynamique (DHCP). Routage. - Débogage et mise au point
Compilation croisée d’applications personnalisées, de bibliothèques statiques et
dynamiques. Débogage distant avec GDB et Eclipse. Tests en couverture et profiling. - Travaux pratiques
Paramétrage et compilation de Busybox. Personnalisation des scripts de démarrage.
Installation des serveurs Telnet et FTP. Débogage à distance et optimisation
d’applications. Création de bibliothèques.
13h00-17h00 : Aspects avancés
- Paramétrage spécifique
Configuration de l’ordonnanceur. Affectation des tâches et des interruptions sur les CPU.
Paramétrage de la mémoire virtuelle. - Services réseau supplémentaires
Connexion sécurisée avec SSH, transferts de fichiers par SCP. Serveur web HTTP avec script CGI. - Industrialisation et extensions
Ajustement d’horloge système avec NTP et PTP. Supervision distante par agent SNMP.
Mise à jour, firmware. Développement sur la cible. Utilisation de la GlibC. - Travaux pratiques
Vérification des paramètres temps-réel. Saturation mémoire et désactivation
d’overcommit. Compilation et test de Dropbear, Boa, PTP. Comparaison de Crosstool-NG et Buildroot. Intégration d’un compilateur sur la cible.
Discussions libres sur l’ensemble des thèmes abordés. - Travaux pratiques
Expérimentations libres suivant les demandes des participants.