View the site in Français Site displayed in Anglais (USA) View the site in Anglais (GB)
You are here: ac6 > ac6-formation > Linux > Embedded Linux
Download Catalog
Download Catalog
Download as PDF
Download as PDF
Write us
Write us
Printable version
Printable version
 

D1 Embedded Linux

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 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
bullet_jaune_1 Etudier les spécificités des noyaux 2.4 et 2.6
bullet_jaune_1 NB: Nous utilisons le dernier noyau "vanilla" 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

Outline
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,...)
Exercice : Utilisation de "buildroot" pour compiler une chaîne de développement croisée utilisant uClibc
2ème jour
Configuration du noyau Linux pour l'embarqué
bullet_jaune_2 Etapes de reconfiguration du noyau
bullet_jaune_2 Compilation native et croisée du noyau Linux
bullet_jaune_2 Patch du noyau
bullet_jaune_2 Compilation et installation des modules du noyau
Création/modification du Board Support Package (BSP)
bullet_jaune_2 Organisation des fichiers du BSP
bullet_jaune_2 Point d'entrée du BSP
bullet_jaune_2 Fonctions noyaux utilisées pour déclarer les périphériques non Plug and Play
bullet_jaune_2 Mises en correspondance entre pilotes (struct driver) et périphériques (struct device)
Exercice : Observation des messages noyaux indiquant la déclaration des périphériques, l'enregistrement des pilotes et la mise en correspondance entre les 2.
Création du système de fichier racine
bullet_jaune_2 Périphériques, programmes, librairies...
bullet_jaune_2 Installation des modules
bullet_jaune_2 Recherche et installation des librairies 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, OpenEmbedded, LTIB, ...)
Exercice : Création d'un système de fichier racine minimal "à la main" puis avec Busybox
Exercice : Utilisation des outils Buildroot et Open Embedded. Comparaison.
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)
bullet_jaune_2 Systèmes de fichier adaptés à l'embarqué (ROMFS, CRAMFS)
bullet_jaune_2 Systèmes de fichiers compatibles "desktop" (EXT2, FAT)
Exercice : Flashage du noyau et du système de fichier racine
Exercice : Boot depuis la flash
Boot de Linux
bullet_jaune_2 Partionnement d'un disque Linux
bullet_jaune_2 Bootloaders (lilo, grub, syslinux, 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 : Ajout de programmes et de services lançés au démarrage de busybox
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 Compilation et installation d'une chaîne de développement croisé pour ARM ou PowerPC
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 : Test et debug distant d'une application embarquée