Site affiché en Français Voir le site en English (USA) Voir le site en English (GB)
Vous êtes ici: ac6 > ac6-formation > Linux > Linux embarqué
Télécharger le catalogue
Télécharger le catalogue
Télécharger la page
Télécharger la page
Ecrivez nous
Ecrivez nous
Version imprimable
Version imprimable
 

D1 Linux embarqué

Linux pour les systèmes embarqués

Linux pour les systèmes embarqués

formateur
Objectifs
bullet_jaune_1 Utiliser les outils de développement natifs ou croisés
bullet_jaune_1 Personnaliser, réduire et configurer le noyau Linux
bullet_jaune_1 Embarquer Linux sur Flash EEPROM
bullet_jaune_1 Détailler la procédure de boot Linux
bullet_jaune_1 Monter un système de fichier distant
bullet_jaune_1 Booter un noyau Linux distant
bullet_jaune_1 Etudier les spécificités des noyaux 2.4 et 2.6
Les exercices se font sur des cartes cibles :
    Carte "SnowBall" de ST-Ericsson, basée sur un ARM Cortex/A9 double cœur, avec sonde JTAG Lauterbach.
    Carte à base de processeur ARM9 d'Atmel, avec sonde JTAG Lauterbach.
Nous utilisons le dernier noyau disponible sur www.kernel.org
Matériel
bullet_jaune_2 Un PC Linux par binôme
bullet_jaune_2 Une carte embarquée par binôme, au choix:
bullet_jaune_3 1 carte à base de PowerPC 405 GPr (KSBC 0405 de chez Ecrin)
bullet_jaune_3 1 carte à base d'ARM 926 (AT91SAM9261-EK de chez Atmel)
bullet_jaune_3 1 carte simulée (Qemu) à base d'ARM 926 (carte de référence "Versatile" de chez ARM)
bullet_jaune_2 Support de cours
bullet_jaune_2 CDROM avec documentation et outils utilisés
Pré-requis
bullet_jaune_2 Connaissance de Linux utilisateur

Plan
1er jour
Architecture de Linux
bullet_jaune_2 Présentation de Linux
bullet_jaune_2 Licences GPL et open source
bullet_jaune_2 Distributions Linux
bullet_jaune_2 Architecture et modularité de Linux
Les outils Linux pour l'embarqué
bullet_jaune_2 Les firmware/bootloader (Uboot, Redboot,...)
bullet_jaune_2 Les librairies adaptée à l'embarqué (uClibc, dietlibc,...)
bullet_jaune_2 Les IHM adaptées à l'embarqué (miniGUI, Qt/embedded, Nano-X,...)
bullet_jaune_2 Busybox, le "couteau suisse" de Linux embarqué
bullet_jaune_2 Les distributions spécialisées
bullet_jaune_3 Commerciales (MontaVista, Sysgo, Timesys, Windriver,...)
bullet_jaune_3 Open Source (ELDK, Koan, RTAI,...)
Les chaînes de compilation croisée
bullet_jaune_2 Chaînes complètes (ELDK, CodeSourcery, ...)
bullet_jaune_2 Outils de compilation de chaînes (Crosstool-ng, Buildroot, ...)
bullet_jaune_2 Compilation manuelle
Exercice : Construction d'une chaîne avec Crosstool-ng et avec Buildroot. Etude des différences.
2ème jour
Création du noyau Linux pour l'embarqué
bullet_jaune_2 Téléchargement des sources
bullet_jaune_2 Etude du Makefile du noyau
bullet_jaune_2 Configuration du noyau
bullet_jaune_2 Compilation du noyau et des modules
bullet_jaune_2 Installation des modules et du noyau
Etude du support des MTD dans Linux (Memory Technology Devices)
bullet_jaune_2 Les mémoires de type NOR
bullet_jaune_2 Les mémoires de type NAND
Exercice : Configuration et compilation d'un noyau Linux adapté à la cible
Création/modification du Board Support Package (BSP)
bullet_jaune_2 Etude des BSP ARM
bullet_jaune_3 Les numéros de machine ARM
bullet_jaune_3 Organisation des fichiers sources
bullet_jaune_3 Les Makefiles
bullet_jaune_3 Les fichiers de configuration
bullet_jaune_3 La struct machine_desc
Exercice : Modification du BSP pour le support et la partitionnement d'une mémoire NAND
Création du système de fichier racine
bullet_jaune_2 Périphériques, programmes, bibliothèques, ...
bullet_jaune_2 Installation des modules
bullet_jaune_2 Recherche et installation des bibliothèques dynamiques nécessaires
bullet_jaune_2 Vérification de la cohérence du système de fichier
bullet_jaune_2 Utilisation d'outils de génération de systèmes de fichiers racine embarqués (BuildRoot, LTIB, ...)
Exercice : Création d'un système de fichier racine avec Buildroot.
3ème jour
Choix du type de système de fichier
bullet_jaune_2 Ramdisk/initrd
bullet_jaune_2 Systèmes de fichier adapté aux flashs (JFFS2, UBIFS, ...)
bullet_jaune_2 Systèmes de fichier adaptés à l'embarqué (ROMFS, CRAMFS, ...)
bullet_jaune_2 Systèmes de fichiers compatibles "desktop" (EXT2, FAT)
Boot de Linux
bullet_jaune_2 Partionnement d'un disque Linux
bullet_jaune_2 Bootloaders (lilo, grub, U-boot...)
bullet_jaune_2 Paramètres du noyau au boot
bullet_jaune_2 Etapes de chargement et de démarrage du noyau
bullet_jaune_2 Choix des programmes lançés au démarrage (runlevels, services, suppression de l'IHM...)
Exercice : Partitionnement 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é
bullet_jaune_2 Préparation de la machine hôte
bullet_jaune_3 Services réseau (DHCP, TFTP)
bullet_jaune_3 Partage du système de fichier (NFS)
bullet_jaune_3 Etude des outils de développement (gcc, gdb, les Makefiles)
bullet_jaune_3 Utilisation de l'IDE Eclipse pour la programmation et le debug croisé
bullet_jaune_2 Préparation de la cible
bullet_jaune_3 Téléchargement d'un noyau par TFTP
bullet_jaune_3 Démarrage sur un système de fichier distant (diskless)
bullet_jaune_3 Utilisation de gdbserver pour le debug distant
bullet_jaune_2 Utilisation de Qemu pour simuler une carte complète
Exercice : Installation d'une distribution complète sur carte PowerPC, ARM ou sur simulateur d'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