Développement d’une
image iso système
d’exploitation linux
embarqué avec Buildroot
Réalisé par : Encadré par :
El HAOUDY Nadia Pr.Mouzona
ESSAIDI Oumaima
FAIZ Hafsa
KHARKHACH Niama
Ingénierie de l’Aéronautique (S8)
Année universitaire 2023/2024
Table des matières
Définition linux Embarqué.........................................................................................................3
1. Caractéristiques Principales.................................................................................................3
2. Avantages............................................................................................................................3
3. Composants Typiques..........................................................................................................4
4. Développement....................................................................................................................4
5. Kernel..................................................................................................................................4
6. Personnalisation du Noyau pour Systèmes Embarqués.......................................................5
2
Listes des Figures
Figure 1 : Raspberry pi 3............................................................................................................9
3
linux Embarqué
Linux embarqué (en anglais Embedded Linux) désigne un système d'exploitation dérivé
de Linux et adapté à un système embarqué.
Linux embarqué est une version modifiée et optimisée du système d'exploitation Linux
conçu pour fonctionner sur des systèmes embarqués. Un système embarqué est un ordinateur
spécialement conçu pour réaliser des tâches spécifiques et fait partie intégrante de dispositifs
plus grands, souvent avec des ressources limitées en termes de mémoire, de puissance de
traitement et de capacité de stockage.
Caractéristiques Principales
Optimisation des Ressources : Linux embarqué est conçu pour fonctionner avec des
contraintes strictes en matière de ressources matérielles (mémoire, CPU, stockage).
Les systèmes sont souvent allégés pour ne contenir que les composants nécessaires au
fonctionnement de l'application spécifique.
Noyau (Kernel) : Le noyau de Linux embarqué est souvent personnalisé pour
s'adapter au matériel spécifique sur lequel il tourne. Cela inclut la suppression des
modules inutiles et l'ajout de pilotes spécifiques au matériel.
Temps Réel (Real-Time) : De nombreux systèmes embarqués exigent des capacités
de temps réel pour garantir que les opérations se produisent dans un temps déterminé.
Linux embarqué peut inclure des extensions temps réel comme PREEMPT-RT pour
répondre à ces exigences.
Taille Réduite : Les distributions Linux embarquées sont conçues pour être aussi
petites que possible. Des outils comme BusyBox permettent de combiner de
nombreuses commandes Unix en un seul exécutable pour réduire l'empreinte
mémoire.
Avantages
Open Source : Linux est open source, ce qui signifie qu'il peut être modifié et
distribué librement, offrant une grande flexibilité et précisément les coûts.
Écosystème Riche : Une vaste communauté de développeurs et une multitude de
ressources disponibles pour le support, le développement et le dépannage.
Stabilité et Sécurité : Linux est réputé pour sa robustesse et sa sécurité, essentielles
pour les systèmes embarqués.
Portabilité : Linux peut être porté sur de nombreuses architectures matérielles, de
ARM à x86, en passant par MIPS et PowerPC.
4
Composants Typiques
Bootloader : Un petit programme qui charge le noyau Linux en mémoire après le
démarrage du système. Exemples : U-Boot, GRUB.
Noyau : La partie centrale de l'OS qui gère le matériel, les processus et la
communication entre les composants.
Bibliothèques C : Bibliothèques essentielles pour le fonctionnement des applications,
comme la glibc ou uClibc.
Système de Fichiers : Un ensemble de fichiers et de répertoires nécessaires au
fonctionnement du système et des applications, souvent minimisé pour économiser
l'espace.
Applications et Services : Les applications spécifiques à l'usage prévu, ainsi que les
services nécessaires pour le réseau, la gestion des périphériques, etc.
Développement
Le développement de systèmes Linux embarqués nécessite souvent des outils spécifiques :
Chaînes de Compilation Croisée (Cross-Compilation Toolchains) : Pour compiler
le code sur un hôte (ordinateur de développement) pour qu'il fonctionne sur un
matériel cible différent.
Systèmes de Build : Outils comme Buildroot, Yocto Project pour créer des images
système personnalisées.
Débogage et Profilage : Utilisation d'outils de débogage (gdb, strace) et de profilage
(perf, valgrind) pour optimiser et vérifier le fonctionnement du système.
Kernel
Le noyau Linux, ou kernel , est le cœur du système d'exploitation Linux. Il agit comme une
interface entre le matériel de l'ordinateur et les logiciels applicatifs, gérant les ressources du
système et permettant aux différentes parties du système de communiquer efficacement.
Le noyau Linux est responsable de plusieurs fonctions cruciales :
Gestion de la Mémoire : Alloue et gérer l'accès à la mémoire RAM.
Gestion des Processus : Crée, planifie et termine les processus en s'assurant qu'ils
obtiennent le temps CPU nécessaire.
Gestion des Systèmes de Fichiers : Gère les fichiers et les systèmes de fichiers,
permettant aux utilisateurs et aux applications de lire et d'écrire des données.
Gestion des Périphériques : Communique avec et contrôle les périphériques
matériels via des pilotes spécifiques.
Sécurité et Permissions : Assure la sécurité du système via des contrôles d'accès et
des permissions.
5
Pour les systèmes embarqués, la personnalisation du noyau est souvent nécessaire pour
répondre à des besoins spécifiques. Cela peut inclure la suppression de fonctionnalités inutiles
pour réduire la taille du noyau, ou l'ajout de pilotes spécifiques pour le matériel cible.
Le noyau Linux, ou kernel , est le cœur du système d'exploitation Linux. Il agit comme une
interface entre le matériel de l'ordinateur et les logiciels applicatifs, gérant les ressources du
système et permettant aux différentes parties du système de communiquer efficacement. Voici
une vue plus détaillée sur le noyau et les différentes distributions permettant de le
personnaliser pour les systèmes embarqués.
Le noyau Linux est responsable de plusieurs fonctions cruciales :
Gestion de la Mémoire : Alloue et gérer l'accès à la mémoire RAM.
Gestion des Processus : Crée, planifie et termine les processus en s'assurant qu'ils
obtiennent le temps CPU nécessaire.
Gestion des Systèmes de Fichiers : Gère les fichiers et les systèmes de fichiers,
permettant aux utilisateurs et aux applications de lire et d'écrire des données.
Gestion des Périphériques : Communique avec et contrôle les périphériques
matériels via des pilotes spécifiques.
Sécurité et Permissions : Assure la sécurité du système via des contrôles d'accès et
des permissions.
Personnalisation du Noyau pour Systèmes Embarqués
Pour les systèmes embarqués, la personnalisation du noyau est souvent nécessaire pour
répondre à des besoins spécifiques. Cela peut inclure la suppression de fonctionnalités inutiles
pour réduire la taille du noyau, ou l'ajout de pilotes spécifiques pour le matériel cible.
Plusieurs distributions et outils existants pour faciliter la personnalisation du noyau pour les
systèmes embarqués :
Projet Yocto
Une plateforme open source permettant la création de systèmes Linux personnalisés pour les
systèmes embarqués.
Caractéristiques :
Crée des images Linux sur mesure.
Flexibilité pour choisir et configurer les composants du système.
Utilisez des recettes et des couches (layers) pour définir et organiser les composants
logiciels.
Grande communauté et support industriel.
Construire la racine
Un outil simple et efficace pour générer des systèmes de fichiers complets, des images de
noyau et des images de démarrage pour les systèmes embarqués.
6
Caractéristiques :
Facilité d'utilisation avec une configuration basée sur des menus.
Support pour une large gamme de paquets logiciels et de configurations de noyau.
Produit des images légères adaptées aux systèmes avec des ressources limitées.
Liste PTX
Un outil de construction pour les systèmes Linux embarqués basé sur les configurations de
menu.
Caractéristiques :
Facilité de personnalisation du noyau et des applications.
Support pour une variété d'architectures matérielles.
Génération de systèmes de fichiers racine, de noyaux et de bootloaders.
Buildroot
7
Partie Hardware
Le Raspberry Pi 3 est un ordinateur monocarte pouvant se connecter à un moniteur, à un
ensemble clavier/souris et disposant d'interfaces Wi-Fi et Bluetooth.
Il démarre depuis une carte micro-SD et fonctionne sous un O.S. Linux ou Windows 10
IoT. Il est fourni sans boîtier, alimentation, clavier, écran et souris dans le but de diminuer le
coût et de favoriser l'utilisation de matériel de récupération.
Le modèle Raspberry Pi3 est basée sur un processeur ARM Cortex-A53 64 bits
quatre coeurs à 1,4 GHz, possède 1 GB de mémoire RAM, une interface Wi-Fi, une interface
Bluetooth, 4 ports USB, un port Ethernet, un port HDMI, un port micro-SD et un connecteur
GPIO avec 40 broches d'E/S.
Cette carte est basée sur un processeur ARM et permet l'exécution du système d'exploitation
GNU/Linux/Windows 10 IoT et des logiciels compatibles. Le Raspberry Pi peut effectuer des
tâches d’un PC de bureau (feuilles de calcul, traitement de texte, jeux). Il peut également
diffuser des vidéos en haute définition grâce à son circuit Broadcom Videocore IV (permet le
décodage des flux Blu-ray full HD).
Caractéristiques:
Processeur :
Processeur Broadcom BCM2387.
1.2GHz Quad-Core ARM Cortex-A53 (64Bit)
Connectivité
2.4GHz and 5GHz IEEE 802.11.b/g/n/ac wireless LAN, Bluetooth 4.1, BLE
4 × USB 2.0 ports
GPU
Dual Core VideoCore IV® Multimedia Co-Processor. permet Open GL ES 2.0, un
contrôleur graphique OpenVG, avec un décodeur 1080p30 H.264 .
Capacité de 1Gpixel/s, 1.5Gtexel/s ou 24GFLOPs avec une infrastructure DMA
Memory
1GB LPDDR2
OS
Lancement à partir d’une carte Micro SD, pour installer un OS Linux, ou le Windows
10 IoT
Dimensions
85 x 56 x 17mm
Alimentation électrique
5V/2.5A DC par un connecteur micro USB
5V DC via une tête GPIO
Connecteurs
Ethernet
o 10/100 BaseT Ethernet socket
8
Sortie Vidéo
o HDMI ( 1.3 & 1.4)
o Composite RCA (PAL and NTSC)
Sortie Audio
o Sortie Audio prise Jack 3.5mm
o HDMI
o USB 1 x USB 2.0
GPIO Connecteur
40-pin 2.54 mm (100 mil) Tête d’extension: 2×20 Broches
Camera Connecteur
15-pin MIPI Camera Interface Serial (CSI-2)
Affichage Connecteur
Affichage Interface Serial (DSI) 15 way flat flex cable connector avec 2 data lignes et une
ligne d’horloge.
Carte Mémoire
Pousse/repousse
Micro SDIO.
Figure 1 : Raspberry pi 3
9
Bibliographie
https://fr.wikipedia.org
https://www.techniques-ingenieur.fr
https://openwrt.org
https://aytoo.ma
10