SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
Rapport de Mini Projet
« Systèmes embarqués »
Réduction d’un système d’exploitation
Embarqué avec « Busybox »
UNIVERSITÉ ABDELAMLEK ESSADI
FACULTE DES SCIENCES ET TECHNIQUES DE TANGER
MASTER : « SYSTEMES INFORMATIQUES ET RESEAUX »
 Réalisé par : Encadré par :
 ROUZI Ayoub Mr. Abdelhakim ANOUAR
 SALAMA Abdelhakim
 FADILI Mustafa
 ELMALKAOUI Yassine
MASTER-SIR R a p p o r t | 2
MASTER-SIR R a p p o r t | 3
SOMMAIRE
 Introduction………………………..........................................................................................................
 Etape1 :
 Obtenir les sources : …………………....................................................................................
 Initialisation d'une configuration minimale …………………………………………………………
 Etape 2:
 Configuration de la compilation ..........................................................................................
 Configurer votre noyau …………………………………..................................................................
 Etape 3 :
 Configuration des modules…….............................................................................................
 La compilation de noyau ……................................................................................................
 Etape 4 : BusyBox :
 Installation de BusyBox …..................................................................................................
 Compilation de BusyBox …………………………………...........................................................
 Conclusion
MASTER-SIR R a p p o r t | 4
INTRODUCTION
Pourquoi vouloir compiler un nouveau noyau ? Ce n'est en général pas nécessaire, car
le noyau par défaut reconnaît la plupart des configurations. En outre différents noyaux
sont disponibles. Vous devriez chercher s'il n'existe pas de paquet contenant un noyau
qui corresponde à votre matériel. Cependant, il peut être utile de compiler un nouveau
noyau dans les cas suivants :
 Gérer des périphériques spéciaux, ou des conflits de périphériques dans les
noyaux par défaut.
 Activer des options qui ne sont pas incluses dans le noyau par défaut, permettre
la gestion de la mémoire haute par exemple.
 Optimiser le noyau en enlevant les pilotes inutiles, ce qui peut accélérer le
démarrage de la machine ;
 Créer un noyau monolithique à la place d'un noyau modulaire ;
 Utiliser une version de développement du noyau ;
 Mieux connaître le noyau Linux.
MASTER-SIR R a p p o r t | 5
Buts du TP :
Construire un petit système embarqué à partir de rien, en 40 minutes :
- Configuration et compilation du noyau Linux
- Création du système de fichiers racine
- Compilation et installation de Busybox
- Création des fichiers spéciaux pour les périphériques
- Scripts de démarrage du système : systèmes de fichier virtuels, réseau
Pour cela on va partir du principe de commencer à partir d'un environnement
de bureau complet sous GNU/Linux (Debian, Fedora...) et supprimer tous les éléments in
utiles.
Busybox: outils générique :
 Le projet BusyBox (http: / /www.busybox.net ) a démarré il y a quelques
années dans le sillage du projet Debian . Le but du projet était de fournir
un ensemble complet de fonctionnalités « GNU/Linux- like » tout en
optimisant l'empreinte mémoire (mémoire vive et flash) en vue de
l'installation sur un système cible réduit. En clair il s'agit de remplacer les
commandes classiques (bash, ls, cp, vi, etc.) dont la majorité proviennent
du projet GNU (http: / /www.gnu.org ) par des versions simplifiées mais
efficaces.
 La plupart des outils Unix en ligne de commande avec un seul exécutable !
 Fait moins d'1 Mo (compilé statiquement avec glibc moins de 500 Ko).
 Configuration aisée des fonctionnalités à inclure
 Le meilleur choix pour Initrds avec des scripts complexes
MASTER-SIR R a p p o r t | 6
Etape1 : Obtenir les sources :
Les sources sont disponibles sur http://www.kernel.org. Vous pouvez les télécharger avec
des outils graphiques ou en ligne de commande, qui font appel à : HTTP, FTP, RSYNC, ou
Git.
Figure1: site web officielle
 Il est recommandé de vérifier la signature d'une archive tar téléchargée. Reportez-
vous à kernel.org/signature pour avoir des informations sur la manière de le faire.
 Décompressez l'archive et entrez dans le dossier qui a été créé:
