Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 1www.cioinfoindus.f...
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 2www.cioinfoindus.f...
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 3www.cioinfoindus.f...
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 4www.cioinfoindus.f...
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 5www.cioinfoindus.f...
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 6www.cioinfoindus.f...
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 7www.cioinfoindus.f...
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 8www.cioinfoindus.f...
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 9www.cioinfoindus.f...
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 10www.cioinfoindus....
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 11www.cioinfoindus....
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 12www.cioinfoindus....
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 13www.cioinfoindus....
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 14www.cioinfoindus....
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 15www.cioinfoindus....
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 16www.cioinfoindus....
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 17www.cioinfoindus....
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 18www.cioinfoindus....
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 19www.cioinfoindus....
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 20www.cioinfoindus....
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 21www.cioinfoindus....
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 22www.cioinfoindus....
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 23www.cioinfoindus....
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 24www.cioinfoindus....
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 25www.cioinfoindus....
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 26www.cioinfoindus....
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 27www.cioinfoindus....
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 28www.cioinfoindus....
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 29www.cioinfoindus....
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 30www.cioinfoindus....
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 31www.cioinfoindus....
Upcoming SlideShare
Loading in...5
×

Yocto une solution robuste pour construire des applications à fort contenu applicatif

994

Published on

Ce document est la présentation effectuée par CIO Informatique Industrielle lors de la conférence "Yocto et Linux, un couple d'avenir" du salon RTS 2013

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
994
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Yocto une solution robuste pour construire des applications à fort contenu applicatif

  1. 1. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 1www.cioinfoindus.frYocto une solution robusteYocto une solution robustepour construire despour construire desapplications à fort contenuapplications à fort contenuapplicatif.applicatif.C. CharreyreC. Charreyrechristian.charreyre@cioinfoindus.frchristian.charreyre@cioinfoindus.fr
  2. 2. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 2www.cioinfoindus.frLicenceAttribution-Noncommercial-Share Alike 2.0 FranceYou are free:to Share - to copy, distribute, display, and perform the workto Remix - to make derivative worksUnder 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 theresulting 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. Thebest way to do this is with a link tohttp://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 authors moral rights.
  3. 3. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 3www.cioinfoindus.frCIO InformatiqueIndustrielleSociété dingénierie en informatique industrielle et techniqueAu service de nos clients depuis 1990Une équipe de 15 spécialistes pour accompagner les projetsindustriels ou militairesInvestissement sur Linux depuis 2000. Centre de Compétencescréé fin 2001Agréé Crédit dImpôt RechercheMarchés industriels, embarqué et militaireMembre de Libertis - Commission Logiciel Libre de Medinsoft
  4. 4. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 4www.cioinfoindus.frÉvolutions de LinuxembarquéIl y a quelques années, Linux = moteurdapplications enfouies :Besoin dun kernel et dune glibcUtilisation de busybox pour bâtir le Root FileSystemApplication embarquée home made sur ces basesPeu de soucis de cohérence ou de complexitéBesoins actuels : applications embarquéesriches :Moins de limitations de mémoire vive ou de masseProcesseurs beaucoup plus puissantsIHM riches : tactile, vidéo, image, culture Iphone etAndroïdNécessité dassembler de manière cohérente demultiples briques logicielles de base
  5. 5. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 5www.cioinfoindus.frExemples danslélectronique grand publicDe nombreux appareils basés sur Linux, à fortcontenu applicatif :
  6. 6. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 6www.cioinfoindus.frLes besoins actuelsTechniques :Richesse : Graphisme, vidéo, connectivitéComplexité ⇒ Industrialisation de la productionlogicielle : fiabilité, automatisation si possible,reproductibilitéÉconomiques :Time To Market de plus en plus courtCoûts optimisésRecentrage sur la valeur ajoutée
  7. 7. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 7www.cioinfoindus.frLes besoins actuelsConséquences :Favoriser des composants sur étagèreLapplication métier nest quune partie, assemblésavec des éléments puisés dans lécosystèmeExemple :initiative Genivi dans lautomobile (In VehiculeInfotainment) – basée sur Yocto
  8. 8. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 8www.cioinfoindus.frTravailler avec LinuxUn monde fragmenté aux multiples sourcesBootloaders (UBoot, RedBoot, LILO, Grub, ...)Kernel (kernel.org, fournisseur hardware, ...)Librairies de base (glibc ou alternatives réduites)Bases applicatives (busybox, kits embarqués libresou propriétaires, ....)IHM (Qt, MicroWindows/NanoX, ...)Multimédia (Mplayer, Gstreamer, Xine, ....)Extensions temps réel (RTAI, Xenomai, …)Quil faut assembler en un ensemble cohérent :votre deviceMais chaque projet contributeur vit sa vie à sonpropre rythme
  9. 9. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 9www.cioinfoindus.frFaire attention au respect de licences multiples(GPL, LGPL, BSD, etc...)Les connaître et les respecterAdapter ce que lon utilise à sa stratégie depublications de codes sourcePour des applications riches, des Software DevelopmentKits structurés sont conseillés :BuildrootScratchboxOpen Embedded / Angstrom / Yocto ....Travailler avec Linux
  10. 10. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 10www.cioinfoindus.frPourquoiYocto ?Pour éviter cela
  11. 11. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 11www.cioinfoindus.frPourquoiYocto ?Pour gérer cela
  12. 12. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 12www.cioinfoindus.frPourquoiYocto ?Dépendances de nautilus : 62 librairies
  13. 13. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 13www.cioinfoindus.frPourquoiYocto ?Les « sorties » de loutil :La chaîne de compilation pour la cible (générée parYocto) Le Software Development Kit qui se construit petit àpetit : fichiers headers et librairies partagéescompilées pour la cible, outils natifs nécessaires à lacompilation : Utilisable tel quel (console)Utilisable à travers Eclipse (plugin ADT)Des paquets logiciels binaires au format debian ouRPM + un gestionnaire de paquets sur la cible(cohérences, dépendances)
  14. 14. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 14www.cioinfoindus.frPourquoiYocto ?Les « sorties » de loutil :Une image finale prête à déployer (archive tgz, ubi,ext3, etc...)Une classification des logiciels par type de licence
  15. 15. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 15www.cioinfoindus.frLes bénéfices de YoctoGestion intégrée des versions et de leursdépendancesGrande richesse logiciellePrise en compte de la cross compilation et desarchitectures ≠ Intel (patches, configurationsspécifiques)Architecture modulaire, en couches : meta-xxxxCouches de base :meta, meta-yocto, meta-yocto-bspNombreuses couches additionnelles :Support hardware, support software, distributionsVotre propre couche (développements propres)
  16. 16. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 16www.cioinfoindus.frLes bénéfices de YoctoArchitecture en couchesPriorité entre couches qui partageraient unerecetteListe des couches : http://layers.openembedded.org/layerindex/layers/
  17. 17. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 17www.cioinfoindus.frLes bénéfices de YoctoIndépendance vis à vis du poste dedéveloppement hôte :Outils nécessaires à la compilation générés par Yoctopuis utilisés (ex: python, dmake, pkg-config …)Pas dutilisation des headers et librairies de ladistribution locale, même en architecture IntelPas de problème lié à la mise à jour de la distributionhôteReproductibilité de la génération de limageembarquée :Remontée de tous les paramétrages à la générationAucune intervention manuelle lors du déploiement surla cibleCommunauté active
  18. 18. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 18www.cioinfoindus.frComment fonctionneYocto ?Un moteur écrit en Python : bitbakeUn jeu de recettes pour fabriquer les paquetslogicielsUne notion de classes pour mise en communentre recettesUne notion de groupe de paquets = packagegroup permettant de structurer les recettesDes dépendances entre paquets, décrites dansles recettes, ou déterminées automatiquement(librairies partagées)Pour chaque recette des tâches élémentairesCalcul de larbre des dépendances pourfabriquer les paquets dans le bon ordre
  19. 19. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 19www.cioinfoindus.frComment fonctionneYocto ?Possibilité de modifier une recette endifférentiel : facilite les adaptations au contextepropreUne notion de distribution :Définit des versions préférentielles pour les paquetslogiciels (cohérence de lensemble)Définit des réglages spécifiques (fichiers deconfiguration)Prise en compte des spécificités de laplateforme :Au niveau kernel : architecture, bootloader, moduleskernel adaptés etc...Au niveau userland : paramétrages GCC,optimisations, floating point etc... 
  20. 20. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 20www.cioinfoindus.frAnatomie dune recetteUne recette pour un ou plusieurs paquets(fractionnement pour optimisation de lespace)Des variables denvironnementDes tâches élémentaires implicites ou explicites(pour modifier limplicite)
  21. 21. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 21www.cioinfoindus.frAnatomie dune recette(ed)DESCRIPTION = "a line-oriented text editor"HOMEPAGE = "http://www.gnu.org/software/ed/"BUGTRACKER = ""LICENSE = "GPLv3+"LIC_FILES_CHKSUM ="file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949 file://ed.h;endline=20;md5=c708cda1b2e8d723d458690b7db03878 file://main.c;endline=24;md5=1bd039d59e04ee5f82adcc970144a2c3"SECTION = "base"PR = "r0"# LSB states that ed should be in /bin/bindir = "${base_bindir}"SRC_URI = "${GNU_MIRROR}/ed/ed-${PV}.tar.gz file://ed-1.2-build.patch"SRC_URI[md5sum] = "9a78593decccaa889523aa4bb555ed4b"SRC_URI[sha256sum] ="211c67b0c4aae277d34b1c5f842db1952e468e5905142868e4718ac838f08a65"do_configure() {${S}/configure}do_install() {oe_runmake DESTDIR=${D} install}
  22. 22. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 22www.cioinfoindus.frAnatomie dune recette(gthumb)DESCRIPTION = "gThumb is an image viewer and browser for the GNOMEDesktop"SECTION = "x11/gnome"LICENSE = "GPLv2"LIC_FILES_CHKSUM ="file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"DEPENDS = "glib-2.0 gtk+ libxml2 gnome-doc-utils libunique gconflibpng gstreamer jpeg tiff gst-plugins-base"PR = "r4"EXTRA_OECONF = "--disable-gnome-keyring --disable-libsoup--disable-exiv2 --disable-clutter"inherit gnome pkgconfigSRC_URI[archive.md5sum] = "97fc13221b0c5d80c27a2e25a3a3ac6f"SRC_URI[archive.sha256sum] ="cf809695230ab8892a078be454a42ade865754c72ec1da7c3d74d4310de54f1d"SRC_URI += "file://parallel.patch"do_install_append () {rm ${D}${libdir}/${BPN}/extensions/*.a}FILES_${PN} += "${datadir}/icons"FILES_${PN} += "${libdir}/${BPN}/extensions/*.so ${libdir}/${BPN}/extensions/*.extension"FILES_${PN}-dev += "${libdir}/${BPN}/extensions/*.la"FILES_${PN}-dbg += "${libdir}/${BPN}/extensions/.debug/"
  23. 23. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 23www.cioinfoindus.frModification dune recetteen deltaFILESEXTRAPATHS_prepend := "${THISDIR}/${P}:"dirs755 += " ${localstatedir}/volatile/mqueue"volatiles += "mqueue"SRC_URI += "file://root-profile"CONFFILES_${PN} += "/home/root/.profile"do_install_append() {install -m 0755 ${WORKDIR}/root-profile ${D}/home/root/.profile}
  24. 24. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 24www.cioinfoindus.frLes principales tâchesdune recetteFetch : téléchargement des sources (http, ftp,svn, git ...)Unpack : extraction des sourcesPatch : application de patches additionnelsfournis par la recetteConfigure : configurationCompile : compilationStage : installation dans le SDKInstall : installation dans un tampon localPackage : création du (des) paquet(s) binaire
  25. 25. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 25www.cioinfoindus.frAnatomie dune classe(qt4e)QT4EDEPENDS ?= "qt4-embedded "DEPENDS_prepend = "${QT4EDEPENDS}"inherit qmake2QT_BASE_NAME = "qt4-embedded"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 modeARM_INSTRUCTION_SET = "arm"
  26. 26. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 26www.cioinfoindus.frAnatomie dun package-group(packagegroup-core-tools-debug)## Copyright (C) 2008 OpenedHand Ltd.#SUMMARY = "Debugging tools"LICENSE = "MIT"inherit packagegroupPR = "r2"PACKAGE_ARCH = "${MACHINE_ARCH}"# For backwards compatibility after renameRPROVIDES_${PN} = "task-core-tools-debug"RREPLACES_${PN} = "task-core-tools-debug"RCONFLICTS_${PN} = "task-core-tools-debug"MTRACE = ""MTRACE_libc-glibc = "libc-mtrace"RDEPENDS_${PN} = "gdb gdbserver tcf-agent openssh-sftp-server rsync strace ${MTRACE} "
  27. 27. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 27www.cioinfoindus.frGestion du versionninghôte2 niveaux de versionning :Version du logiciel (gérée par léquipe projet quidéveloppe ce logiciel upstream)Version de la recette (gérée par la communautéyocto)Plusieurs recettes possibles pour un mêmelogiciel (différentes versions du logiciel +svn/git) Par défaut version la + élevée retenue – peutêtre contré par paramétrage au niveaudistribution
  28. 28. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 28www.cioinfoindus.frGestion du versionningcibleGestionnaire de paquets sur la cible :InstallationSuppressionUpgradeGère les dépendances à linstallation -suppressionGère les versions du logiciel + version de larecette :Refus des downgrade sauf forçage
  29. 29. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 29www.cioinfoindus.frBon à savoirOutil historiquement en mode console :Mais apparition de version graphique : HobPlugin Eclipse : ADTPrévoir beaucoup de disque et de temps CPU :Génération de la toolchain + libc par yocto (tempsCPU)Conservation des étapes intermédiaires – optionnelmais utile – très gourmand en disqueConnaissance de Python : non obligatoire maisun + pour comprendre / développer des recettesConnaissance des standards tels que autotools,pkgconfig etc... conseillée :Plus du fait des logiciels gérés que de yocto lui même
  30. 30. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 30www.cioinfoindus.frBon à savoirNe pas négliger quil ny a pas doutil miracle :Temps de prise en main initialCourbe dapprentissage pour passer par les stades :JutiliseJe comprendsJe modifie / je créeLa documentation sest professionnalisée (sur le siteWeb yocto et distribuée avec le code).Se faire accompagner par un spécialiste : réductiondu Time To Market
  31. 31. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 31www.cioinfoindus.frPour aller plus loinPour toute information complémentaire :Visitez notre site Web http://www.cioinfoindus.frContactez nous :Tél : 04 95 05 19 41Mail : mailto:christian.charreyre@cioinfoindus.frPossibilité denvoi des slides de la présentationsur demande
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×