SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
www.cioinfoindus.fr




                                                                       C. Charreyre
                                                         christian.charreyre@cioinfoindus.fr




                                 Open Embedded
                             un framework libre pour
                             assurer la cohérence de
                                    son projet



                      OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   1
Licence
www.cioinfoindus.fr



                          Attribution-Noncommercial-Share Alike 2.0 France
                      You are free:
                             to Share - to copy, distribute, display, and perform the work


                             to Remix - to make derivative works


                      Under the following conditions:
                             Attribution. You must attribute the work in the manner specified by the author or licensor
                             (but not in any way that suggests that they endorse you or your use of the work).

                             Non commercial. You may not use this work for commercial purposes.

                             Share Alike. If you alter, transform, or build upon this work, you may distribute the
                             resulting work only under the same or similar license to this one.

                      For any reuse or distribution, you must make clear to others the license terms of this work. The
                      best way to do this is with a link to
                       http://creativecommons.org/licenses/by-nc-sa/2.0/fr/deed.en_US .

                      Any of the above conditions can be waived if you get permission from the copyright holder.

                      Nothing in this license impairs or restricts the author's moral rights.


                        OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011         2
CIO Informatique
www.cioinfoindus.fr
                                  Industrielle

                      Société d'ingénierie en informatique industrielle et
                      technique
                      Au service de nos clients depuis 1990
                      Une équipe de 15 spécialistes pour accompagner les
                      projets industriels ou militaires
                      La culture des systèmes ouverts et normalisés, l'expertise
                      de l'embarqué et du temps réel
                      Investissement sur Linux depuis 2000
                      Centre de Compétences créé fin 2001

                      Siège à St Etienne, agence à Marseille

                      Membre de Libertis, association de SSLL en région PACA


                                                               http://www.libertis.org


                      OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   3
Linux sur le marché de
                             l'embarqué
www.cioinfoindus.fr

                      Linux est un acteur en croissance rapide sur le
                      marché de l'embarqué
                      Il est utilisé dans plus de 50% des nouveaux
                      design depuis 2008




                                            Which OSes have been in used in your embedded
                                                     designs during the past 2 years?

                                                                Source
                                                   Embedded Linux Market Survey 2009


                      OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   4
Linux dans l'électronique
                            grand public
www.cioinfoindus.fr


                      De nombreux appareils basés sur Linux :




                      OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   5
Évolutions de Linux
www.cioinfoindus.fr
                                embarqué
                      Il y a quelques années, Linux = moteur
                      d'applications enfouies :
                             Besoin d'un kernel
                             Besoin glibc
                             Utilisation de busybox
                             Application embarquée home made sur ces bases
                             Peu de soucis de cohérence ou de complexité

                      Besoins actuels : applications embarquées
                      riches :
                             Moins de limitations de mémoire vive ou de masse
                             IHM riches : tactile, vidéo, image, culture « IPhone »
                             Nécessité d'assembler de manière cohérente de
                             multiples briques logicielles de base

                      OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   6
Travailler avec Linux
www.cioinfoindus.fr

                      Un monde fragmenté aux multiples sources
                             Bootloaders (UBoot, RedBoot, LILO, Grub, ...)
                             Kernel (kernel.org, fournisseur hardware, ...)
                             Librairies de base (glibc ou alternatives réduites)
                             Bases applicatives (busybox, kits embarqués libres
                             ou propriétaires, ....)
                             IHM (Qt, MicroWindows/NanoX, ...)
                             Multimédia (Mplayer, Gstreamer, Xine, ....)
                             Extensions temps réel (RTAI, Xenomai, …)

                      Qu'il faut assembler en un paquet cohérent :
                      votre application




                      OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   7
Travailler avec Linux
www.cioinfoindus.fr

                      Faire attention au respect de licences multiples
                      (GPL, LGPL, BSD, etc...)
                             Les connaitre et les respecter
                             Adapter ce que l'on utilise à sa stratégie de
                             publications de codes source
                      Pour des applications riches, des Software Development
                      Kits structurés sont conseillés :
                             Buildroot
                             Scratchbox
                             Open Embedded ....




                      OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   8
Pourquoi
www.cioinfoindus.fr
                               OpenEmbedded ?

                      Pour éviter cela




                      OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   9
Pourquoi
www.cioinfoindus.fr
                               OpenEmbedded ?
                      Pour gérer cela




                      OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   10
Pourquoi
www.cioinfoindus.fr
                               OpenEmbedded ?

                      Dépendances de nautilus : 72 librairies




                      OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   11
Pourquoi
www.cioinfoindus.fr
                               OpenEmbedded ?

                      Les « sorties » de l'outil :
                             La chaîne de compilation pour la cible (générée par
                             OE)                                         
                             Le Software Development Kit qui se construit petit à
                             petit : fichiers headers et librairies partagées
                             compilées pour la cible, outils natifs nécessaires à la
                             compilation                                     
                             Des paquets logiciels binaires au format debian + un
                             gestionnaire de paquets sur la cible (cohérences,
                             dépendances)                                
                             Une image finale prête à déployer (archive tgz, ubi,
                             etc...)                                     
                             Une classification des logiciels par type de licence
                                                                            


                      OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   12
Les bénéfices
www.cioinfoindus.fr
                               d'OpenEmbedded
                      Gestion intégrée des versions et de leurs
                      dépendances
                      Grande richesse logicielle :                                                        
                             Firefox, Evolution
                             Gimp
                             Gnome, XFCE, OpenBox
                             VLC, Gstreamer, Totem
                             Samba, Apache .....

                      Prise en compte de la cross compilation et des
                      architectures non Intel (patches, configurations
                      spécifiques)
                      Prise en compte de l'internationalisation

                      OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   13
Les bénéfices d'Open
www.cioinfoindus.fr
                              Embedded

                      Indépendance vis à vis du poste de
                      développement hôte :
                             Outils nécessaires à la compilation générés par OE
                             puis utilisés (ex: python, dmake, pkg-config …)
                             Pas d'utilisation des headers et librairies de la
                             distribution locale, même en architecture Intel

                      Reproductibilité de la génération de l'image
                      embarquée :
                             Remontée de tous les paramétrages à la génération
                             Aucune intervention manuelle lors du déploiement sur
                             la cible

                      Communauté active


                      OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   14