tar xvfJ linux-*.tar.*
MASTER-SIR R a p p o r t | 7
Etape 2: Configuration & compilation(KALI)
Cette étape est la plus cruciale dans la personnalisation du noyau. Elle lui permettra de
s'adapter au mieux aux spécificités de votre matériel.
En définissant correctement les options dans le fichier .config, votre noyau et votre
ordinateur fonctionneront plus efficacement.
Récupérer le fichier de configuration (.config) du noyau sur lequel le système tourne,
pour démarrer
C’est un fichier masquer donc il faut taper la commande : ls -la
Donc on va copier la nouvelle version qu’on a téléchargée et le mettre dans le fichier de
configuration avec la commande :
cp /boot/config-4.4.0-21-generic .config
Configurer votre noyau
En alternative, vous pouvez utiliser la commande plus moderne :
make config
Ceci démarrera avec un fichier .config
Figure2: donne un nom a la machine
MASTER-SIR R a p p o r t | 8
On va donner un nom pour notre host :
Figure3: démarrage de configuration
A cette partie on va choisir juste les configurations qui ont besoin :
A cette partie on va choisir juste les configurations qui ont besoin :
MASTER-SIR R a p p o r t | 9
On continue comme cela :
On va ajouter les modules qu’on veut et ignorer les autres:
Comme vous voyez dans les photos précédentes, Il se peut que des questions soient
posées. C'est dans le cas où les options du kernel à installer sont nouvelles par rapport à
celui en cours d'exécution. Laisser les choix par défaut.
En validant simplement les questions.
MASTER-SIR R a p p o r t | 10
Adaptez votre configuration et enregistrez votre nouvelle configuration. Il est conseillé
d'en faire une copie en dehors de votre dossier des sources, car vous pouvez être
conduit à réitérer le processus maintes et maintes fois avant d'avoir pleine satisfaction.
« NOTE ! » :
La même chose que l’on a fait dans Kali Linux et les mêmes étapes précédentes ont
étaient répétés dans Debian, On va juste montrer la partie d’installation des modules sur
une autre distribution pour généraliser et montrer que le noyau peut être configurée,
compilé et installer sur n’importe quel distribution Linux avec les mêmes étapes.
Partie décompression :
Figure4 : décompression de l’archive
La configuration :
MASTER-SIR R a p p o r t | 11
Etape 3 : La compilation de noyau
Le temps de compilation peut aller de 15 minutes à plusieurs heures. Ceci dépend du
nombre d'options/modules sélectionnés et des capacités du processeur.
Initialisation d'une configuration minimale du noyau :
Exécutez par la commande $ make
Figure5 : démarrage de compilation
MASTER-SIR R a p p o r t | 12
Ajout de paramètres spécifiques au système embarqué :
On peut lancer plus de processus make pour aller plus vite.
Si on a 8 cœurs sur le CPU, utiliser l'option -j avec nb cœurs + 1 :
Exécutez par la commande make -j9
Figure4 : choisir le nombre de processus utilisé
Le fichier .config
Toute votre configuration noyau est en fait stockée dans le fichier .config. Si vous
téléchargez un autre noyau et que vous placez votre fichier .config dans le répertoire
racine des sources vous n'aurez pas à tout refaire, alors n'oubliez pas de le sauvegarder
précieusement (ailleurs que dans les sources).
Création d'un système de fichiers racine
Création d'un fichier vide de 320 Ko :
Formatage d'un fichier en ext2 :
MASTER-SIR R a p p o r t | 13
Etape 4 : Installation Compilation de BusyBox :
 Busybox est un logiciel permettant d’implémenter des commandes standards sous
Linux. On peut concevoir cet outil comme une couche logicielle au-dessus du noyau :
 Récupération des sources sur http://busybox.net
 Configuration de busybox : make menuconfig
 Choisir une exécutable statique, compilée nativement.
 Compilation de busybox : make
 Pré-installation de busybox (dans le sous-répertoire _install/) : make install
 Résultat : un exécutable de 500 Ko implémentant toutes les commandes nécessaires !
