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é Freescale avec LTIB

D1L Linux embarqué Freescale avec LTIB

Linux pour les systèmes embarqués Freescale à base ARM et PowerPC

Objectifs
bullet_jaune_1 Concevoir son propre système Linux avec LTIB
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 EPROM
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
Matériel
bullet_jaune_2 Un PC Linux par binôme
bullet_jaune_2 Une carte embarquée par binôme :
bullet_jaune_3 1 carte Freescale i.MX31
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,Qtopia, 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, 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 Patch du noyau
bullet_jaune_2 Configuration du noyau
bullet_jaune_2 Compilation native et croisée du noyau Linux 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 : 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)
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 le 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 de l'outil LTIB pour générer un système de fichiers racine embarqué pour cartes Freescale.
bullet_jaune_3 Paramétrage et configuration
bullet_jaune_3 Sélection des packages constituant le système.
bullet_jaune_3 Modification de package
bullet_jaune_3 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
bullet_jaune_2 Ramdisk/initrd
bullet_jaune_2 Systèmes de fichier adapté aux mémoires 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, syslinux, RedBoot...)
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 : 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é
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 Utilisation de la chaîne de développement croisé LTIB
bullet_jaune_3 Etude des outils de développement (gss, 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 : 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