Comment fonctionne
www.cioinfoindus.fr
                           OpenEmbedded ?

                      Un moteur écrit en Python : bitbake
                      Un jeu de recettes pour fabriquer les paquets
                      logiciels
                      Une notion de classes pour mise en commun
                      entre recettes
                      Une notion de tâches = méta paquets
                      Des dépendances entre paquets, décrites dans
                      les recettes, ou déterminées automatiquement
                      (librairies partagées)
                      Pour chaque recette des tâches élémentaires
                      Calcul de l'arbre des dépendances pour
                      fabriquer les paquets dans le bon ordre

                      OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   15
Comment fonctionne
www.cioinfoindus.fr
                           OpenEmbedded ?

                      Une notion de distribution :
                             Définit des versions préférentielles pour les paquets
                             logiciels (cohérence de l'ensemble)
                             Définit des réglages spécifiques (fichiers de
                             configuration)

                      Prise en compte des spécificités de la
                      plateforme :
                             Au niveau kernel : architecture, bootloader, modules
                             kernel adaptés etc...                           

                             Au niveau userland : paramétrages GCC,
                             optimisations, floating point etc...                                                 




                      OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011       16
Anatomie d'une recette
www.cioinfoindus.fr


                      Une recette pour un ou plusieurs paquets
                      (fractionnement pour optimisation de l'espace)
                      Des variables d'environnement
                      Des tâches élémentaires implicites ou
                      explicites : langage shell (basique) ou Python (+
                      évolué)




                      OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   17
Anatomie d'une recette (at)
www.cioinfoindus.fr

                      DESCRIPTION = "Delayed job execution and batch processing."
                      SECTION = "base"
                      LICENSE="BSD"
                      DEPENDS = "flex-native"
                      RCONFLICTS_${PN} = "atd"
                      RREPLACES_${PN} = "atd"

                      PR = "r3"

                      SRC_URI = "${DEBIAN_MIRROR}/main/a/at/at_${PV}-11.tar.gz 
                             file://configure.patch 
                             file://nonrootinstall.patch 
                             file://use-ldflags.patch"

                      SRC_URI[md5sum] = "81dbae5162aaa8a398a81424d6631c77"
                      SRC_URI[sha256sum] =
                      "0d77c73a3c151a7da647dd924f32151e5ee4574530568fd65067882f79cd5a44"

                      inherit autotools

                      export LIBS = "-L${STAGING_LIBDIR}"

                      do_install () {
                          oe_runmake 'IROOT=${D}' install
                      }




                          OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   18
Anatomie d'une recette
www.cioinfoindus.fr
                                (cheese)
                      DESCRIPTION = "Take photos and videos with your webcam, with fun
                      graphical effects"
                      LICENSE = "GPLv2"

                      DEPENDS = "gtk+ gstreamer gst-plugins-base libcanberra udev librsvg
                      gnome-desktop eds-dbus"
                      RRECOMMENDS_${PN} = "gst-plugin-gconfelements gst-plugins-good-meta
                      gst-plugins-base-meta"

                      inherit gnome

                      SRC_URI[archive.md5sum] = "1599fded8a1797ea51fb010af4e6c45b"
                      SRC_URI[archive.sha256sum] =
                      "48f03470c6f527caa0e3b269d3afcff86ae0939a74f66ce030d4eed3bc3cbd9a"

                      FILES_${PN} += "${datadir}/dbus-1"




                          OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   19
Les principales tâches
www.cioinfoindus.fr
                           d'une recette

                      Fetch : téléchargement des sources
                      Unpack : extraction des sources
                      Patch : application de patches additionnels
                      fournis par la recette
                      Configure : configuration
                      Compile : compilation
                      Stage : installation dans le SDK
                      Install : installation dans un tampon local
                      Package : création du (des) paquet(s) binaire



                      OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   20
Anatomie d'une classe
www.cioinfoindus.fr
                                  (qt4e)
                      DEPENDS_prepend = "${@["qt4-embedded ", ""][(bb.data.getVar('PN',
                      d, 1) == 'qt4-embedded')]}"
                      inherit qmake2

                      QT_DIR_NAME = "qtopia"
                      QT_LIBINFIX = "E"
                      # override variables set by qmake-base to compile Qt/Embedded apps
                      #
                      export QMAKESPEC = "${STAGING_DATADIR}/${QT_DIR_NAME}/mkspecs/$
                      {TARGET_OS}-oe-g++"
                      export OE_QMAKE_INCDIR_QT = "${STAGING_INCDIR}/${QT_DIR_NAME}"
                      export OE_QMAKE_LIBDIR_QT = "${STAGING_LIBDIR}"
                      export OE_QMAKE_LIBS_QT = "qt"
                      export OE_QMAKE_LIBS_X11 = ""
                      export OE_QMAKE_EXTRA_MODULES = "network"
                      EXTRA_QMAKEVARS_PRE += " QT_LIBINFIX=${QT_LIBINFIX} "

                      # Qt4 uses atomic instructions not supported in thumb mode
                      ARM_INSTRUCTION_SET = "arm"




                          OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   21
Anatomie d'une tâche
www.cioinfoindus.fr
                              (task-xfce4-base)
                      DESCRIPTION = "All packages required for a base installation of
                      XFCE 4.6.*"
                      PR = "r1"

                      inherit task

                      RDEPENDS_${PN} = " 
                          xfwm4 
                          xfwm4-theme-default 
                          xfce4-session 
                          xfconf 
                          xfdesktop 
                          xfce4-panel 
                          gtk-xfce-engine 
                          xfce-utils 
                          xfce4-panel-plugin-actions 
                          xfce4-panel-plugin-clock 
                          xfce4-panel-plugin-iconbox 
                          xfce4-panel-plugin-launcher 
                          xfce4-panel-plugin-pager 
                          xfce4-panel-plugin-separator 
                          xfce4-panel-plugin-showdesktop 
                          xfce4-panel-plugin-systray 
                          xfce4-panel-plugin-tasklist 
                          xfce4-panel-plugin-windowlist 
                          xfce4-settings 
                          xfce-terminal 
                          thunar 
                      "
                          OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   22
