Objectifs de formation
A l'issue de cette formation, vous serez capable de :
- Installer une distribution taillée sur mesure pour un équipement RaspberryPI au moyen de Buildroot
- Installer un système de base Linux à l'aide de Yocto sans pour autant savoir développer de nouvelles règles sous Yocto.
Prérequis
Avoir développé en C et connaître les commandes Linux.
Public concerné
Développeurs.
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
Exemples de travaux pratiques (à titre indicatif)
- 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
Le contenu de ce programme peut faire l'objet d'adaptation selon les niveaux, prérequis et besoins des apprenants.
Modalités, méthodes et moyens pédagogiques
Formation délivrée en présentiel ou distanciel* (blended-learning, e-learning, classe virtuelle, présentiel à distance).
Le formateur alterne entre méthode** démonstrative, interrogative et active (via des travaux pratiques et/ou des mises en situation).
Variables suivant les formations, les moyens pédagogiques mis en oeuvre sont :
- Ordinateurs Mac ou PC (sauf pour certains cours de l'offre Management), connexion internet fibre, tableau blanc ou paperboard, vidéoprojecteur ou écran tactile interactif (pour le distanciel)
- Environnements de formation installés sur les postes de travail ou en ligne
- Supports de cours et exercices
En cas de formation intra sur site externe à M2i, le client s'assure et s'engage également à avoir toutes les ressources matérielles pédagogiques nécessaires (équipements informatiques...) au bon déroulement de l'action de formation visée conformément aux prérequis indiqués dans le programme de formation communiqué.
* nous consulter pour la faisabilité en distanciel
** ratio variable selon le cours suivi
Modalités d’évaluation des acquis
- En cours de formation, par des études de cas ou des travaux pratiques
- Et, en fin de formation, par un questionnaire d'auto-évaluation
Accessibilité de la formation
Le groupe M2i s'engage pour faciliter l'accessibilité de ses formations. Les détails de l'accueil des personnes en situation de handicap sont consultables sur la page Accueil et Handicap.
Modalités et délais d’accès à la formation
Les formations M2i sont disponibles selon les modalités proposées sur la page programme. Les inscriptions sont possibles jusqu'à 48 heures ouvrées avant le début de la formation. Dans le cas d'une formation financée par le CPF, ce délai est porté à 11 jours ouvrés.