|
|
|
|
| 1er jour |
| Architecture de Linux |
 |
Présentation de Linux |
 |
Licences GPL et open source |
 |
Distributions Linux |
 |
Architecture et modularité de Linux |
| Les outils Linux pour l'embarqué |
 |
Les firmware/bootloader (Uboot, Redboot,...) |
 |
Les librairies adaptée à l'embarqué (uClibc, dietlibc,...) |
 |
Les IHM adaptées à l'embarqué (miniGUI,Qtopia, Nano-X,...) |
 |
Busybox, le "couteau suisse" de Linux embarqué |
 |
Les distributions spécialisées |
|
 |
Commerciales (MontaVista, Sysgo, Timesys, Windriver,...) |
|
 |
Open Source (ELDK, Koan, RTAI,...) |
| Les chaînes de compilation croisée |
 |
Chaînes complètes (ELDK, CodeSourcery, ...) |
 |
Outils de compilation de chaînes (Crosstool-ng, Buildroot, ...) |
 |
Compilation manuelle |
| Exercice : |
Construction d'une chaîne avec Crosstool-ng, avec Buildroot. Etude des différences. |
| 2ème jour |
| Création du noyau Linux pour l'embarqué |
 |
Téléchargement des sources |
 |
Etude du Makefile du noyau |
 |
Patch du noyau |
 |
Configuration du noyau |
 |
Compilation native et croisée du noyau Linux et des modules |
 |
Installation des modules et du noyau |
| Etude du support des MTD dans Linux (Memory Technology Devices) |
 |
Les mémoires de type NOR |
 |
Les mémoires de type NAND |
| Exercice : |
Patch d'un noyau "vanilla" afin de l'adapter à la carte i.MX31 |
| Exercice : |
Configuration et compilation du noyau pour la carte i.MX31 |
| Création/modification du Board Support Package (BSP) |
 |
Etude des BSP ARM |
|
 |
Les numéros de machine ARM |
|
 |
Organisation des fichiers sources |
|
 |
Les Makefiles |
|
 |
Les fichiers de configuration |
|
 |
La struct machine_desc |
| Exercice : |
Modification du BSP pour le support et le partitionnement d'une mémoire NAND |
| Création du système de fichier racine |
 |
Périphériques, programmes, bibliothèques... |
 |
Installation des modules |
 |
Recherche et installation des bibliothèques dynamiques nécessaires |
 |
Vérification de la cohérence du système de fichier |
 |
Utilisation de l'outil LTIB pour générer un système de fichiers racine embarqué pour cartes Freescale. |
|
 |
Paramétrage et configuration |
|
 |
Sélection des packages constituant le système. |
|
 |
Modification de package |
|
 |
Ajout de package |
| Exercice : |
Création d'un système fonctionnel avec LTIB |
| Exercice : |
Ajout de packages dans LTIB |
| 3ème jour |
| Choix du type de système de fichier |
 |
Ramdisk/initrd |
 |
Systèmes de fichier adapté aux mémoires flashs (JFFS2, UBIFS, ...) |
 |
Systèmes de fichier adaptés à l'embarqué (ROMFS, CRAMFS, ...) |
 |
Systèmes de fichiers compatibles "desktop" (EXT2, FAT) |
| Boot de Linux |
 |
Partionnement d'un disque Linux |
 |
Bootloaders (lilo, grub, syslinux, RedBoot...) |
 |
Paramètres du noyau au boot |
 |
Etapes de chargement et de démarrage du noyau |
 |
Choix des programmes lançés au démarrage (runlevels, services, suppression de l'IHM...) |
| Exercice : |
Partitionenemt dynamique de la NAND |
| Exercice : |
Flashage du noyau et du système de fichier |
| Exercice : |
Boot depuis la mémoire flash |
| 4ème jour |
| Développement croisé |
 |
Préparation de la machine hôte |
|
 |
Services réseau (DHCP, TFTP) |
|
 |
Partage du système de fichier (NFS) |
|
 |
Utilisation de la chaîne de développement croisé LTIB |
|
 |
Etude des outils de développement (gss, gdb, Les Makefiles, ...) |
|
 |
Utilisation de l'IDE Eclipse pour la programmation et le debug croisé |
|
 |
Préparation de la cible |
|
 |
Téléchargement d'un noyau par TFTP |
|
 |
Démarrage sur un système de fichier distant (diskless) |
|
 |
Utilisation de gdbserver pour le debug distant |
|
 |
Utilisation de Qemu pour simuler une carte complète |
| Exercice : |
Démarrage de la carte I.MX31 avec un système Linux LTIB distant. |
| Exercice : |
Démarrage du système Linux LTIB à partir d'un émulateur ARM (Qemu). |
| Exercice : |
Compilation, test et debug distant d'une application embarquée. |
| Exercice : |
Compilation et installation de modules noyau indépendants |
| Exercice : |
Compilation croisé de paquetage |