Gestion du versionning
www.cioinfoindus.fr
                               hôte

                      2 niveaux de versionning :
                             Version du logiciel (gérée par l'équipe projet qui
                             développe ce logiciel)
                             Version de la recette OE (gérée par la communauté
                             OE)

                      Plusieurs recettes possibles pour un même
                      logiciel (différentes versions du logiciel +
                      svn/git)                                     

                      Par défaut version la + élevée retenue – peut
                      être contré par paramétrage au niveau
                      distribution
                      Une seule version de recette disponible (la
                      dernière) – les recettes OE sont gérées sous git

                      OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   23
Gestion du versionning
www.cioinfoindus.fr
                               cible

                      Gestionnaire de paquets sur la cible :
                             Installation
                             Suppression
                             Upgrade

                      Gère les dépendances à l'installation /
                      suppression
                      Gère les versions logiciel + version recette :
                             Refus des downgrade sauf forçage




                      OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   24
Bon à savoir
www.cioinfoindus.fr

                      Outil en mode console :
                             ne pas s'attendre à un IDE type Eclipse pour le
                             moment
                             Améliorations futures au travers de Yocto project ???

                      Prévoir beaucoup de disque et de temps CPU :
                             Génération de la toolchain + libc par OE (temps CPU)
                             Conservation des étapes intermédiaires – optionnel
                             mais utile – très gourmand en disque

                      Connaissance de Python : non obligatoire mais
                      un + pour comprendre / développer des recettes
                      Connaissance des standards tels que autotools,
                      pkgconfig etc... conseillée :
                             Plus du fait des logiciels gérés que de OE lui même

                      OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   25
Bon à savoir
www.cioinfoindus.fr
                      Ne pas négliger qu'il n'y a pas d'outil miracle :
                             Temps de prise en main initial
                             Courbe d'apprentissage pour passer par les stades :
                                   J'utilise
                                   Je comprends
                                   Je modifie / je crée

                      Comme parfois (souvent ???) dans le monde du
                      libre la documentation est en retrait / puissance de
                      l'outil
                      Comme toujours dans le libre on peut réinvestir en
                      formation des équipes des économies sur les coûts
                      récurrents : achats licence + maintenance
                             Investissement dans le capital humain des salariés vs achat
                             de produits

                      Se faire accompagner par un spécialiste : réduction
                      du Time To Market
                      OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   26
Quelques liens utiles
www.cioinfoindus.fr


                      Open Embedded :
                      http://www.openembedded.org/
                      Distribution Angstrom :
                      http://www.angstrom-distribution.org/
                      Distribution Poky Linux :
                      http://www.pokylinux.org/
                      Yocto project (in progress) :
                      http://yoctoproject.org/




                      OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   27
Pour aller plus loin
www.cioinfoindus.fr


                      Pour toute information complémentaire :
                             Visitez notre site Web http://www.cioinfoindus.fr
                             Contactez nous :
                                   Tél : 04 95 05 19 41
                                   Mail : mailto:christian.charreyre@cioinfoindus.fr

                      Possibilité d'envoi des slides de la présentation
                      sur demande




                      OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   28
Démonstration
www.cioinfoindus.fr


                      Démonstration de la partie hôte (SDK)
                      Gestion de paquets sur la cible




                      OpenEmbedded, un framework libre pour assurer la cohérence de son projet -   31 Mars 2011   29

Weitere ähnliche Inhalte

Was ist angesagt?

Séminaire Captronic Yocto 24 février 2015
Séminaire Captronic Yocto 24 février 2015Séminaire Captronic Yocto 24 février 2015
Séminaire Captronic Yocto 24 février 2015Christian Charreyre
 
Barre pour développeur Firefox et Eclipse
Barre pour développeur Firefox et EclipseBarre pour développeur Firefox et Eclipse
Barre pour développeur Firefox et EclipseYannick Pavard
 
Créer sa distribution Linux embarqué avec Yocto ou Angström
Créer sa distribution Linux embarqué avec Yocto ou AngströmCréer sa distribution Linux embarqué avec Yocto ou Angström
Créer sa distribution Linux embarqué avec Yocto ou AngströmChristian Charreyre
 
Concevoir un système Linux embarqué avec Yocto Project
Concevoir un système Linux embarqué avec Yocto ProjectConcevoir un système Linux embarqué avec Yocto Project
Concevoir un système Linux embarqué avec Yocto ProjectChristian Charreyre
 
Open Wide : Les outils pour le développement des systemes embarques
Open Wide : Les outils pour le développement des systemes embarquesOpen Wide : Les outils pour le développement des systemes embarques
Open Wide : Les outils pour le développement des systemes embarquesAlexandre LAHAYE
 
Distro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbeddedDistro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbeddedAnne Nicolas
 
Embarquer Linux et des systèmes libres, méthodes et apports
Embarquer Linux et des systèmes libres, méthodes et apportsEmbarquer Linux et des systèmes libres, méthodes et apports
Embarquer Linux et des systèmes libres, méthodes et apportsguest3be047
 
Open Wide : les licences libres.
Open Wide : les licences libres. Open Wide : les licences libres.
Open Wide : les licences libres. Alexandre LAHAYE
 
Logiciel Libre - Hedi Magroun - AUF - 2008
Logiciel Libre - Hedi Magroun - AUF - 2008Logiciel Libre - Hedi Magroun - AUF - 2008
Logiciel Libre - Hedi Magroun - AUF - 2008Hedi Magroun
 
Code d'Armor : Open Source, mode d'emploi
Code d'Armor : Open Source, mode d'emploiCode d'Armor : Open Source, mode d'emploi
Code d'Armor : Open Source, mode d'emploibbailleux
 
Introduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxIntroduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxBruno Cornec
 
OS mobiles alternatifs
OS mobiles alternatifsOS mobiles alternatifs
OS mobiles alternatifsLionel Duboeuf
 