On va décompresser le package de busybox :
MASTER-SIR R a p p o r t | 14
On va par la suite configurer le busyBox avec la commande : « make menuconfig »
On compile le package:
MASTER-SIR R a p p o r t | 15
Voilà le résultat de compilation :
On installe le module :
Montage de l'image root du système de fichiers :
C
Copie de la structure de fichiers busybox :
C
MASTER-SIR R a p p o r t | 16
« rsync -a busybox/_install/ /mnt/rootfs/ »
« chown -R root:root /mnt/rootfs/ »
Synchroniser les modifications dans l'image du système de fichiers monté :
« sync »
Configuration du réseau
Nous avons choisi de placer le support de la carte ethernet dans la
partie dynamique du noyau (les modules). Il faut donc copier l'arborescence des
modules sur le réper toire cible par la commande suivante:
On peut ensuite initialiser le réseau à l'aide de la commande ifconfig.:
MASTER-SIR R a p p o r t | 17
Utilisation de BUILDROOT
Il faut alors spécifier les différentes options de compilation. Après l'installation il suffit de
taper « make » pour obtenir l'écran de configuration. Cet écran sera ensuite
obtenu grâce à la commande « make menuconfig ».
• La chaîne de compilation croisée dans le répertoire build_arm/staging_dir
• Le root filesystem sur build_arm/root
• Une image EXT2 et CRAMFS du root filesystem soit rootfs.arm.ext2 et rootfs.arm.cramfs
MASTER-SIR R a p p o r t | 18
Création du script de démarrage /etc/init.d/rcS :
Occupons-nous à présent des scripts de démarrage.
Ce script se charge de monter l’arborescence de Linux en lecture/écriture, de
façon à pouvoir utiliser notre OS, configurer l’adresse localhost…
Il est utilisé par la commande /sbin/init de Busybox lors du démarrage du
système.
ATTENTION!Ce script doit être rendu exécutable par la commande chmod +x.
 Fichier /etc/init.d/rcS :
MASTER-SIR R a p p o r t | 19
CONCLUSION :
Durant la réalisation de ce projet on a pu acquérir une petite expérience
dans le monde des noyaux (Kernels) et on a réalisé une configuration
d’un nouveau noyau conçu complétement pour l’utilisation qui s’adapte
avec nos besoins.
Comme résultat, on a réalisé les taches suivantes :
- Optimisation de la procédure de démarrage du système
- Réduction drastique de l'utilisation mémoire (utilisation de ucLibc et
Busybox)
- Optimisation du noyau en fonction des fonctionnalités nécessaires
(pilotes de périphériques, réseau ou non, etc...).
MASTER-SIR R a p p o r t | 20
Bibliographie :
Bibliographie
• L'ouvrage Linux embarqué 2ème édition paru aux éditions Eyrolles
en septembre 2005 dont la présentation est accessible depuis :
http://pficheux.free.fr.
• L'article Embarquez Linux! Ou Linux everywhere paru dans Linux :
http://pficheux.free.fr/articles/ lmf/linux_everywher
• La page de Patrice Kadionik concernant les systèmes embarqués sur
http://www.enseirb.fr/~ka dionik/embedded/embedded.html
• Le site du projet BusyBox sur
http://www.busybox.net
• Le site du projet uClibc sur
http://www.uclibc.org
• Le site du projet buildroot sur
http://buildroot.uclibc.org
• Document NFS-Rootmini-HOWTO sur:
http: / /www. tldp.org/HOWTO/NFS-Root.html

Weitere ähnliche Inhalte

Was ist angesagt?

présentation soutenance PFE.ppt
présentation soutenance PFE.pptprésentation soutenance PFE.ppt
présentation soutenance PFE.ppt
Mohamed Ben Bouzid
 

Was ist angesagt? (20)

présentation soutenance PFE.ppt
présentation soutenance PFE.pptprésentation soutenance PFE.ppt
présentation soutenance PFE.ppt
 
Rapport de stage du fin d'étude
Rapport de stage du fin d'étudeRapport de stage du fin d'étude
Rapport de stage du fin d'étude
 
Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2
 
Programmation de systèmes embarqués : Introduction aux systèmes embarqués
Programmation de systèmes embarqués : Introduction aux systèmes embarquésProgrammation de systèmes embarqués : Introduction aux systèmes embarqués
Programmation de systèmes embarqués : Introduction aux systèmes embarqués
 
Rapport Projet de fin d'etude sur le parc informatique
Rapport Projet  de fin d'etude sur le parc informatiqueRapport Projet  de fin d'etude sur le parc informatique
Rapport Projet de fin d'etude sur le parc informatique
 
