Le Linux embarqué sur processeur ARM est au coeur des projets IoT, industriels et des systèmes connectés. Cette formation intensive de 5 jours vous apprend à construire des distributions Linux sur mesure avec Buildroot et Yocto, adaptées aux contraintes matérielles des plateformes ARM comme le Raspberry Pi. Vous maîtriserez la chaîne complète, de la cross-compilation au déploiement sur cible.
Public visé
Développeurs ayant une expérience en programmation C et connaissance des commandes Linux.
Prérequis
Avoir suivi cette formation, ou en maîtriser les thèmes abordés :
Objectifs pédagogiques
À l’issue de cette formation, vous serez capable de :
- Installer des distributions Linux personnalisées pour équipements RaspberryPi via Buildroot
- Déployer des systèmes Linux basiques via Yocto
Programme
Jour 1
Présentation
Architecture
- Architecture Linux
- Les différents éléments d’un système Linux
- Le BIOS et le boot
- Le boot
- Introduction au Noyau
- La librairie LibC
Init et démons
- Inittab et init
- Niveau d’exécution
- Exemple fichier /etc/inittab
- Les différents types de démon
Init et Shell
- Les commandes de base et programme
- Le Shell
- Les gestionnaires de fenêtre
- Qt
Licences
Les distributions
- Les outils de mise à jour
- Organisation du disque
- Organisation multi-disques
- Hiérarchie sur le disque
- Répertoire :
- /usr et /var
- /etc/fstab
Les licences
- Objectif
- Free vs Open Source
- Avertissement
- L’objectif
- Les formes de licence
- Caractéristiques des licences libres
- Différences Open Source Licences libres
- Les principales licences de logiciels libres
Compilation
Compilation des sources
- Vérification d’intégrité
- Décompression des sources
- Git SVN CVS
- Commandes de base CVS/SVN/git
- Morphologies des programmes
- Rappel mécanisme de compilation
- Les Makefiles
- Configure
- Problèmes de compilation
- Les étapes de compilation
- Exemples
Les librairies
- Le principe des librairies
- Librairies statiques vs dynamiques
- Librairies dynamiques
- Edition de lien
- Utilisation des librairies
- Installation d’une librairie sous Debian
La librairie LibC
- Glibc
- Uclibc
- Eglibc
- Dietlibc
- Newlib
Jour 2
Le noyau
Présentation
- Versions
- Les sources
- Configuration du noyau
- Module / Kernel / None
- Avantage / désavantage des modules
- Commandes sur les modules
Configuration
- Make xconfig
- Make gconfig
- Make menuconfig
- Make nconfig
- Autres possibilités
- Les options de compilation du noyau
- Options de compilation (fin)
- Dépendances des options
- Select
- Les patches
- Niveaux de patch
Options de compilation
- La compilation
- Exercice : compiler un noyau
- Installation du noyau
- Installation des modules
- Disque minimal en RAM
- Fichier config
Busybox
Busybox
- Busybox : présentation
- Busybox : configuration
- Les commandes Busybox
- Ajouter des commandes à Busybox
- Finalisation d’ajout d’une commande
Raspberry
Architecture ARM
- Les processeurs ARM
- Quelques termes à connaître
- Les familles de processeurs ARM
- Les processeurs ARM9 et ARM10
- Les Cortex
Présentation de la carte
- Les cartes Raspberry
- Carte Raspberry PI 2
- Légendes
- OS disponibles
Installation de base
- Principe d’installation
- Copie de Raspbian sur la carte
Compilation croisée
Présentation
- Compilation croisée
- Machine Hôte
- Les compilateurs C et C++
- Contenu d’une chaîne croisée
- Les binutils
- Les librairies de traitement mathématique
- Les entêtes du noyau
Compilation du compilateur
- Chaîne de compilation croisée
- Alternatives à la compilation croisée
- Les chaînes précompilées
- Les chaînes de fabrication de cross compilateurs
- Les composants de la chaîne
- Processus de fabrication de la chaîne soi-même
Jour 3
Buildroot
Présentation
- Utilisation de BuildRoot
- Schéma de principe
- Aide
- Buildroot : principe
- Paquetages nécessaires à Buildroot
- Compilation de Buildroot
- Les paramètres qu’on peut ajouter
Utilisation
- Exécution
- Les fichiers générés
- Les fichiers .config
- Utiliser la toolchain générée
- Utiliser une chaîne de compilation externe
Installation de la distribution
- Préparation de la carte Micro SD
- Agrandir la partition à toute la mémoire SD
- Divers problèmes classiques
- Le fichier de configuration du lanceur de la Raspberry
Jour 4
Customisation
Services supplémentaires
- Connexion sécurisée avec SSH et transferts de fichiers par SCP
- Serveur httpd de Busybox
- Ajout d’utilisateurs
- Ajout de programmes spécifiques
- Exécution de commandes ShellScript avant la génération de l’image
- Sed : édition d’un fichier
Paramètres spécifiques
- Clavier français
- Configuration de l’ordonnanceur
- Exemples lignes cron
- Fichier dtb - uboot - qemu
- qemu
- Compiler buildroot pour qemu
Jour 5
Yocto
Découverte
- Principe
- Histoire de Yocto
- Ressources
- Les avantages de Yocto
- Les inconvénients de Yocto
- Buildroot et Yocto
- Equipes de travail et choix de la plateforme
- Recommandations
- Dépendances nécessaires sur la machine de développement
- Les composants de Yocto
- Choix d’un répertoire de travail
- Téléchargement de Poky
- Guide de migration des versions
- Autres variantes de commandes de chargement
- Contenu du répertoire Poky
Fabrication d’une image
- Initialisation de l’environnement de travail
- Organisation des répertoires build et Poky
- Attention après initialisation
- Plusieurs répertoires build
- Lancement du build
- Processus parallèle bitbake
- Les différentes états des tâches Yocto
- Test de la machine virtuelle
- Vérification Busybox
- Bitbake
- Les recettes
- Le répertoire tmp
- Le fichier local.conf
- Curiosité dans l’affectation des variables
Travaux pratiques
- Récupérer les sources du jeu Extrême Tux Racer Pro et le compiler
- Construction de la librairie glibc
- Compiler le noyau Linux
- Compiler Busybox
- Installation d’une image Raspberry PI prête à l’emploi
- Fabrication d’une image avec compilation automatique des programmes
- Fabrication d’une Imageqemu avec compilation automatique des programmes
Modalités d’évaluation des acquis
En cours de formation, par des travaux pratiques. En fin de formation, par un questionnaire d’auto-évaluation.
Voir aussi
Vous serez peut-être intéressés par les formations suivantes :
- Linux - les fondamentaux
- Linux - Administration N1 - Installation
- Linux - Administration N2 - Maintenance
- Raspberry Pi - Applications embarquées
- Yocto - Systèmes embarqués sous Linux
Formation SYS-LINUX-610 — Linux embarqué avec processeur ARM. Domaine : Systèmes. Durée : 5 jours (35 heures). Mots-clés : linux, embarqué, arm, buildroot, yocto, cross-compilation. Cylian Formation, Dijon.