SlideShare une entreprise Scribd logo
1  sur  42
Réalisé Par:
*AYOUB ROUZI
*ABDELHAKIM SALAMA
*FADILI MUSTAFA
*ELMALKAOUI YASSINE
Encadré Par:
Mr.Abdelhakim Anouar
MINIMISER LE SYSTÈME
D'EXPLOITATION EN UTILISANT
OPENEMBEDDED
 Introduction
 OpenEmbedded en quelques mots
 Historique et rappels
 OpenEmbedded
 OpenEmbedded en détail
 Cas d’utilisation
 OpenEmbedded Meta data
 Bitbake
 OpenEmbedded en pratique
 Comment tester ?
 Conclusion
PLAN:
 OpenEmbedded est un Framework de compilation de composants
logiciels libres destines a être déployés sur des systèmes embarques
 production d’un simple binaire jusqu’à une distribution complété
 support de nombreuses architectures et configurations flexible
 autosuffisant et déterministe
OPENEMBEDDED EN QUELQUES MOTS
HISTORIQUE ET RAPPELS
 Les briques logiciels de base pour construire un système Linux
glibc: GNU C library.
gcc: GNU C compiler.
binutils: outils manipulant les fichiers objet et binaire
Ces éléments constituent une toolchain, avec laquelle peut ensuite
être compile tout autre composant (make, le kernel, X, KDE, ...)
HISTORIQUE ET RAPPELS
 Une toolchain permet de compiler sur une machine hôte (’build’, ’native’)
d’architecture A du code exécutable sur une machine cible (’Target’) d’architecture B.
 si A == B: on parle de toolchain et de compilation
 si A != B: on parle de cross-toolchain et de cross-compilation
HISTORIQUE ET RAPPELS
 Pour compiler du code pour une machine cible, il y a plusieurs
possibilités
 récupérer une standalone/prebuilt toochain/SDK s’exécutant
sur la machine cible. Rarement viable par manque de mémoire
et puissance de la machine embarquée
 compiler une toochain/SDK exécutable sur la machine cible
 récupérer une cross-toochain s’exécutant sur une machine
hôte générant du code spécifique a la machine cible
(ex: ARM)
 compiler une cross-toolchain
HISTORIQUE ET RAPPELS
« COMPILATION POUR L’EMBARQUE»
OPENEMBEDDED
 Les systèmes de build existants ne gèrent pas les dépendances ou montrent vite leurs
limites d’utilisation grande échelle par:
 manque de flexibilité
 lourdeur de maintenance (ex: des makefiles)
 OpenEmbedded a ete crée en 2003 par Chris Larson:
 pour fédérer les efforts de développement des différentes distro embarquées qui sont/étaient
trop souvent spécifiques à une seule architecture cible.
 pour fournir un systéme de build flexible et puissant, utilisant une syntaxe et sémantique plus
adaptée que des makefiles
OPENEMBEDDED
« POURQUOI AVOIR CRÉER OPENEMBEDDED ?»
 compilation de binaires/paquets/distributions complètes exnihilo (from scratch)
 possibilité d’utiliser une toolchain préexistante
 génération d’une même distribution déployable sur différente architecture cible
 plusieurs milliers de paquets disponibles: vim, python, qt4, etc.
 plusieurs images disponibles: console(2Mo), gpe-image, etc.
 customisation: toolchain (glibc/uClibc/eglibc), scripts d’init,découpage des paquets.
 kernel très récents supportes (2.6.24)syntaxe simple et puissante des .bb
 pleins d’autres encore ...
 parce que c’est fun de créer sa propre mini distribution
OPENEMBEDDED
« LES ATOUTS D’OPENEMBEDDED»
 Des laboratoires de recherches
 Des sociétés spécialisées dans l’électronique embarque
 Des sociétés de de télécom (t´téléphonie mobile / PDA)
 Des projets libres de distributions Linux embarquée
(ex: nslu2,OpenMoko)
OPENEMBEDDED
« QUI UTILISE OPENEMBEDDED ?»
OPENEMBEDDED EN DETAIL
Techniquement, le projet OpenEmbedded se compose de
bitbake: la commande utilisée pour construire d’un simple
paquet jusqu’à une distribution complète avec OpenEmbedded
les metadata d’OpenEmbedded: l’ensemble des fichiers que
bitbake exploite pour pouvoir faire cela
OPENEMBEDDED EN DÉTAIL
« OPENEMBEDDED = BITBAKE + METADATA»
Le dépôt des Meta data contient l’ensemble des données
nécessaires et suffisantes pour (cross)-compiler des composants
logiciels open sources
 On distingue trois principaux types de Meta data
 recipe (*.bb): caractérise un composant logiciel (executable, bibliothéques, kernel.)
 class (*.bbclass): contient des taches communes aux recipes,
 conf (*.conf): fichier de configuration,