Mémoire powerpoint de MOUSTAPHA Mahamat Hissein à 2ie
Mémoire powerpoint de MOUSTAPHA Mahamat Hissein à 2ie Mémoire powerpoint de MOUSTAPHA Mahamat Hissein à 2ie
Mémoire powerpoint de MOUSTAPHA Mahamat Hissein à 2ie
 
ROBOT à base d'Android - Rapport PFE
ROBOT à base d'Android - Rapport PFEROBOT à base d'Android - Rapport PFE
ROBOT à base d'Android - Rapport PFE
 
Présentation unix linux
Présentation unix linuxPrésentation unix linux
Présentation unix linux
 
Rapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application AndroidRapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application Android
 
Rapport data-mining
Rapport data-miningRapport data-mining
Rapport data-mining
 
Rapport de Stage
Rapport de StageRapport de Stage
Rapport de Stage
 
Rapport du stage (projet fin d'étude)
Rapport du stage (projet fin d'étude)Rapport du stage (projet fin d'étude)
Rapport du stage (projet fin d'étude)
 
Modele rapport pfe esprit
Modele rapport pfe  espritModele rapport pfe  esprit
Modele rapport pfe esprit
 
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
Rapport pfe Conceptionet Developpement d'une Application web et  Mobile Rapport pfe Conceptionet Developpement d'une Application web et  Mobile
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
 
Rapport Projet Fin d'Études PFE
Rapport Projet Fin d'Études PFERapport Projet Fin d'Études PFE
Rapport Projet Fin d'Études PFE
 
Rapport restaurant le-roi
Rapport restaurant le-roiRapport restaurant le-roi
Rapport restaurant le-roi
 
Presentation stage Tunisie Telecom
Presentation stage Tunisie TelecomPresentation stage Tunisie Telecom
Presentation stage Tunisie Telecom
 
Rapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
Rapport de stage d'initiation 2015 Mahmoudi Mohamed AmineRapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
Rapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
 
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en EducationRapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
 
Methodes d'accès dans les réseaux locaux
Methodes d'accès dans les réseaux locauxMethodes d'accès dans les réseaux locaux
Methodes d'accès dans les réseaux locaux
 

Ähnlich wie Rapport systéme embarqué busybox

[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco
[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco
[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco
PASCAL Jean Marie
 
Maintenance du système Linux
Maintenance du système LinuxMaintenance du système Linux
Maintenance du système Linux
EL AMRI El Hassan
 
Etude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU LinuxEtude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU Linux
Thierry Gayet
 

Ähnlich wie Rapport systéme embarqué busybox (20)

Rapport Kernel Linux - Configuration – Compilation & installation
Rapport Kernel Linux - Configuration –  Compilation & installationRapport Kernel Linux - Configuration –  Compilation & installation
Rapport Kernel Linux - Configuration – Compilation & installation
 
Noyau
NoyauNoyau
Noyau
 
Rapport openembedded
Rapport openembeddedRapport openembedded
Rapport openembedded
 
Exposé open embedded
Exposé open embeddedExposé open embedded
Exposé open embedded
 
utilisation des core dump sous linux
utilisation des core dump sous linuxutilisation des core dump sous linux
utilisation des core dump sous linux
 
[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco
[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco
[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco
 
Presentation kernel - Kernel Linux - Configuration – Compilation & installation
Presentation kernel - Kernel Linux - Configuration –  Compilation & installationPresentation kernel - Kernel Linux - Configuration –  Compilation & installation
Presentation kernel - Kernel Linux - Configuration – Compilation & installation
 
Maintenance du système Linux
Maintenance du système LinuxMaintenance du système Linux
Maintenance du système Linux
 
system de gestion Nfs (Network File System)
system de gestion Nfs (Network File System)system de gestion Nfs (Network File System)
system de gestion Nfs (Network File System)
 
Boot
BootBoot
Boot
 
Install arch ultrabook full luks ssd
Install arch ultrabook full luks ssdInstall arch ultrabook full luks ssd
Install arch ultrabook full luks ssd
 
Alphorm.com Formation Nagios et Cacti : Installation et Administration
Alphorm.com Formation Nagios et Cacti : Installation et AdministrationAlphorm.com Formation Nagios et Cacti : Installation et Administration
Alphorm.com Formation Nagios et Cacti : Installation et Administration
 
Chargez un noyau linux sans reboot avec kexec
Chargez un noyau linux sans reboot avec kexecChargez un noyau linux sans reboot avec kexec
Chargez un noyau linux sans reboot avec kexec
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)
 
Snort implementation
Snort implementationSnort implementation
Snort implementation
 
Installation de systemes d'exploitation via reseau avec serva
Installation de systemes d'exploitation via reseau avec servaInstallation de systemes d'exploitation via reseau avec serva
Installation de systemes d'exploitation via reseau avec serva
 
Etude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU LinuxEtude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU Linux
 
OpenNMS
OpenNMSOpenNMS
OpenNMS
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linux
 
SOLARIS 10 - Exercise - FR - 2008
SOLARIS 10 - Exercise - FR - 2008SOLARIS 10 - Exercise - FR - 2008
SOLARIS 10 - Exercise - FR - 2008
 

Mehr von Ayoub Rouzi

Mehr von Ayoub Rouzi (20)

Khdemti.com: We revolutionize the way project owners and freelancers work tog...
Khdemti.com: We revolutionize the way project owners and freelancers work tog...Khdemti.com: We revolutionize the way project owners and freelancers work tog...
Khdemti.com: We revolutionize the way project owners and freelancers work tog...
 
NFS, MPI, Programmation Sérial & Parallèle avec Condor Scénarios et Simulatio...
NFS, MPI, Programmation Sérial & Parallèle avec Condor Scénarios et Simulatio...NFS, MPI, Programmation Sérial & Parallèle avec Condor Scénarios et Simulatio...
NFS, MPI, Programmation Sérial & Parallèle avec Condor Scénarios et Simulatio...
 
Reseaux mobiles: Rapport Projet : « Lien radio »
Reseaux mobiles: Rapport Projet : « Lien radio »Reseaux mobiles: Rapport Projet : « Lien radio »
Reseaux mobiles: Rapport Projet : « Lien radio »
 
Cahier des charges: Traiteur industriel des produits agro-Alimentaires culina...
Cahier des charges: Traiteur industriel des produits agro-Alimentaires culina...Cahier des charges: Traiteur industriel des produits agro-Alimentaires culina...
Cahier des charges: Traiteur industriel des produits agro-Alimentaires culina...
 
Application Android: Projet assurance
Application Android: Projet assuranceApplication Android: Projet assurance
Application Android: Projet assurance
 
Scheduler & SLA
Scheduler & SLAScheduler & SLA
Scheduler & SLA
 
Rapport DVWA: File Upload
Rapport DVWA: File UploadRapport DVWA: File Upload
Rapport DVWA: File Upload
 
Rapport DVWA: CSRF
Rapport DVWA: CSRFRapport DVWA: CSRF
Rapport DVWA: CSRF
 
Ateliers d’une application Web vulnérable
Ateliers d’une application Web vulnérable Ateliers d’une application Web vulnérable
Ateliers d’une application Web vulnérable
 
Rapport j2ee: Gestion d’un compte bancaire En utilisant les EJB 3.0
Rapport j2ee: Gestion d’un compte bancaire En utilisant les EJB 3.0Rapport j2ee: Gestion d’un compte bancaire En utilisant les EJB 3.0
Rapport j2ee: Gestion d’un compte bancaire En utilisant les EJB 3.0
 
L'estime de soi
L'estime de soiL'estime de soi
L'estime de soi
 
WannaCry / Wannacrypt Ransomware
WannaCry / Wannacrypt RansomwareWannaCry / Wannacrypt Ransomware
WannaCry / Wannacrypt Ransomware
 
Mobile ip - IT entités fonctionnelles de Mobile IP
Mobile ip - IT entités fonctionnelles de Mobile IPMobile ip - IT entités fonctionnelles de Mobile IP
Mobile ip - IT entités fonctionnelles de Mobile IP
 
Résumé projet Smart Traffic Managment System Real Time (STMSRT)
Résumé projet Smart Traffic Managment System Real Time (STMSRT)Résumé projet Smart Traffic Managment System Real Time (STMSRT)
Résumé projet Smart Traffic Managment System Real Time (STMSRT)
 
Smart Parking: Stationnement intelligent État de l’art, Étude d’un exemple De...
Smart Parking: Stationnement intelligent État de l’art, Étude d’un exemple De...Smart Parking: Stationnement intelligent État de l’art, Étude d’un exemple De...
Smart Parking: Stationnement intelligent État de l’art, Étude d’un exemple De...
 
Smart traffic managment system real time (stmsrt)
Smart traffic managment system real time (stmsrt)Smart traffic managment system real time (stmsrt)
Smart traffic managment system real time (stmsrt)
 
Freelance,Travail traditionnel, Entrepreneuriat...Quel choix a suivre ?
Freelance,Travail traditionnel, Entrepreneuriat...Quel choix a suivre ?Freelance,Travail traditionnel, Entrepreneuriat...Quel choix a suivre ?
Freelance,Travail traditionnel, Entrepreneuriat...Quel choix a suivre ?
 
Programmation des cartes Arduino - Se familiariser avec la programmation Simple
Programmation des cartes Arduino - Se familiariser avec la programmation SimpleProgrammation des cartes Arduino - Se familiariser avec la programmation Simple
Programmation des cartes Arduino - Se familiariser avec la programmation Simple
 
Projet Radare de Recule - MANIPULATION AVEC L’ARDUINO
Projet Radare de Recule - MANIPULATION AVEC L’ARDUINOProjet Radare de Recule - MANIPULATION AVEC L’ARDUINO
Projet Radare de Recule - MANIPULATION AVEC L’ARDUINO
 
Kernel Linux - Configuration de Wyse - TP wyse x30
Kernel Linux - Configuration de Wyse - TP wyse x30Kernel Linux - Configuration de Wyse - TP wyse x30
Kernel Linux - Configuration de Wyse - TP wyse x30
 

Rapport systéme embarqué busybox

  • 1. Rapport de Mini Projet « Systèmes embarqués » Réduction d’un système d’exploitation Embarqué avec « Busybox » UNIVERSITÉ ABDELAMLEK ESSADI FACULTE DES SCIENCES ET TECHNIQUES DE TANGER MASTER : « SYSTEMES INFORMATIQUES ET RESEAUX »  Réalisé par : Encadré par :  ROUZI Ayoub Mr. Abdelhakim ANOUAR  SALAMA Abdelhakim  FADILI Mustafa  ELMALKAOUI Yassine
  • 2. MASTER-SIR R a p p o r t | 2
  • 3. MASTER-SIR R a p p o r t | 3 SOMMAIRE  Introduction………………………..........................................................................................................  Etape1 :  Obtenir les sources : …………………....................................................................................  Initialisation d'une configuration minimale …………………………………………………………  Etape 2:  Configuration de la compilation ..........................................................................................  Configurer votre noyau …………………………………..................................................................  Etape 3 :  Configuration des modules…….............................................................................................  La compilation de noyau ……................................................................................................  Etape 4 : BusyBox :  Installation de BusyBox …..................................................................................................  Compilation de BusyBox …………………………………...........................................................  Conclusion
  • 4. MASTER-SIR R a p p o r t | 4 INTRODUCTION Pourquoi vouloir compiler un nouveau noyau ? Ce n'est en général pas nécessaire, car le noyau par défaut reconnaît la plupart des configurations. En outre différents noyaux sont disponibles. Vous devriez chercher s'il n'existe pas de paquet contenant un noyau qui corresponde à votre matériel. Cependant, il peut être utile de compiler un nouveau noyau dans les cas suivants :  Gérer des périphériques spéciaux, ou des conflits de périphériques dans les noyaux par défaut.  Activer des options qui ne sont pas incluses dans le noyau par défaut, permettre la gestion de la mémoire haute par exemple.  Optimiser le noyau en enlevant les pilotes inutiles, ce qui peut accélérer le démarrage de la machine ;  Créer un noyau monolithique à la place d'un noyau modulaire ;  Utiliser une version de développement du noyau ;  Mieux connaître le noyau Linux.
  • 5. MASTER-SIR R a p p o r t | 5 Buts du TP : Construire un petit système embarqué à partir de rien, en 40 minutes : - Configuration et compilation du noyau Linux - Création du système de fichiers racine - Compilation et installation de Busybox - Création des fichiers spéciaux pour les périphériques - Scripts de démarrage du système : systèmes de fichier virtuels, réseau Pour cela on va partir du principe de commencer à partir d'un environnement de bureau complet sous GNU/Linux (Debian, Fedora...) et supprimer tous les éléments in utiles. Busybox: outils générique :  Le projet BusyBox (http: / /www.busybox.net ) a démarré il y a quelques années dans le sillage du projet Debian . Le but du projet était de fournir un ensemble complet de fonctionnalités « GNU/Linux- like » tout en optimisant l'empreinte mémoire (mémoire vive et flash) en vue de l'installation sur un système cible réduit. En clair il s'agit de remplacer les commandes classiques (bash, ls, cp, vi, etc.) dont la majorité proviennent du projet GNU (http: / /www.gnu.org ) par des versions simplifiées mais efficaces.  La plupart des outils Unix en ligne de commande avec un seul exécutable !  Fait moins d'1 Mo (compilé statiquement avec glibc moins de 500 Ko).  Configuration aisée des fonctionnalités à inclure  Le meilleur choix pour Initrds avec des scripts complexes
  • 6. MASTER-SIR R a p p o r t | 6 Etape1 : Obtenir les sources : Les sources sont disponibles sur http://www.kernel.org. Vous pouvez les télécharger avec des outils graphiques ou en ligne de commande, qui font appel à : HTTP, FTP, RSYNC, ou Git. Figure1: site web officielle  Il est recommandé de vérifier la signature d'une archive tar téléchargée. Reportez- vous à kernel.org/signature pour avoir des informations sur la manière de le faire.  Décompressez l'archive et entrez dans le dossier qui a été créé: tar xvfJ linux-*.tar.*
  • 7. MASTER-SIR R a p p o r t | 7 Etape 2: Configuration & compilation(KALI) Cette étape est la plus cruciale dans la personnalisation du noyau. Elle lui permettra de s'adapter au mieux aux spécificités de votre matériel. En définissant correctement les options dans le fichier .config, votre noyau et votre ordinateur fonctionneront plus efficacement. Récupérer le fichier de configuration (.config) du noyau sur lequel le système tourne, pour démarrer C’est un fichier masquer donc il faut taper la commande : ls -la Donc on va copier la nouvelle version qu’on a téléchargée et le mettre dans le fichier de configuration avec la commande : cp /boot/config-4.4.0-21-generic .config Configurer votre noyau En alternative, vous pouvez utiliser la commande plus moderne : make config Ceci démarrera avec un fichier .config Figure2: donne un nom a la machine
  • 8. MASTER-SIR R a p p o r t | 8 On va donner un nom pour notre host : Figure3: démarrage de configuration A cette partie on va choisir juste les configurations qui ont besoin : A cette partie on va choisir juste les configurations qui ont besoin :
  • 9. MASTER-SIR R a p p o r t | 9 On continue comme cela : On va ajouter les modules qu’on veut et ignorer les autres: Comme vous voyez dans les photos précédentes, Il se peut que des questions soient posées. C'est dans le cas où les options du kernel à installer sont nouvelles par rapport à celui en cours d'exécution. Laisser les choix par défaut. En validant simplement les questions.
  • 10. MASTER-SIR R a p p o r t | 10 Adaptez votre configuration et enregistrez votre nouvelle configuration. Il est conseillé d'en faire une copie en dehors de votre dossier des sources, car vous pouvez être conduit à réitérer le processus maintes et maintes fois avant d'avoir pleine satisfaction. « NOTE ! » : La même chose que l’on a fait dans Kali Linux et les mêmes étapes précédentes ont étaient répétés dans Debian, On va juste montrer la partie d’installation des modules sur une autre distribution pour généraliser et montrer que le noyau peut être configurée, compilé et installer sur n’importe quel distribution Linux avec les mêmes étapes. Partie décompression : Figure4 : décompression de l’archive La configuration :
  • 11. MASTER-SIR R a p p o r t | 11 Etape 3 : La compilation de noyau Le temps de compilation peut aller de 15 minutes à plusieurs heures. Ceci dépend du nombre d'options/modules sélectionnés et des capacités du processeur. Initialisation d'une configuration minimale du noyau : Exécutez par la commande $ make Figure5 : démarrage de compilation
  • 12. MASTER-SIR R a p p o r t | 12 Ajout de paramètres spécifiques au système embarqué : On peut lancer plus de processus make pour aller plus vite. Si on a 8 cœurs sur le CPU, utiliser l'option -j avec nb cœurs + 1 : Exécutez par la commande make -j9 Figure4 : choisir le nombre de processus utilisé Le fichier .config Toute votre configuration noyau est en fait stockée dans le fichier .config. Si vous téléchargez un autre noyau et que vous placez votre fichier .config dans le répertoire racine des sources vous n'aurez pas à tout refaire, alors n'oubliez pas de le sauvegarder précieusement (ailleurs que dans les sources). Création d'un système de fichiers racine Création d'un fichier vide de 320 Ko : Formatage d'un fichier en ext2 :
  • 13. MASTER-SIR R a p p o r t | 13 Etape 4 : Installation Compilation de BusyBox :  Busybox est un logiciel permettant d’implémenter des commandes standards sous Linux. On peut concevoir cet outil comme une couche logicielle au-dessus du noyau :  Récupération des sources sur http://busybox.net  Configuration de busybox : make menuconfig  Choisir une exécutable statique, compilée nativement.  Compilation de busybox : make  Pré-installation de busybox (dans le sous-répertoire _install/) : make install  Résultat : un exécutable de 500 Ko implémentant toutes les commandes nécessaires ! On va décompresser le package de busybox :
  • 14. MASTER-SIR R a p p o r t | 14 On va par la suite configurer le busyBox avec la commande : « make menuconfig » On compile le package:
  • 15. MASTER-SIR R a p p o r t | 15 Voilà le résultat de compilation : On installe le module : Montage de l'image root du système de fichiers : C Copie de la structure de fichiers busybox : C
  • 16. MASTER-SIR R a p p o r t | 16 « rsync -a busybox/_install/ /mnt/rootfs/ » « chown -R root:root /mnt/rootfs/ » Synchroniser les modifications dans l'image du système de fichiers monté : « sync » Configuration du réseau Nous avons choisi de placer le support de la carte ethernet dans la partie dynamique du noyau (les modules). Il faut donc copier l'arborescence des modules sur le réper toire cible par la commande suivante: On peut ensuite initialiser le réseau à l'aide de la commande ifconfig.:
  • 17. MASTER-SIR R a p p o r t | 17 Utilisation de BUILDROOT Il faut alors spécifier les différentes options de compilation. Après l'installation il suffit de taper « make » pour obtenir l'écran de configuration. Cet écran sera ensuite obtenu grâce à la commande « make menuconfig ». • La chaîne de compilation croisée dans le répertoire build_arm/staging_dir • Le root filesystem sur build_arm/root • Une image EXT2 et CRAMFS du root filesystem soit rootfs.arm.ext2 et rootfs.arm.cramfs
  • 18. MASTER-SIR R a p p o r t | 18 Création du script de démarrage /etc/init.d/rcS : Occupons-nous à présent des scripts de démarrage. Ce script se charge de monter l’arborescence de Linux en lecture/écriture, de façon à pouvoir utiliser notre OS, configurer l’adresse localhost… Il est utilisé par la commande /sbin/init de Busybox lors du démarrage du système. ATTENTION!Ce script doit être rendu exécutable par la commande chmod +x.  Fichier /etc/init.d/rcS :
  • 19. MASTER-SIR R a p p o r t | 19 CONCLUSION : Durant la réalisation de ce projet on a pu acquérir une petite expérience dans le monde des noyaux (Kernels) et on a réalisé une configuration d’un nouveau noyau conçu complétement pour l’utilisation qui s’adapte avec nos besoins. Comme résultat, on a réalisé les taches suivantes : - Optimisation de la procédure de démarrage du système - Réduction drastique de l'utilisation mémoire (utilisation de ucLibc et Busybox) - Optimisation du noyau en fonction des fonctionnalités nécessaires (pilotes de périphériques, réseau ou non, etc...).
  • 20. MASTER-SIR R a p p o r t | 20 Bibliographie : Bibliographie • L'ouvrage Linux embarqué 2ème édition paru aux éditions Eyrolles en septembre 2005 dont la présentation est accessible depuis : http://pficheux.free.fr. • L'article Embarquez Linux! Ou Linux everywhere paru dans Linux : http://pficheux.free.fr/articles/ lmf/linux_everywher • La page de Patrice Kadionik concernant les systèmes embarqués sur http://www.enseirb.fr/~ka dionik/embedded/embedded.html • Le site du projet BusyBox sur http://www.busybox.net • Le site du projet uClibc sur http://www.uclibc.org • Le site du projet buildroot sur http://buildroot.uclibc.org • Document NFS-Rootmini-HOWTO sur: http: / /www. tldp.org/HOWTO/NFS-Root.html