Introduction à Linux et aux logiciels libres
Introduction à Linux et aux logiciels libresIntroduction à Linux et aux logiciels libres
Introduction à Linux et aux logiciels libresBruno Cornec
 
20121128 logiciels libres
20121128 logiciels libres 20121128 logiciels libres
20121128 logiciels libres Sylvain DENIS
 

Was ist angesagt? (20)

Séminaire Captronic Yocto 24 février 2015
Séminaire Captronic Yocto 24 février 2015Séminaire Captronic Yocto 24 février 2015
Séminaire Captronic Yocto 24 février 2015
 
Barre pour développeur Firefox et Eclipse
Barre pour développeur Firefox et EclipseBarre pour développeur Firefox et Eclipse
Barre pour développeur Firefox et Eclipse
 
Créer sa distribution Linux embarqué avec Yocto ou Angström
Créer sa distribution Linux embarqué avec Yocto ou AngströmCréer sa distribution Linux embarqué avec Yocto ou Angström
Créer sa distribution Linux embarqué avec Yocto ou Angström
 
Concevoir un système Linux embarqué avec Yocto Project
Concevoir un système Linux embarqué avec Yocto ProjectConcevoir un système Linux embarqué avec Yocto Project
Concevoir un système Linux embarqué avec Yocto Project
 
Licences libres et embarqué
Licences libres et embarquéLicences libres et embarqué
Licences libres et embarqué
 
Open Wide : Les outils pour le développement des systemes embarques
Open Wide : Les outils pour le développement des systemes embarquesOpen Wide : Les outils pour le développement des systemes embarques
Open Wide : Les outils pour le développement des systemes embarques
 
Meetup Systemd vs sysvinit
Meetup Systemd vs sysvinitMeetup Systemd vs sysvinit
Meetup Systemd vs sysvinit
 
Distro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbeddedDistro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbedded
 
Embarquer Linux et des systèmes libres, méthodes et apports
Embarquer Linux et des systèmes libres, méthodes et apportsEmbarquer Linux et des systèmes libres, méthodes et apports
Embarquer Linux et des systèmes libres, méthodes et apports
 
Autotools
AutotoolsAutotools
Autotools
 
Historique
HistoriqueHistorique
Historique
 
Open Wide : les licences libres.
Open Wide : les licences libres. Open Wide : les licences libres.
Open Wide : les licences libres.
 
Logiciel Libre - Hedi Magroun - AUF - 2008
Logiciel Libre - Hedi Magroun - AUF - 2008Logiciel Libre - Hedi Magroun - AUF - 2008
Logiciel Libre - Hedi Magroun - AUF - 2008
 
Code d'Armor : Open Source, mode d'emploi
Code d'Armor : Open Source, mode d'emploiCode d'Armor : Open Source, mode d'emploi
Code d'Armor : Open Source, mode d'emploi
 
Pourquoi linux
Pourquoi linuxPourquoi linux
Pourquoi linux
 
Android pour l'industrie
Android pour l'industrieAndroid pour l'industrie
Android pour l'industrie
 
Introduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxIntroduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à Linux
 
OS mobiles alternatifs
OS mobiles alternatifsOS mobiles alternatifs
OS mobiles alternatifs
 
Introduction à Linux et aux logiciels libres
Introduction à Linux et aux logiciels libresIntroduction à Linux et aux logiciels libres
Introduction à Linux et aux logiciels libres
 
20121128 logiciels libres
20121128 logiciels libres 20121128 logiciels libres
20121128 logiciels libres
 

Andere mochten auch

ERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projectsERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projectsChristian Charreyre
 
Penser sa présence mobile - Pourquoi ? Comment ?
Penser sa présence mobile - Pourquoi ? Comment ?Penser sa présence mobile - Pourquoi ? Comment ?
Penser sa présence mobile - Pourquoi ? Comment ?ButterflyEffect SAS
 
Baromètre des usages numériques professionnels - OpinionWay pour EBP Informat...
Baromètre des usages numériques professionnels - OpinionWay pour EBP Informat...Baromètre des usages numériques professionnels - OpinionWay pour EBP Informat...
Baromètre des usages numériques professionnels - OpinionWay pour EBP Informat...Digital-MIF
 
BibBase Linked Data Triplification Challenge 2010 Presentation
BibBase Linked Data Triplification Challenge 2010 PresentationBibBase Linked Data Triplification Challenge 2010 Presentation
BibBase Linked Data Triplification Challenge 2010 PresentationReynold Xin
 
ERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projectsERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projectsChristian Charreyre
 
Comment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open SourceComment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open SourceChristian Charreyre
 
Using heka
Using hekaUsing heka
Using hekaExotel
 
Python Foundation – A programmer's introduction to Python concepts & style
Python Foundation – A programmer's introduction to Python concepts & stylePython Foundation – A programmer's introduction to Python concepts & style
Python Foundation – A programmer's introduction to Python concepts & styleKevlin Henney
 
Making Steaks from Sacred Cows
Making Steaks from Sacred CowsMaking Steaks from Sacred Cows
Making Steaks from Sacred CowsKevlin Henney
 
Logiciels libres en milieu industriel
Logiciels libres en milieu industrielLogiciels libres en milieu industriel
Logiciels libres en milieu industrielChristian Charreyre
 
The Architecture of Uncertainty
The Architecture of UncertaintyThe Architecture of Uncertainty
The Architecture of UncertaintyKevlin Henney
 
#Gophercon Talk by Smita Vijayakumar - Go's Context Library
#Gophercon Talk by Smita Vijayakumar - Go's Context Library#Gophercon Talk by Smita Vijayakumar - Go's Context Library
#Gophercon Talk by Smita Vijayakumar - Go's Context LibraryExotel
 
Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015Christian Charreyre
 
Working at Exotel
Working at ExotelWorking at Exotel
Working at ExotelExotel
 
Contrat 2010-2013 Scduag
Contrat 2010-2013 ScduagContrat 2010-2013 Scduag
Contrat 2010-2013 Scduagscduag
 