OPENEMBEDDED EN DÉTAIL
« OPENEMBEDDED METADATA REPOSITORY»
 Un recipe contient l’ensemble des données permettant de compiler
 un composant depuis son code source.
 description et licence
 liens vers les sources et patchs `a appliquer
 dépendances (build dépendances, runtime dépendances)
 options de configuration
 customisation du découpage et contenu des paquets générées
(-dev, -doc, etc.)
OPENEMBEDDED EN DÉTAIL
« OPENEMBEDDED METADATA: RECIPE (*.BB) »
 Les fichiers de configuration
 local.conf: contient votre conf personnelle de build (TARGET ARCH, DISTRO, ...)
 machine configurations: common architectures, routers, PDA,GSM phones, ...
 distribution policies: packaging, naming, preferred version ofsoftware,
OPENEMBEDDED EN DÉTAIL
« OPENEMBEDDED METADATA: CONF (*.CONF) »
 un exécuteur de taches et un gestionnaire de metadata
 un peu le ’make’ d’OpenEmbedded
 inspire de Portage, le gestionnaire de paquet de la distribution Gentoo
 écrit en python
OPENEMBEDDED EN DÉTAIL
« BITBAKE »
 Gérer la cross-compilation
 Gérer les dépendances inter-paquets
 build time on target architectures
 build time on native architectures
 Runtime
 Linux distribution agnostic
 Architecture agnostic
 Gérer les metadata conditionnellement (target, OS, distro,machine)
 Multiple target operating system (Linux, BSDs, etc.)
OPENEMBEDDED EN DÉTAIL
« BUTS DE BITBAKE »
OPENEMBEDDED EN PRATIQUE
 Pour faire c’est premiers pas avec OpenEmbedded et bitbake:
http://www.openembedded.org/wiki/GettingStarted
Un seul fichier à configurer: /build/conf/local.conf
OPENEMBEDDED EN PRATIQUE
« OPENEMBEDDED CONFIGURATION »
OPENEMBEDDED EN PRATIQUE
« UTILISATION DE BITBAKE »
Les paquets et images résultantes sont dans tmp/deploy/
L'ENVIRONNEMENT DE DÉVELOPPEMENT
 Une personnalisation simple
mkdir -p /stuff/build/conf /stuff/tools/
cd /stuff/tools
svn co svn://svn.berlios.de/bitbake/branches/bitbake -1.4 bitbake
cd bitbake
./setup.py build
 Pour plus d’informations sur bitbake :
cd /stuff/tools/bitbake/doc/manual && make
 pour add bitbake a linux PATH :
export PATH=$HOME/oe/bitbake/bin:$PATH
L'ENVIRONNEMENT DE DÉVELOPPEMENT
« INSTALLATION DE L'ENVIRONNEMENT DE DÉVELOPPEMENT »
 aptget install wget curl
L'ENVIRONNEMENT DE DÉVELOPPEMENT
« INSTALLATION DES OUTILLES POUR LE CODE »
L'ENVIRONNEMENT DE DÉVELOPPEMENT
« INSTALLATION DE COMPILATEUR POUR PYTHON »
 aptget install python-psycop2
 Dans cet exemple nous utiliserons la branche
(git.openembedded.org/openembedded)
L'ENVIRONNEMENT DE DÉVELOPPEMENT
« INSTALLATION D'OPENEMBEDDED »
mtn –db=OE.mtn pull monotone.openembedded.org org.openembedded.stable
L'ENVIRONNEMENT DE DÉVELOPPEMENT
« MISE À JOUR DE LA BASE OPENOMBEDDED »
BBFILES = "${HOME}/openombedde/recipes/bb/bb_1.2.bb"
Choisir une machine depuis :
org.openembedded.stable/conf/machine/
L'ENVIRONNEMENT DE DÉVELOPPEMENT
« MODIFIER LE FICHIER BUILD/CONF/LOCAL.CONF »
Org.openembedded.stable/conf/distro/
L'ENVIRONNEMENT DE DÉVELOPPEMENT
« CHOISIR UNE DISTRIBUTION »
 PARALLEL_MAKE = "j 4"
 BB_NUMBER_THREADS = "4“
 Spécifier le système de fichier
 IMAGE_FSTYPES = "ext2 tar"
L'ENVIRONNEMENT DE DÉVELOPPEMENT
« SPÉCIFIER LE NOMBRE DE PROCESSUS À UTILISER »
 Crée un environnement de configuration des scripts
 export PATH=$HOME/openembedded/bitbake/bin:$PATH
 export BBPATH=$HOME/oe/build:$HOME/openembedded
 Configuration de fichier système de Ubuntu
 echo 0 > /proc/sys/vm/mmap_min_addr
L'ENVIRONNEMENT DE DÉVELOPPEMENT
« INSTALLATION DE L'ENVIRONNEMENT DE DÉVELOPPEMENT »
ÉTAPES DE CONFIGURATION
BITBAKE
On a téléchargé bitbake et après on a décompresser le fichier, et ça nous donne les
fichiers suivants :
ÉTAPES DE CONFIGURATION
« SPÉCIFIER LE NOMBRE DE PROCESSUS À UTILISER »
 Il nous est aussi possible d’ajouter un package à une image.
 Imaginons que nous souhaitions que l’éditeur ‘nano’ soit intégré à notre image OPIE.
 Nous ajoutons simplement ce package au fichier à la variable INSTALL_PACKAGES du
fichier
/stuff/org.openembedded.dev/packages/meta/opie-image.bb
ÉTAPES DE CONFIGURATION
« AJOUTER UN PACKAGE À UNE IMAGE »
Puisque nous venons de modifier le fichier meta-bzImage.bb
il nous faut donc purger le package pour permettre sa reconstruction.
 bitbake -c clean meta-bzImage bitbake bzImage-fr-image
Il est possible de construire un patch
 diff -aburN org.openembedded.oz354x.orig/ org.openembedded.oz354x_fr >
org.openemb
ÉTAPES DE CONFIGURATION
« RECONSTRUCTION DE L’IMAGE BZIMAGE »
ÉMULATION AVEC QEMU
Qemu émule diverses architectures dont une qui nous intéresse,
Il nous est donc possible d’émuler notre image
Pour pouvoir réaliser cela plusieurs prérequis sont nécessaires.
ÉMULATION AVEC QEMU
« L’INSTALLATION DE QEMU »
Qemu émule diverses architectures dont une qui nous intéresse,
Il nous est donc possible d’émuler notre image
Pour pouvoir réaliser cela plusieurs prérequis sont nécessaires.
ÉMULATION AVEC QEMU
« OPENEMBEDDED & QEMU »
Au passage il faut noter que nous utiliserons l’émulateur qemu-system-arm fourni pas
le package qemu- native:
« qemu-system-arm -kernel zImage-2.6.17-qemuarm-20061008161924.bin -append "root=/de »
ÉMULATION AVEC QEMU
« OPENEMBEDDED & QEMU »
Des patchs sont ajouter pour
la prise en compte de l’écran
tactile:
ÉMULATION AVEC QEMU
« OPENEMBEDDED & QEMU »
ÉMULATION AVEC QEMU
« OPENEMBEDDED & QEMU »
Durant la réalisation de ce projet on a pu acquérir une petite expérience dans le
domaine 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, et comment
l’installer avec openembedded.
CONCLUSION

Contenu connexe

Tendances

Chapter 9: SCSI Drives and File Systems
Chapter 9: SCSI Drives and File SystemsChapter 9: SCSI Drives and File Systems
Chapter 9: SCSI Drives and File Systemsaskme
 
Basis Linux (aan de hand van LPIC-1)
Basis Linux (aan de hand van LPIC-1)Basis Linux (aan de hand van LPIC-1)
Basis Linux (aan de hand van LPIC-1)Peter Martin
 
Calculatrice scientifique en JAVA(AWT)
Calculatrice scientifique en JAVA(AWT)Calculatrice scientifique en JAVA(AWT)
Calculatrice scientifique en JAVA(AWT)MOHAMMED MOURADI
 
Cisco et-le-simulateur-packet-tracer
Cisco et-le-simulateur-packet-tracerCisco et-le-simulateur-packet-tracer
Cisco et-le-simulateur-packet-tracerMed Ali Bhs
 
Les structures en c++ (1)
Les structures en c++ (1)Les structures en c++ (1)
Les structures en c++ (1)Wael Ismail
 
Protocole RIP1, RIP2, RIPng
Protocole RIP1, RIP2, RIPngProtocole RIP1, RIP2, RIPng
Protocole RIP1, RIP2, RIPngMax Benana
 
Openwrt wireless
Openwrt wirelessOpenwrt wireless
Openwrt wireless晓东 杜
 
Tipos de sistemas operativos
Tipos de sistemas operativosTipos de sistemas operativos
Tipos de sistemas operativosJosé Padrón
 
Yocto Project introduction
Yocto Project introductionYocto Project introduction
Yocto Project introductionYi-Hsiu Hsu
 
Atelier Reseaux informatiques
Atelier Reseaux informatiquesAtelier Reseaux informatiques
Atelier Reseaux informatiquesfulgence
 
ACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introduction
ACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introductionACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introduction
ACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introductionProject ACRN
 
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchJagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchlinuxlab_conf
 
Devoxx France 2023 - Les nouveautés de Java 19 et 20
Devoxx France 2023 - Les nouveautés de Java 19 et 20Devoxx France 2023 - Les nouveautés de Java 19 et 20
Devoxx France 2023 - Les nouveautés de Java 19 et 20Jean-Michel Doudoux
 
12.9.2 Lab - Configure IPv6 Addresses on Network Devices - ILM.docx
12.9.2 Lab - Configure IPv6 Addresses on Network Devices - ILM.docx12.9.2 Lab - Configure IPv6 Addresses on Network Devices - ILM.docx
12.9.2 Lab - Configure IPv6 Addresses on Network Devices - ILM.docxfernando241073
 
Como instalar el windows server paso a paso
Como instalar el windows server paso a pasoComo instalar el windows server paso a paso
Como instalar el windows server paso a pasomartin lopez vidal
 
PfSense VLAN sobre una sola interfaz de red.
PfSense VLAN sobre una sola interfaz de red.PfSense VLAN sobre una sola interfaz de red.
PfSense VLAN sobre una sola interfaz de red.gabo_rojo
 
Expose de sur le systeme d'exploitation linux
Expose de sur le systeme d'exploitation linuxExpose de sur le systeme d'exploitation linux
Expose de sur le systeme d'exploitation linuxStephen Salama
 
What CloudStackers Need To Know About LINSTOR/DRBD
What CloudStackers Need To Know About LINSTOR/DRBDWhat CloudStackers Need To Know About LINSTOR/DRBD
What CloudStackers Need To Know About LINSTOR/DRBDShapeBlue
 

Tendances (20)

Chapter 9: SCSI Drives and File Systems
Chapter 9: SCSI Drives and File SystemsChapter 9: SCSI Drives and File Systems
Chapter 9: SCSI Drives and File Systems
 
Basis Linux (aan de hand van LPIC-1)
Basis Linux (aan de hand van LPIC-1)Basis Linux (aan de hand van LPIC-1)
Basis Linux (aan de hand van LPIC-1)
 
Calculatrice scientifique en JAVA(AWT)
Calculatrice scientifique en JAVA(AWT)Calculatrice scientifique en JAVA(AWT)
Calculatrice scientifique en JAVA(AWT)
 
Cisco et-le-simulateur-packet-tracer
Cisco et-le-simulateur-packet-tracerCisco et-le-simulateur-packet-tracer
Cisco et-le-simulateur-packet-tracer
 
Les structures en c++ (1)
Les structures en c++ (1)Les structures en c++ (1)
Les structures en c++ (1)
 
Protocole RIP1, RIP2, RIPng
Protocole RIP1, RIP2, RIPngProtocole RIP1, RIP2, RIPng
Protocole RIP1, RIP2, RIPng
 
Openwrt wireless
Openwrt wirelessOpenwrt wireless
Openwrt wireless
 
Tipos de sistemas operativos
Tipos de sistemas operativosTipos de sistemas operativos
Tipos de sistemas operativos
 
Yocto Project introduction
Yocto Project introductionYocto Project introduction
Yocto Project introduction
 
Atelier Reseaux informatiques
Atelier Reseaux informatiquesAtelier Reseaux informatiques
Atelier Reseaux informatiques
 
ACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introduction
ACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introductionACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introduction
ACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introduction
 
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchJagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratch
 
Devoxx France 2023 - Les nouveautés de Java 19 et 20
Devoxx France 2023 - Les nouveautés de Java 19 et 20Devoxx France 2023 - Les nouveautés de Java 19 et 20
Devoxx France 2023 - Les nouveautés de Java 19 et 20
 
Introducao ao linux
Introducao ao linuxIntroducao ao linux
Introducao ao linux
 
12.9.2 Lab - Configure IPv6 Addresses on Network Devices - ILM.docx
12.9.2 Lab - Configure IPv6 Addresses on Network Devices - ILM.docx12.9.2 Lab - Configure IPv6 Addresses on Network Devices - ILM.docx
12.9.2 Lab - Configure IPv6 Addresses on Network Devices - ILM.docx
 
presentación Mac os
presentación Mac os presentación Mac os
presentación Mac os
 
Como instalar el windows server paso a paso
Como instalar el windows server paso a pasoComo instalar el windows server paso a paso
Como instalar el windows server paso a paso
 
PfSense VLAN sobre una sola interfaz de red.
PfSense VLAN sobre una sola interfaz de red.PfSense VLAN sobre una sola interfaz de red.
PfSense VLAN sobre una sola interfaz de red.
 
Expose de sur le systeme d'exploitation linux
Expose de sur le systeme d'exploitation linuxExpose de sur le systeme d'exploitation linux
Expose de sur le systeme d'exploitation linux
 
What CloudStackers Need To Know About LINSTOR/DRBD
What CloudStackers Need To Know About LINSTOR/DRBDWhat CloudStackers Need To Know About LINSTOR/DRBD
What CloudStackers Need To Know About LINSTOR/DRBD
 

Similaire à Exposé open embedded

Rapport openembedded
Rapport openembeddedRapport openembedded
Rapport openembeddedAyoub Rouzi
 
Rapport systéme embarqué busybox
Rapport systéme embarqué busyboxRapport systéme embarqué busybox
Rapport systéme embarqué busyboxAyoub Rouzi
 
Rapport d'installation de Linux Engine X MariaDB PHP5
Rapport d'installation de Linux Engine X MariaDB PHP5Rapport d'installation de Linux Engine X MariaDB PHP5
Rapport d'installation de Linux Engine X MariaDB PHP5Mame Cheikh Ibra Niang
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Jérôme Petazzoni
 
Maintenance du système Linux
Maintenance du système LinuxMaintenance du système Linux
Maintenance du système LinuxEL AMRI El Hassan
 
Distro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbeddedDistro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbeddedAnne Nicolas
 
Mysql Apche PHP sous linux
Mysql Apche PHP sous linuxMysql Apche PHP sous linux
Mysql Apche PHP sous linuxKhalid ALLILI
 
NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro...
NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro...NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro...
NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro...jihbed
 
Atelier Symfony2- Introduction
Atelier Symfony2- IntroductionAtelier Symfony2- Introduction
Atelier Symfony2- IntroductionMarwa OUNALLI
 
Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012Jean-Marc Fontaine
 
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 AdministrationAlphorm
 
05 - creation-playbook-ansible-stack-lamp.pdf
05 - creation-playbook-ansible-stack-lamp.pdf05 - creation-playbook-ansible-stack-lamp.pdf
05 - creation-playbook-ansible-stack-lamp.pdfbibouechristian
 
05 - creation-playbook-ansible-stack-lamp.pdf
05 - creation-playbook-ansible-stack-lamp.pdf05 - creation-playbook-ansible-stack-lamp.pdf
05 - creation-playbook-ansible-stack-lamp.pdfbibouechristian
 
Gestion des dépendances dans un projet PHP - RMLL 2012
Gestion des dépendances dans un projet PHP - RMLL 2012Gestion des dépendances dans un projet PHP - RMLL 2012
Gestion des dépendances dans un projet PHP - RMLL 2012Jean-Marc Fontaine
 
Installation et configuration d'openbravo
Installation et configuration d'openbravoInstallation et configuration d'openbravo
Installation et configuration d'openbravoSoumia Brabije
 

Similaire à Exposé open embedded (20)

Rapport openembedded
Rapport openembeddedRapport openembedded
Rapport openembedded
 
Rapport systéme embarqué busybox
Rapport systéme embarqué busyboxRapport systéme embarqué busybox
Rapport systéme embarqué busybox
 
Rapport d'installation de Linux Engine X MariaDB PHP5
Rapport d'installation de Linux Engine X MariaDB PHP5Rapport d'installation de Linux Engine X MariaDB PHP5
Rapport d'installation de Linux Engine X MariaDB PHP5
 
Noyau
NoyauNoyau
Noyau
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)
 
Yocto oe
Yocto oeYocto oe
Yocto oe
 
Maintenance du système Linux
Maintenance du système LinuxMaintenance du système Linux
Maintenance du système Linux
 
Distro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbeddedDistro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbedded
 
Mysql Apche PHP sous linux
Mysql Apche PHP sous linuxMysql Apche PHP sous linux
Mysql Apche PHP sous linux
 
Présentation1
Présentation1Présentation1
Présentation1
 
NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro...
NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro...NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro...
NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro...
 
Atelier Symfony2- Introduction
Atelier Symfony2- IntroductionAtelier Symfony2- Introduction
Atelier Symfony2- Introduction
 
Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012
 
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
 
05 - creation-playbook-ansible-stack-lamp.pdf
05 - creation-playbook-ansible-stack-lamp.pdf05 - creation-playbook-ansible-stack-lamp.pdf
05 - creation-playbook-ansible-stack-lamp.pdf
 
05 - creation-playbook-ansible-stack-lamp.pdf
05 - creation-playbook-ansible-stack-lamp.pdf05 - creation-playbook-ansible-stack-lamp.pdf
05 - creation-playbook-ansible-stack-lamp.pdf
 
Gestion des dépendances dans un projet PHP - RMLL 2012
Gestion des dépendances dans un projet PHP - RMLL 2012Gestion des dépendances dans un projet PHP - RMLL 2012
Gestion des dépendances dans un projet PHP - RMLL 2012
 
Snort implementation
Snort implementationSnort implementation
Snort implementation
 
Débuter avec mdt
Débuter avec mdtDébuter avec mdt
Débuter avec mdt
 
Installation et configuration d'openbravo
Installation et configuration d'openbravoInstallation et configuration d'openbravo
Installation et configuration d'openbravo
 

Plus de Ayoub Rouzi

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...Ayoub Rouzi
 
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...Ayoub Rouzi
 
Reseaux mobiles: Rapport Projet : « Lien radio »
Reseaux mobiles: Rapport Projet : « Lien radio »Reseaux mobiles: Rapport Projet : « Lien radio »
Reseaux mobiles: Rapport Projet : « Lien radio »Ayoub Rouzi
 
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...Ayoub Rouzi
 
Application Android: Projet assurance
Application Android: Projet assuranceApplication Android: Projet assurance
Application Android: Projet assuranceAyoub Rouzi
 
Rapport DVWA: File Upload
Rapport DVWA: File UploadRapport DVWA: File Upload
Rapport DVWA: File UploadAyoub Rouzi
 
Rapport DVWA: CSRF
Rapport DVWA: CSRFRapport DVWA: CSRF
Rapport DVWA: CSRFAyoub Rouzi
 
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 Ayoub Rouzi
 
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.0Ayoub Rouzi
 
WannaCry / Wannacrypt Ransomware
WannaCry / Wannacrypt RansomwareWannaCry / Wannacrypt Ransomware
WannaCry / Wannacrypt RansomwareAyoub Rouzi
 
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 IPAyoub Rouzi
 
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)Ayoub Rouzi
 
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...Ayoub Rouzi
 
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)Ayoub Rouzi
 
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 ?Ayoub Rouzi
 
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 SimpleAyoub Rouzi
 
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’ARDUINOAyoub Rouzi
 
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 & installationAyoub Rouzi
 

Plus de 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
 
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
 

Exposé open embedded

  • 1. Réalisé Par: *AYOUB ROUZI *ABDELHAKIM SALAMA *FADILI MUSTAFA *ELMALKAOUI YASSINE Encadré Par: Mr.Abdelhakim Anouar MINIMISER LE SYSTÈME D'EXPLOITATION EN UTILISANT OPENEMBEDDED
  • 2.  Introduction  OpenEmbedded en quelques mots  Historique et rappels  OpenEmbedded  OpenEmbedded en détail  Cas d’utilisation  OpenEmbedded Meta data  Bitbake  OpenEmbedded en pratique  Comment tester ?  Conclusion PLAN:
  • 3.  OpenEmbedded est un Framework de compilation de composants logiciels libres destines a être déployés sur des systèmes embarques  production d’un simple binaire jusqu’à une distribution complété  support de nombreuses architectures et configurations flexible  autosuffisant et déterministe OPENEMBEDDED EN QUELQUES MOTS
  • 5.  Les briques logiciels de base pour construire un système Linux glibc: GNU C library. gcc: GNU C compiler. binutils: outils manipulant les fichiers objet et binaire Ces éléments constituent une toolchain, avec laquelle peut ensuite être compile tout autre composant (make, le kernel, X, KDE, ...) HISTORIQUE ET RAPPELS
  • 6.  Une toolchain permet de compiler sur une machine hôte (’build’, ’native’) d’architecture A du code exécutable sur une machine cible (’Target’) d’architecture B.  si A == B: on parle de toolchain et de compilation  si A != B: on parle de cross-toolchain et de cross-compilation HISTORIQUE ET RAPPELS
  • 7.  Pour compiler du code pour une machine cible, il y a plusieurs possibilités  récupérer une standalone/prebuilt toochain/SDK s’exécutant sur la machine cible. Rarement viable par manque de mémoire et puissance de la machine embarquée  compiler une toochain/SDK exécutable sur la machine cible  récupérer une cross-toochain s’exécutant sur une machine hôte générant du code spécifique a la machine cible (ex: ARM)  compiler une cross-toolchain HISTORIQUE ET RAPPELS « COMPILATION POUR L’EMBARQUE»
  • 9.  Les systèmes de build existants ne gèrent pas les dépendances ou montrent vite leurs limites d’utilisation grande échelle par:  manque de flexibilité  lourdeur de maintenance (ex: des makefiles)  OpenEmbedded a ete crée en 2003 par Chris Larson:  pour fédérer les efforts de développement des différentes distro embarquées qui sont/étaient trop souvent spécifiques à une seule architecture cible.  pour fournir un systéme de build flexible et puissant, utilisant une syntaxe et sémantique plus adaptée que des makefiles OPENEMBEDDED « POURQUOI AVOIR CRÉER OPENEMBEDDED ?»
  • 10.  compilation de binaires/paquets/distributions complètes exnihilo (from scratch)  possibilité d’utiliser une toolchain préexistante  génération d’une même distribution déployable sur différente architecture cible  plusieurs milliers de paquets disponibles: vim, python, qt4, etc.  plusieurs images disponibles: console(2Mo), gpe-image, etc.  customisation: toolchain (glibc/uClibc/eglibc), scripts d’init,découpage des paquets.  kernel très récents supportes (2.6.24)syntaxe simple et puissante des .bb  pleins d’autres encore ...  parce que c’est fun de créer sa propre mini distribution OPENEMBEDDED « LES ATOUTS D’OPENEMBEDDED»
  • 11.  Des laboratoires de recherches  Des sociétés spécialisées dans l’électronique embarque  Des sociétés de de télécom (t´téléphonie mobile / PDA)  Des projets libres de distributions Linux embarquée (ex: nslu2,OpenMoko) OPENEMBEDDED « QUI UTILISE OPENEMBEDDED ?»
  • 13. Techniquement, le projet OpenEmbedded se compose de bitbake: la commande utilisée pour construire d’un simple paquet jusqu’à une distribution complète avec OpenEmbedded les metadata d’OpenEmbedded: l’ensemble des fichiers que bitbake exploite pour pouvoir faire cela OPENEMBEDDED EN DÉTAIL « OPENEMBEDDED = BITBAKE + METADATA»
  • 14. Le dépôt des Meta data contient l’ensemble des données nécessaires et suffisantes pour (cross)-compiler des composants logiciels open sources  On distingue trois principaux types de Meta data  recipe (*.bb): caractérise un composant logiciel (executable, bibliothéques, kernel.)  class (*.bbclass): contient des taches communes aux recipes,  conf (*.conf): fichier de configuration, OPENEMBEDDED EN DÉTAIL « OPENEMBEDDED METADATA REPOSITORY»
  • 15.  Un recipe contient l’ensemble des données permettant de compiler  un composant depuis son code source.  description et licence  liens vers les sources et patchs `a appliquer  dépendances (build dépendances, runtime dépendances)  options de configuration  customisation du découpage et contenu des paquets générées (-dev, -doc, etc.) OPENEMBEDDED EN DÉTAIL « OPENEMBEDDED METADATA: RECIPE (*.BB) »
  • 16.  Les fichiers de configuration  local.conf: contient votre conf personnelle de build (TARGET ARCH, DISTRO, ...)  machine configurations: common architectures, routers, PDA,GSM phones, ...  distribution policies: packaging, naming, preferred version ofsoftware, OPENEMBEDDED EN DÉTAIL « OPENEMBEDDED METADATA: CONF (*.CONF) »
  • 17.  un exécuteur de taches et un gestionnaire de metadata  un peu le ’make’ d’OpenEmbedded  inspire de Portage, le gestionnaire de paquet de la distribution Gentoo  écrit en python OPENEMBEDDED EN DÉTAIL « BITBAKE »
  • 18.  Gérer la cross-compilation  Gérer les dépendances inter-paquets  build time on target architectures  build time on native architectures  Runtime  Linux distribution agnostic  Architecture agnostic  Gérer les metadata conditionnellement (target, OS, distro,machine)  Multiple target operating system (Linux, BSDs, etc.) OPENEMBEDDED EN DÉTAIL « BUTS DE BITBAKE »
  • 20.  Pour faire c’est premiers pas avec OpenEmbedded et bitbake: http://www.openembedded.org/wiki/GettingStarted Un seul fichier à configurer: /build/conf/local.conf OPENEMBEDDED EN PRATIQUE « OPENEMBEDDED CONFIGURATION »
  • 21. OPENEMBEDDED EN PRATIQUE « UTILISATION DE BITBAKE » Les paquets et images résultantes sont dans tmp/deploy/
  • 23.  Une personnalisation simple mkdir -p /stuff/build/conf /stuff/tools/ cd /stuff/tools svn co svn://svn.berlios.de/bitbake/branches/bitbake -1.4 bitbake cd bitbake ./setup.py build  Pour plus d’informations sur bitbake : cd /stuff/tools/bitbake/doc/manual && make  pour add bitbake a linux PATH : export PATH=$HOME/oe/bitbake/bin:$PATH L'ENVIRONNEMENT DE DÉVELOPPEMENT « INSTALLATION DE L'ENVIRONNEMENT DE DÉVELOPPEMENT »
  • 24.  aptget install wget curl L'ENVIRONNEMENT DE DÉVELOPPEMENT « INSTALLATION DES OUTILLES POUR LE CODE »
  • 25. L'ENVIRONNEMENT DE DÉVELOPPEMENT « INSTALLATION DE COMPILATEUR POUR PYTHON »  aptget install python-psycop2
  • 26.  Dans cet exemple nous utiliserons la branche (git.openembedded.org/openembedded) L'ENVIRONNEMENT DE DÉVELOPPEMENT « INSTALLATION D'OPENEMBEDDED »
  • 27. mtn –db=OE.mtn pull monotone.openembedded.org org.openembedded.stable L'ENVIRONNEMENT DE DÉVELOPPEMENT « MISE À JOUR DE LA BASE OPENOMBEDDED »
  • 28. BBFILES = "${HOME}/openombedde/recipes/bb/bb_1.2.bb" Choisir une machine depuis : org.openembedded.stable/conf/machine/ L'ENVIRONNEMENT DE DÉVELOPPEMENT « MODIFIER LE FICHIER BUILD/CONF/LOCAL.CONF »
  • 30.  PARALLEL_MAKE = "j 4"  BB_NUMBER_THREADS = "4“  Spécifier le système de fichier  IMAGE_FSTYPES = "ext2 tar" L'ENVIRONNEMENT DE DÉVELOPPEMENT « SPÉCIFIER LE NOMBRE DE PROCESSUS À UTILISER »
  • 31.  Crée un environnement de configuration des scripts  export PATH=$HOME/openembedded/bitbake/bin:$PATH  export BBPATH=$HOME/oe/build:$HOME/openembedded  Configuration de fichier système de Ubuntu  echo 0 > /proc/sys/vm/mmap_min_addr L'ENVIRONNEMENT DE DÉVELOPPEMENT « INSTALLATION DE L'ENVIRONNEMENT DE DÉVELOPPEMENT »
  • 33. On a téléchargé bitbake et après on a décompresser le fichier, et ça nous donne les fichiers suivants : ÉTAPES DE CONFIGURATION « SPÉCIFIER LE NOMBRE DE PROCESSUS À UTILISER »
  • 34.  Il nous est aussi possible d’ajouter un package à une image.  Imaginons que nous souhaitions que l’éditeur ‘nano’ soit intégré à notre image OPIE.  Nous ajoutons simplement ce package au fichier à la variable INSTALL_PACKAGES du fichier /stuff/org.openembedded.dev/packages/meta/opie-image.bb ÉTAPES DE CONFIGURATION « AJOUTER UN PACKAGE À UNE IMAGE »
  • 35. Puisque nous venons de modifier le fichier meta-bzImage.bb il nous faut donc purger le package pour permettre sa reconstruction.  bitbake -c clean meta-bzImage bitbake bzImage-fr-image Il est possible de construire un patch  diff -aburN org.openembedded.oz354x.orig/ org.openembedded.oz354x_fr > org.openemb ÉTAPES DE CONFIGURATION « RECONSTRUCTION DE L’IMAGE BZIMAGE »
  • 37. Qemu émule diverses architectures dont une qui nous intéresse, Il nous est donc possible d’émuler notre image Pour pouvoir réaliser cela plusieurs prérequis sont nécessaires. ÉMULATION AVEC QEMU « L’INSTALLATION DE QEMU »
  • 38. Qemu émule diverses architectures dont une qui nous intéresse, Il nous est donc possible d’émuler notre image Pour pouvoir réaliser cela plusieurs prérequis sont nécessaires. ÉMULATION AVEC QEMU « OPENEMBEDDED & QEMU »
  • 39. Au passage il faut noter que nous utiliserons l’émulateur qemu-system-arm fourni pas le package qemu- native: « qemu-system-arm -kernel zImage-2.6.17-qemuarm-20061008161924.bin -append "root=/de » ÉMULATION AVEC QEMU « OPENEMBEDDED & QEMU »
  • 40. Des patchs sont ajouter pour la prise en compte de l’écran tactile: ÉMULATION AVEC QEMU « OPENEMBEDDED & QEMU »
  • 41. ÉMULATION AVEC QEMU « OPENEMBEDDED & QEMU »
  • 42. Durant la réalisation de ce projet on a pu acquérir une petite expérience dans le domaine 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, et comment l’installer avec openembedded. CONCLUSION

Notes de l'éditeur

  1. HA: Commençant d’abord par la présentation et le contexte de notre mini projet dans lequel on va jeter un coup d’œil dans la partie théorique du projet. Après cela on va détailler un petit peut notre sujet : Arduino & radar de recul notamment: le cahier de charge les outils utilisés ainsi que les composantes et leurs utilisation. Ensuite on va présenter notre plaquette d’essai. Après cela on passera a la présentations du code source utilisé. Et avant de conclure on va montrer la manip / test d’utilisation du mini projet.