Setting A Culture of Technical Excellence
Setting A Culture of Technical ExcellenceSetting A Culture of Technical Excellence
Setting A Culture of Technical ExcellenceExotel
 
Exotel For Last Mile Logistics
Exotel For Last Mile LogisticsExotel For Last Mile Logistics
Exotel For Last Mile LogisticsExotel
 
Stanford CS347 Guest Lecture: Apache Spark
Stanford CS347 Guest Lecture: Apache SparkStanford CS347 Guest Lecture: Apache Spark
Stanford CS347 Guest Lecture: Apache SparkReynold Xin
 
(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...
(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...
(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...Reynold Xin
 
Cloud Communication for E-commerce & Last Mile Logistics
Cloud Communication for E-commerce & Last Mile LogisticsCloud Communication for E-commerce & Last Mile Logistics
Cloud Communication for E-commerce & Last Mile LogisticsExotel
 

Andere mochten auch (20)

ERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projectsERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projects
 
Penser sa présence mobile - Pourquoi ? Comment ?
Penser sa présence mobile - Pourquoi ? Comment ?Penser sa présence mobile - Pourquoi ? Comment ?
Penser sa présence mobile - Pourquoi ? Comment ?
 
Baromètre des usages numériques professionnels - OpinionWay pour EBP Informat...
Baromètre des usages numériques professionnels - OpinionWay pour EBP Informat...Baromètre des usages numériques professionnels - OpinionWay pour EBP Informat...
Baromètre des usages numériques professionnels - OpinionWay pour EBP Informat...
 
BibBase Linked Data Triplification Challenge 2010 Presentation
BibBase Linked Data Triplification Challenge 2010 PresentationBibBase Linked Data Triplification Challenge 2010 Presentation
BibBase Linked Data Triplification Challenge 2010 Presentation
 
ERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projectsERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projects
 
Comment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open SourceComment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open Source
 
Using heka
Using hekaUsing heka
Using heka
 
Python Foundation – A programmer's introduction to Python concepts & style
Python Foundation – A programmer's introduction to Python concepts & stylePython Foundation – A programmer's introduction to Python concepts & style
Python Foundation – A programmer's introduction to Python concepts & style
 
Making Steaks from Sacred Cows
Making Steaks from Sacred CowsMaking Steaks from Sacred Cows
Making Steaks from Sacred Cows
 
Logiciels libres en milieu industriel
Logiciels libres en milieu industrielLogiciels libres en milieu industriel
Logiciels libres en milieu industriel
 
The Architecture of Uncertainty
The Architecture of UncertaintyThe Architecture of Uncertainty
The Architecture of Uncertainty
 
#Gophercon Talk by Smita Vijayakumar - Go's Context Library
#Gophercon Talk by Smita Vijayakumar - Go's Context Library#Gophercon Talk by Smita Vijayakumar - Go's Context Library
#Gophercon Talk by Smita Vijayakumar - Go's Context Library
 
Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015
 
Working at Exotel
Working at ExotelWorking at Exotel
Working at Exotel
 
Contrat 2010-2013 Scduag
Contrat 2010-2013 ScduagContrat 2010-2013 Scduag
Contrat 2010-2013 Scduag
 
Setting A Culture of Technical Excellence
Setting A Culture of Technical ExcellenceSetting A Culture of Technical Excellence
Setting A Culture of Technical Excellence
 
Exotel For Last Mile Logistics
Exotel For Last Mile LogisticsExotel For Last Mile Logistics
Exotel For Last Mile Logistics
 
Stanford CS347 Guest Lecture: Apache Spark
Stanford CS347 Guest Lecture: Apache SparkStanford CS347 Guest Lecture: Apache Spark
Stanford CS347 Guest Lecture: Apache Spark
 
(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...
(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...
(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...
 
Cloud Communication for E-commerce & Last Mile Logistics
Cloud Communication for E-commerce & Last Mile LogisticsCloud Communication for E-commerce & Last Mile Logistics
Cloud Communication for E-commerce & Last Mile Logistics
 

Ähnlich wie Open Embedded un framework libre pour assurer la cohérence de son projet

Cartographie des marchés Open Source belges et français
Cartographie des marchés Open Source belges et françaisCartographie des marchés Open Source belges et français
Cartographie des marchés Open Source belges et françaisRobert Viseur
 
Le logiciel libre est-il soluble dans l'économie marchande?
Le logiciel libre est-il soluble dans l'économie marchande?Le logiciel libre est-il soluble dans l'économie marchande?
Le logiciel libre est-il soluble dans l'économie marchande?Aref Jdey
 
Le logiciel libre est-il soluble dans l'économie marchande?
Le logiciel libre est-il soluble dans l'économie marchande?Le logiciel libre est-il soluble dans l'économie marchande?
Le logiciel libre est-il soluble dans l'économie marchande?Aref Jdey
 
Open the Source 2: cartographie du marché Open Source belge
Open the Source 2: cartographie du marché Open Source belgeOpen the Source 2: cartographie du marché Open Source belge
Open the Source 2: cartographie du marché Open Source belgeRobert Viseur
 
Pl news letter_nov10
Pl news letter_nov10Pl news letter_nov10
Pl news letter_nov10robertpluss
 
La valorisation des logiciels libres en entreprise
La valorisation des logiciels libres en entrepriseLa valorisation des logiciels libres en entreprise
La valorisation des logiciels libres en entrepriseRobert Viseur
 
La valorisation des logiciels libres en entreprise
La valorisation des logiciels libres en entrepriseLa valorisation des logiciels libres en entreprise
La valorisation des logiciels libres en entrepriseRobert Viseur
 
intro-linux-v4.pdf
intro-linux-v4.pdfintro-linux-v4.pdf
intro-linux-v4.pdfBruno Cornec
 
L'open hardware : l'ouverture au service de l'innovation
L'open hardware : l'ouverture au service de l'innovationL'open hardware : l'ouverture au service de l'innovation
L'open hardware : l'ouverture au service de l'innovationRobert Viseur
 
Vitrine Technologique : Assurance Support Open Source à Québec le 27 mai 2010
Vitrine Technologique : Assurance Support Open Source à Québec le 27 mai 2010Vitrine Technologique : Assurance Support Open Source à Québec le 27 mai 2010
Vitrine Technologique : Assurance Support Open Source à Québec le 27 mai 2010Savoir-faire Linux
 
Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...
Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...
Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...Smile I.T is open
 
Les Logiciels Libres et Open Sources
Les Logiciels Libres et Open SourcesLes Logiciels Libres et Open Sources
Les Logiciels Libres et Open SourcesJibril Touzi
 
Les modèles d'affaires des prestataires en logiciels libres
Les modèles d'affaires des prestataires en logiciels libresLes modèles d'affaires des prestataires en logiciels libres
Les modèles d'affaires des prestataires en logiciels libresRobert Viseur
 
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...Xavier Lacot
 
Drupal et les Systèmes de gestion de contenu
Drupal et les Systèmes de gestion de contenuDrupal et les Systèmes de gestion de contenu
Drupal et les Systèmes de gestion de contenuMario Marcello Verona
 
Ugif 09 2013 open source - session tech
Ugif 09 2013   open source - session techUgif 09 2013   open source - session tech
Ugif 09 2013 open source - session techUGIF
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la rechercheJohan Moreau
 
IBM Bluemix Paris meetup #16 20160914 - Introduction à Bluemix -v2
IBM Bluemix Paris meetup #16    20160914 - Introduction à Bluemix -v2IBM Bluemix Paris meetup #16    20160914 - Introduction à Bluemix -v2
IBM Bluemix Paris meetup #16 20160914 - Introduction à Bluemix -v2IBM France Lab
 

Ähnlich wie Open Embedded un framework libre pour assurer la cohérence de son projet (20)

Cartographie des marchés Open Source belges et français
Cartographie des marchés Open Source belges et françaisCartographie des marchés Open Source belges et français
Cartographie des marchés Open Source belges et français
 
Le logiciel libre est-il soluble dans l'économie marchande?
Le logiciel libre est-il soluble dans l'économie marchande?Le logiciel libre est-il soluble dans l'économie marchande?
Le logiciel libre est-il soluble dans l'économie marchande?
 
Le logiciel libre est-il soluble dans l'économie marchande?
Le logiciel libre est-il soluble dans l'économie marchande?Le logiciel libre est-il soluble dans l'économie marchande?
Le logiciel libre est-il soluble dans l'économie marchande?
 
Open the Source 2: cartographie du marché Open Source belge
Open the Source 2: cartographie du marché Open Source belgeOpen the Source 2: cartographie du marché Open Source belge
Open the Source 2: cartographie du marché Open Source belge
 
Pl news letter_nov10
Pl news letter_nov10Pl news letter_nov10
Pl news letter_nov10
 
La valorisation des logiciels libres en entreprise
La valorisation des logiciels libres en entrepriseLa valorisation des logiciels libres en entreprise
La valorisation des logiciels libres en entreprise
 
La valorisation des logiciels libres en entreprise
La valorisation des logiciels libres en entrepriseLa valorisation des logiciels libres en entreprise
La valorisation des logiciels libres en entreprise
 
intro-linux-v4.pdf
intro-linux-v4.pdfintro-linux-v4.pdf
intro-linux-v4.pdf
 
L'open hardware : l'ouverture au service de l'innovation
L'open hardware : l'ouverture au service de l'innovationL'open hardware : l'ouverture au service de l'innovation
L'open hardware : l'ouverture au service de l'innovation
 
Vitrine Technologique : Assurance Support Open Source à Québec le 27 mai 2010
Vitrine Technologique : Assurance Support Open Source à Québec le 27 mai 2010Vitrine Technologique : Assurance Support Open Source à Québec le 27 mai 2010
Vitrine Technologique : Assurance Support Open Source à Québec le 27 mai 2010
 
Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...
Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...
Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...
 
Les Logiciels Libres et Open Sources
Les Logiciels Libres et Open SourcesLes Logiciels Libres et Open Sources
Les Logiciels Libres et Open Sources
 
Les modèles d'affaires des prestataires en logiciels libres
Les modèles d'affaires des prestataires en logiciels libresLes modèles d'affaires des prestataires en logiciels libres
Les modèles d'affaires des prestataires en logiciels libres
 
Licences libres
Licences libresLicences libres
Licences libres
 
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...
 
Drupal et les Systèmes de gestion de contenu
Drupal et les Systèmes de gestion de contenuDrupal et les Systèmes de gestion de contenu
Drupal et les Systèmes de gestion de contenu
 
Ugif 09 2013 open source - session tech
Ugif 09 2013   open source - session techUgif 09 2013   open source - session tech
Ugif 09 2013 open source - session tech
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la recherche
 
IBM Bluemix Paris meetup #16 20160914 - Introduction à Bluemix -v2
IBM Bluemix Paris meetup #16    20160914 - Introduction à Bluemix -v2IBM Bluemix Paris meetup #16    20160914 - Introduction à Bluemix -v2
IBM Bluemix Paris meetup #16 20160914 - Introduction à Bluemix -v2
 
Mag Jll2009
Mag Jll2009Mag Jll2009
Mag Jll2009
 

Open Embedded un framework libre pour assurer la cohérence de son projet

  • 1. www.cioinfoindus.fr C. Charreyre christian.charreyre@cioinfoindus.fr Open Embedded un framework libre pour assurer la cohérence de son projet OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 1
  • 2. Licence www.cioinfoindus.fr Attribution-Noncommercial-Share Alike 2.0 France You are free: to Share - to copy, distribute, display, and perform the work to Remix - to make derivative works Under the following conditions: Attribution. You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). Non commercial. You may not use this work for commercial purposes. Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one. For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to http://creativecommons.org/licenses/by-nc-sa/2.0/fr/deed.en_US . Any of the above conditions can be waived if you get permission from the copyright holder. Nothing in this license impairs or restricts the author's moral rights. OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 2
  • 3. CIO Informatique www.cioinfoindus.fr Industrielle Société d'ingénierie en informatique industrielle et technique Au service de nos clients depuis 1990 Une équipe de 15 spécialistes pour accompagner les projets industriels ou militaires La culture des systèmes ouverts et normalisés, l'expertise de l'embarqué et du temps réel Investissement sur Linux depuis 2000 Centre de Compétences créé fin 2001 Siège à St Etienne, agence à Marseille Membre de Libertis, association de SSLL en région PACA http://www.libertis.org OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 3
  • 4. Linux sur le marché de l'embarqué www.cioinfoindus.fr Linux est un acteur en croissance rapide sur le marché de l'embarqué Il est utilisé dans plus de 50% des nouveaux design depuis 2008 Which OSes have been in used in your embedded designs during the past 2 years? Source Embedded Linux Market Survey 2009 OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 4
  • 5. Linux dans l'électronique grand public www.cioinfoindus.fr De nombreux appareils basés sur Linux : OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 5
  • 6. Évolutions de Linux www.cioinfoindus.fr embarqué Il y a quelques années, Linux = moteur d'applications enfouies : Besoin d'un kernel Besoin glibc Utilisation de busybox Application embarquée home made sur ces bases Peu de soucis de cohérence ou de complexité Besoins actuels : applications embarquées riches : Moins de limitations de mémoire vive ou de masse IHM riches : tactile, vidéo, image, culture « IPhone » Nécessité d'assembler de manière cohérente de multiples briques logicielles de base OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 6
  • 7. Travailler avec Linux www.cioinfoindus.fr Un monde fragmenté aux multiples sources Bootloaders (UBoot, RedBoot, LILO, Grub, ...) Kernel (kernel.org, fournisseur hardware, ...) Librairies de base (glibc ou alternatives réduites) Bases applicatives (busybox, kits embarqués libres ou propriétaires, ....) IHM (Qt, MicroWindows/NanoX, ...) Multimédia (Mplayer, Gstreamer, Xine, ....) Extensions temps réel (RTAI, Xenomai, …) Qu'il faut assembler en un paquet cohérent : votre application OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 7
  • 8. Travailler avec Linux www.cioinfoindus.fr Faire attention au respect de licences multiples (GPL, LGPL, BSD, etc...) Les connaitre et les respecter Adapter ce que l'on utilise à sa stratégie de publications de codes source Pour des applications riches, des Software Development Kits structurés sont conseillés : Buildroot Scratchbox Open Embedded .... OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 8
  • 9. Pourquoi www.cioinfoindus.fr OpenEmbedded ? Pour éviter cela OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 9
  • 10. Pourquoi www.cioinfoindus.fr OpenEmbedded ? Pour gérer cela OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 10
  • 11. Pourquoi www.cioinfoindus.fr OpenEmbedded ? Dépendances de nautilus : 72 librairies OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 11
  • 12. Pourquoi www.cioinfoindus.fr OpenEmbedded ? Les « sorties » de l'outil : La chaîne de compilation pour la cible (générée par OE)  Le Software Development Kit qui se construit petit à petit : fichiers headers et librairies partagées compilées pour la cible, outils natifs nécessaires à la compilation  Des paquets logiciels binaires au format debian + un gestionnaire de paquets sur la cible (cohérences, dépendances)  Une image finale prête à déployer (archive tgz, ubi, etc...)  Une classification des logiciels par type de licence  OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 12
  • 13. Les bénéfices www.cioinfoindus.fr d'OpenEmbedded Gestion intégrée des versions et de leurs dépendances Grande richesse logicielle :  Firefox, Evolution Gimp Gnome, XFCE, OpenBox VLC, Gstreamer, Totem Samba, Apache ..... Prise en compte de la cross compilation et des architectures non Intel (patches, configurations spécifiques) Prise en compte de l'internationalisation OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 13
  • 14. Les bénéfices d'Open www.cioinfoindus.fr Embedded Indépendance vis à vis du poste de développement hôte : Outils nécessaires à la compilation générés par OE puis utilisés (ex: python, dmake, pkg-config …) Pas d'utilisation des headers et librairies de la distribution locale, même en architecture Intel Reproductibilité de la génération de l'image embarquée : Remontée de tous les paramétrages à la génération Aucune intervention manuelle lors du déploiement sur la cible Communauté active OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 14
  • 15. Comment fonctionne www.cioinfoindus.fr OpenEmbedded ? Un moteur écrit en Python : bitbake Un jeu de recettes pour fabriquer les paquets logiciels Une notion de classes pour mise en commun entre recettes Une notion de tâches = méta paquets Des dépendances entre paquets, décrites dans les recettes, ou déterminées automatiquement (librairies partagées) Pour chaque recette des tâches élémentaires Calcul de l'arbre des dépendances pour fabriquer les paquets dans le bon ordre OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 15
  • 16. Comment fonctionne www.cioinfoindus.fr OpenEmbedded ? Une notion de distribution : Définit des versions préférentielles pour les paquets logiciels (cohérence de l'ensemble) Définit des réglages spécifiques (fichiers de configuration) Prise en compte des spécificités de la plateforme : Au niveau kernel : architecture, bootloader, modules kernel adaptés etc...  Au niveau userland : paramétrages GCC, optimisations, floating point etc...  OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 16
  • 17. Anatomie d'une recette www.cioinfoindus.fr Une recette pour un ou plusieurs paquets (fractionnement pour optimisation de l'espace) Des variables d'environnement Des tâches élémentaires implicites ou explicites : langage shell (basique) ou Python (+ évolué) OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 17
  • 18. Anatomie d'une recette (at) www.cioinfoindus.fr DESCRIPTION = "Delayed job execution and batch processing." SECTION = "base" LICENSE="BSD" DEPENDS = "flex-native" RCONFLICTS_${PN} = "atd" RREPLACES_${PN} = "atd" PR = "r3" SRC_URI = "${DEBIAN_MIRROR}/main/a/at/at_${PV}-11.tar.gz file://configure.patch file://nonrootinstall.patch file://use-ldflags.patch" SRC_URI[md5sum] = "81dbae5162aaa8a398a81424d6631c77" SRC_URI[sha256sum] = "0d77c73a3c151a7da647dd924f32151e5ee4574530568fd65067882f79cd5a44" inherit autotools export LIBS = "-L${STAGING_LIBDIR}" do_install () { oe_runmake 'IROOT=${D}' install } OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 18
  • 19. Anatomie d'une recette www.cioinfoindus.fr (cheese) DESCRIPTION = "Take photos and videos with your webcam, with fun graphical effects" LICENSE = "GPLv2" DEPENDS = "gtk+ gstreamer gst-plugins-base libcanberra udev librsvg gnome-desktop eds-dbus" RRECOMMENDS_${PN} = "gst-plugin-gconfelements gst-plugins-good-meta gst-plugins-base-meta" inherit gnome SRC_URI[archive.md5sum] = "1599fded8a1797ea51fb010af4e6c45b" SRC_URI[archive.sha256sum] = "48f03470c6f527caa0e3b269d3afcff86ae0939a74f66ce030d4eed3bc3cbd9a" FILES_${PN} += "${datadir}/dbus-1" OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 19
  • 20. Les principales tâches www.cioinfoindus.fr d'une recette Fetch : téléchargement des sources Unpack : extraction des sources Patch : application de patches additionnels fournis par la recette Configure : configuration Compile : compilation Stage : installation dans le SDK Install : installation dans un tampon local Package : création du (des) paquet(s) binaire OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 20
  • 21. Anatomie d'une classe www.cioinfoindus.fr (qt4e) DEPENDS_prepend = "${@["qt4-embedded ", ""][(bb.data.getVar('PN', d, 1) == 'qt4-embedded')]}" inherit qmake2 QT_DIR_NAME = "qtopia" QT_LIBINFIX = "E" # override variables set by qmake-base to compile Qt/Embedded apps # export QMAKESPEC = "${STAGING_DATADIR}/${QT_DIR_NAME}/mkspecs/$ {TARGET_OS}-oe-g++" export OE_QMAKE_INCDIR_QT = "${STAGING_INCDIR}/${QT_DIR_NAME}" export OE_QMAKE_LIBDIR_QT = "${STAGING_LIBDIR}" export OE_QMAKE_LIBS_QT = "qt" export OE_QMAKE_LIBS_X11 = "" export OE_QMAKE_EXTRA_MODULES = "network" EXTRA_QMAKEVARS_PRE += " QT_LIBINFIX=${QT_LIBINFIX} " # Qt4 uses atomic instructions not supported in thumb mode ARM_INSTRUCTION_SET = "arm" OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 21
  • 22. Anatomie d'une tâche www.cioinfoindus.fr (task-xfce4-base) DESCRIPTION = "All packages required for a base installation of XFCE 4.6.*" PR = "r1" inherit task RDEPENDS_${PN} = " xfwm4 xfwm4-theme-default xfce4-session xfconf xfdesktop xfce4-panel gtk-xfce-engine xfce-utils xfce4-panel-plugin-actions xfce4-panel-plugin-clock xfce4-panel-plugin-iconbox xfce4-panel-plugin-launcher xfce4-panel-plugin-pager xfce4-panel-plugin-separator xfce4-panel-plugin-showdesktop xfce4-panel-plugin-systray xfce4-panel-plugin-tasklist xfce4-panel-plugin-windowlist xfce4-settings xfce-terminal thunar " OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 22
  • 23. Gestion du versionning www.cioinfoindus.fr hôte 2 niveaux de versionning : Version du logiciel (gérée par l'équipe projet qui développe ce logiciel) Version de la recette OE (gérée par la communauté OE) Plusieurs recettes possibles pour un même logiciel (différentes versions du logiciel + svn/git)  Par défaut version la + élevée retenue – peut être contré par paramétrage au niveau distribution Une seule version de recette disponible (la dernière) – les recettes OE sont gérées sous git OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 23
  • 24. Gestion du versionning www.cioinfoindus.fr cible Gestionnaire de paquets sur la cible : Installation Suppression Upgrade Gère les dépendances à l'installation / suppression Gère les versions logiciel + version recette : Refus des downgrade sauf forçage OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 24
  • 25. Bon à savoir www.cioinfoindus.fr Outil en mode console : ne pas s'attendre à un IDE type Eclipse pour le moment Améliorations futures au travers de Yocto project ??? Prévoir beaucoup de disque et de temps CPU : Génération de la toolchain + libc par OE (temps CPU) Conservation des étapes intermédiaires – optionnel mais utile – très gourmand en disque Connaissance de Python : non obligatoire mais un + pour comprendre / développer des recettes Connaissance des standards tels que autotools, pkgconfig etc... conseillée : Plus du fait des logiciels gérés que de OE lui même OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 25
  • 26. Bon à savoir www.cioinfoindus.fr Ne pas négliger qu'il n'y a pas d'outil miracle : Temps de prise en main initial Courbe d'apprentissage pour passer par les stades : J'utilise Je comprends Je modifie / je crée Comme parfois (souvent ???) dans le monde du libre la documentation est en retrait / puissance de l'outil Comme toujours dans le libre on peut réinvestir en formation des équipes des économies sur les coûts récurrents : achats licence + maintenance Investissement dans le capital humain des salariés vs achat de produits Se faire accompagner par un spécialiste : réduction du Time To Market OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 26
  • 27. Quelques liens utiles www.cioinfoindus.fr Open Embedded : http://www.openembedded.org/ Distribution Angstrom : http://www.angstrom-distribution.org/ Distribution Poky Linux : http://www.pokylinux.org/ Yocto project (in progress) : http://yoctoproject.org/ OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 27
  • 28. Pour aller plus loin www.cioinfoindus.fr Pour toute information complémentaire : Visitez notre site Web http://www.cioinfoindus.fr Contactez nous : Tél : 04 95 05 19 41 Mail : mailto:christian.charreyre@cioinfoindus.fr Possibilité d'envoi des slides de la présentation sur demande OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 28
  • 29. Démonstration www.cioinfoindus.fr Démonstration de la partie hôte (SDK) Gestion de paquets sur la cible OpenEmbedded, un framework libre pour assurer la cohérence de son projet - 31 Mars 2011 29