SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 1
www.cioinfoindus.fr
Yocto une solution robusteYocto une solution robuste
pour construire despour construire des
applications à fort contenuapplications à fort contenu
applicatif.applicatif.
C. CharreyreC. Charreyre
christian.charreyre@cioinfoindus.frchristian.charreyre@cioinfoindus.fr
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 2
www.cioinfoindus.fr
Licence
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.
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 3
www.cioinfoindus.fr
CIO Informatique
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
Investissement sur Linux depuis 2000. Centre de Compétences
créé fin 2001
Agréé Crédit d'Impôt Recherche
Marchés industriels, embarqué et militaire
Membre de Libertis - Commission Logiciel Libre de Medinsoft
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 4
www.cioinfoindus.fr
Évolutions de Linux
embarqué
Il y a quelques années, Linux = moteur
d'applications enfouies :
Besoin d'un kernel et d'une glibc
Utilisation de busybox pour bâtir le Root FileSystem
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
Processeurs beaucoup plus puissants
IHM riches : tactile, vidéo, image, culture Iphone et
Androïd
Nécessité d'assembler de manière cohérente de
multiples briques logicielles de base
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 5
www.cioinfoindus.fr
Exemples dans
l'électronique grand public
De nombreux appareils basés sur Linux, à fort
contenu applicatif :
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 6
www.cioinfoindus.fr
Les besoins actuels
Techniques :
Richesse : Graphisme, vidéo, connectivité
Complexité ⇒ Industrialisation de la production
logicielle : fiabilité, automatisation si possible,
reproductibilité
Économiques :
Time To Market de plus en plus court
Coûts optimisés
Recentrage sur la valeur ajoutée
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 7
www.cioinfoindus.fr
Les besoins actuels
Conséquences :
Favoriser des composants sur étagère
L'application métier n'est qu'une partie, assemblés
avec des éléments puisés dans l'écosystème
Exemple :
initiative Genivi dans l'automobile (In Vehicule
Infotainment) – basée sur Yocto
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 8
www.cioinfoindus.fr
Travailler avec Linux
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 ensemble cohérent :
votre device
Mais chaque projet contributeur vit sa vie à son
propre rythme
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 9
www.cioinfoindus.fr
Faire attention au respect de licences multiples
(GPL, LGPL, BSD, etc...)
Les connaître 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 / Angstrom / Yocto ....
Travailler avec Linux
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 10
www.cioinfoindus.fr
Pourquoi
Yocto ?
Pour éviter cela
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 11
www.cioinfoindus.fr
Pourquoi
Yocto ?
Pour gérer cela
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 12
www.cioinfoindus.fr
Pourquoi
Yocto ?
Dépendances de nautilus : 62 librairies
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 13
www.cioinfoindus.fr
Pourquoi
Yocto ?
Les « sorties » de l'outil :
La chaîne de compilation pour la cible (générée par
Yocto) 
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 : 
Utilisable tel quel (console)
Utilisable à travers Eclipse (plugin ADT)
Des paquets logiciels binaires au format debian ou
RPM + un gestionnaire de paquets sur la cible
(cohérences, dépendances)

Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 14
www.cioinfoindus.fr
Pourquoi
Yocto ?
Les « sorties » de l'outil :
Une image finale prête à déployer (archive tgz, ubi,
ext3, etc...)

Une classification des logiciels par type de licence

Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 15
www.cioinfoindus.fr
Les bénéfices de Yocto
Gestion intégrée des versions et de leurs
dépendances
Grande richesse logicielle
Prise en compte de la cross compilation et des
architectures ≠ Intel (patches, configurations
spécifiques)
Architecture modulaire, en couches : meta-xxxx
Couches de base :
meta, meta-yocto, meta-yocto-bsp
Nombreuses couches additionnelles :
Support hardware, support software, distributions
Votre propre couche (développements propres)
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 16
www.cioinfoindus.fr
Les bénéfices de Yocto
Architecture en couches
Priorité entre couches qui partageraient une
recette
Liste des couches : http://layers.openembedded.org/layerindex/layers/
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 17
www.cioinfoindus.fr
Les bénéfices de Yocto
Indépendance vis à vis du poste de
développement hôte :
Outils nécessaires à la compilation générés par Yocto
puis utilisés (ex: python, dmake, pkg-config …)
Pas d'utilisation des headers et librairies de la
distribution locale, même en architecture Intel
Pas de problème lié à la mise à jour de la distribution
hôte
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
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 18
www.cioinfoindus.fr
Comment fonctionne
Yocto ?
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 groupe de paquets = package
group permettant de structurer les recettes
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
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 19
www.cioinfoindus.fr
Comment fonctionne
Yocto ?
Possibilité de modifier une recette en
différentiel : facilite les adaptations au contexte
propre
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... 
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 20
www.cioinfoindus.fr
Anatomie d'une recette
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
(pour modifier l'implicite)
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 21
www.cioinfoindus.fr
Anatomie d'une 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
}
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 22
www.cioinfoindus.fr
Anatomie d'une recette
(gthumb)
DESCRIPTION = "gThumb is an image viewer and browser for the GNOME
Desktop"
SECTION = "x11/gnome"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM =
"file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
DEPENDS = "glib-2.0 gtk+ libxml2 gnome-doc-utils libunique gconf
libpng gstreamer jpeg tiff gst-plugins-base"
PR = "r4"
EXTRA_OECONF = "--disable-gnome-keyring --disable-libsoup
--disable-exiv2 --disable-clutter"
inherit gnome pkgconfig
SRC_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/"
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 23
www.cioinfoindus.fr
Modification d'une recette
en delta
FILESEXTRAPATHS_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
}
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 24
www.cioinfoindus.fr
Les principales tâches
d'une recette
Fetch : téléchargement des sources (http, ftp,
svn, git ...)
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
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 25
www.cioinfoindus.fr
Anatomie d'une classe
(qt4e)
QT4EDEPENDS ?= "qt4-embedded "
DEPENDS_prepend = "${QT4EDEPENDS}"
inherit qmake2
QT_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 mode
ARM_INSTRUCTION_SET = "arm"
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 26
www.cioinfoindus.fr
Anatomie d'un package-group
(packagegroup-core-tools-debug)
#
# Copyright (C) 2008 OpenedHand Ltd.
#
SUMMARY = "Debugging tools"
LICENSE = "MIT"
inherit packagegroup
PR = "r2"
PACKAGE_ARCH = "${MACHINE_ARCH}"
# For backwards compatibility after rename
RPROVIDES_${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} 
"
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 27
www.cioinfoindus.fr
Gestion du versionning
hôte
2 niveaux de versionning :
Version du logiciel (gérée par l'équipe projet qui
développe ce logiciel upstream)
Version de la recette (gérée par la communauté
yocto)
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
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 28
www.cioinfoindus.fr
Gestion du versionning
cible
Gestionnaire de paquets sur la cible :
Installation
Suppression
Upgrade
Gère les dépendances à l'installation -
suppression
Gère les versions du logiciel + version de la
recette :
Refus des downgrade sauf forçage
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 29
www.cioinfoindus.fr
Bon à savoir
Outil historiquement en mode console :
Mais apparition de version graphique : Hob
Plugin Eclipse : ADT
Prévoir beaucoup de disque et de temps CPU :
Génération de la toolchain + libc par yocto (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 yocto lui même
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 30
www.cioinfoindus.fr
Bon à savoir
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
La documentation s'est professionnalisée (sur le site
Web yocto et distribuée avec le code).
Se faire accompagner par un spécialiste : réduction
du Time To Market
Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 31
www.cioinfoindus.fr
Pour aller plus loin
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

Mais conteúdo relacionado

Mais procurados

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
 
Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Jean Gabès
 
Distro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbeddedDistro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbeddedAnne Nicolas
 
Logiciel Libre - Hedi Magroun - AUF - 2008
Logiciel Libre - Hedi Magroun - AUF - 2008Logiciel Libre - Hedi Magroun - AUF - 2008
Logiciel Libre - Hedi Magroun - AUF - 2008Hedi Magroun
 
Open Wide : les licences libres.
Open Wide : les licences libres. Open Wide : les licences libres.
Open Wide : les licences libres. Alexandre LAHAYE
 
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
 
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
 
Introduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxIntroduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxBruno Cornec
 
Introduction à Linux et aux logiciels libres
Introduction à Linux et aux logiciels libresIntroduction à Linux et aux logiciels libres
Introduction à Linux et aux logiciels libresBruno Cornec
 
OS mobiles alternatifs
OS mobiles alternatifsOS mobiles alternatifs
OS mobiles alternatifsLionel Duboeuf
 
Présentation de la pile réseau sous gnu linux
Présentation de la pile réseau sous gnu linuxPrésentation de la pile réseau sous gnu linux
Présentation de la pile réseau sous gnu linuxThierry Gayet
 
Media center sous linux
Media center sous linuxMedia center sous linux
Media center sous linuxYannick Pavard
 
HOWTO Gestion porte-feuilles crypto-monnaies en environnement virtualisé
HOWTO Gestion porte-feuilles crypto-monnaies en environnement virtualiséHOWTO Gestion porte-feuilles crypto-monnaies en environnement virtualisé
HOWTO Gestion porte-feuilles crypto-monnaies en environnement virtualiséAnthony Le Goff
 

Mais procurados (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
 
Licences libres et embarqué
Licences libres et embarquéLicences libres et embarqué
Licences libres et embarqué
 
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
 
Meetup Systemd vs sysvinit
Meetup Systemd vs sysvinitMeetup Systemd vs sysvinit
Meetup Systemd vs sysvinit
 
Autotools
AutotoolsAutotools
Autotools
 
Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)
 
Distro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbeddedDistro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbedded
 
Logiciel Libre - Hedi Magroun - AUF - 2008
Logiciel Libre - Hedi Magroun - AUF - 2008Logiciel Libre - Hedi Magroun - AUF - 2008
Logiciel Libre - Hedi Magroun - AUF - 2008
 
Open Wide : les licences libres.
Open Wide : les licences libres. Open Wide : les licences libres.
Open Wide : les licences libres.
 
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
 
Android pour l'industrie
Android pour l'industrieAndroid pour l'industrie
Android pour l'industrie
 
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
 
Introduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxIntroduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à Linux
 
Introduction à Linux et aux logiciels libres
Introduction à Linux et aux logiciels libresIntroduction à Linux et aux logiciels libres
Introduction à Linux et aux logiciels libres
 
OS mobiles alternatifs
OS mobiles alternatifsOS mobiles alternatifs
OS mobiles alternatifs
 
Présentation de la pile réseau sous gnu linux
Présentation de la pile réseau sous gnu linuxPrésentation de la pile réseau sous gnu linux
Présentation de la pile réseau sous gnu linux
 
Media center sous linux
Media center sous linuxMedia center sous linux
Media center sous linux
 
HOWTO Gestion porte-feuilles crypto-monnaies en environnement virtualisé
HOWTO Gestion porte-feuilles crypto-monnaies en environnement virtualiséHOWTO Gestion porte-feuilles crypto-monnaies en environnement virtualisé
HOWTO Gestion porte-feuilles crypto-monnaies en environnement virtualisé
 

Destaque

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

Destaque (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
 
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
 
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
 
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
 

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

Ugif 09 2013 open source
Ugif 09 2013   open sourceUgif 09 2013   open source
Ugif 09 2013 open sourceUGIF
 
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
 
Introduction Groovy / Grails - Cyril Picat - December 2009
Introduction Groovy / Grails - Cyril Picat - December 2009Introduction Groovy / Grails - Cyril Picat - December 2009
Introduction Groovy / Grails - Cyril Picat - December 2009JUG Lausanne
 
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
 
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
 
Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009JUG Lausanne
 
Article open-silicium-juin-juillet-aout-2013
Article open-silicium-juin-juillet-aout-2013Article open-silicium-juin-juillet-aout-2013
Article open-silicium-juin-juillet-aout-2013O10ée
 
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
 
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
 
Prés licences-biz model
Prés licences-biz modelPrés licences-biz model
Prés licences-biz modelPascal Flamand
 
Utilisation de git avec Delphi
Utilisation de git avec DelphiUtilisation de git avec Delphi
Utilisation de git avec Delphipprem
 
Introduction à l'Open Hardware
Introduction à l'Open HardwareIntroduction à l'Open Hardware
Introduction à l'Open HardwareRobert 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
 
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
 

Semelhante a Yocto une solution robuste pour construire des applications à fort contenu applicatif (20)

Ugif 09 2013 open source
Ugif 09 2013   open sourceUgif 09 2013   open source
Ugif 09 2013 open source
 
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
 
Introduction Groovy / Grails - Cyril Picat - December 2009
Introduction Groovy / Grails - Cyril Picat - December 2009Introduction Groovy / Grails - Cyril Picat - December 2009
Introduction Groovy / Grails - Cyril Picat - December 2009
 
Architecture android
Architecture androidArchitecture android
Architecture android
 
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
 
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
 
Prototypage IoT avec logiciel/matériel libre
Prototypage IoT avec logiciel/matériel librePrototypage IoT avec logiciel/matériel libre
Prototypage IoT avec logiciel/matériel libre
 
intro-linux-v4.pdf
intro-linux-v4.pdfintro-linux-v4.pdf
intro-linux-v4.pdf
 
Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009
 
Article open-silicium-juin-juillet-aout-2013
Article open-silicium-juin-juillet-aout-2013Article open-silicium-juin-juillet-aout-2013
Article open-silicium-juin-juillet-aout-2013
 
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...
 
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
 
Prés licences-biz model
Prés licences-biz modelPrés licences-biz model
Prés licences-biz model
 
Utilisation de git avec Delphi
Utilisation de git avec DelphiUtilisation de git avec Delphi
Utilisation de git avec Delphi
 
Introduction à l'Open Hardware
Introduction à l'Open HardwareIntroduction à l'Open Hardware
Introduction à l'Open Hardware
 
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?
 
Historique
HistoriqueHistorique
Historique
 
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 ...
 

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

  • 1. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 1 www.cioinfoindus.fr Yocto une solution robusteYocto une solution robuste pour construire despour construire des applications à fort contenuapplications à fort contenu applicatif.applicatif. C. CharreyreC. Charreyre christian.charreyre@cioinfoindus.frchristian.charreyre@cioinfoindus.fr
  • 2. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 2 www.cioinfoindus.fr Licence 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.
  • 3. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 3 www.cioinfoindus.fr CIO Informatique 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 Investissement sur Linux depuis 2000. Centre de Compétences créé fin 2001 Agréé Crédit d'Impôt Recherche Marchés industriels, embarqué et militaire Membre de Libertis - Commission Logiciel Libre de Medinsoft
  • 4. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 4 www.cioinfoindus.fr Évolutions de Linux embarqué Il y a quelques années, Linux = moteur d'applications enfouies : Besoin d'un kernel et d'une glibc Utilisation de busybox pour bâtir le Root FileSystem 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 Processeurs beaucoup plus puissants IHM riches : tactile, vidéo, image, culture Iphone et Androïd Nécessité d'assembler de manière cohérente de multiples briques logicielles de base
  • 5. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 5 www.cioinfoindus.fr Exemples dans l'électronique grand public De nombreux appareils basés sur Linux, à fort contenu applicatif :
  • 6. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 6 www.cioinfoindus.fr Les besoins actuels Techniques : Richesse : Graphisme, vidéo, connectivité Complexité ⇒ Industrialisation de la production logicielle : fiabilité, automatisation si possible, reproductibilité Économiques : Time To Market de plus en plus court Coûts optimisés Recentrage sur la valeur ajoutée
  • 7. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 7 www.cioinfoindus.fr Les besoins actuels Conséquences : Favoriser des composants sur étagère L'application métier n'est qu'une partie, assemblés avec des éléments puisés dans l'écosystème Exemple : initiative Genivi dans l'automobile (In Vehicule Infotainment) – basée sur Yocto
  • 8. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 8 www.cioinfoindus.fr Travailler avec Linux 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 ensemble cohérent : votre device Mais chaque projet contributeur vit sa vie à son propre rythme
  • 9. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 9 www.cioinfoindus.fr Faire attention au respect de licences multiples (GPL, LGPL, BSD, etc...) Les connaître 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 / Angstrom / Yocto .... Travailler avec Linux
  • 10. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 10 www.cioinfoindus.fr Pourquoi Yocto ? Pour éviter cela
  • 11. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 11 www.cioinfoindus.fr Pourquoi Yocto ? Pour gérer cela
  • 12. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 12 www.cioinfoindus.fr Pourquoi Yocto ? Dépendances de nautilus : 62 librairies
  • 13. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 13 www.cioinfoindus.fr Pourquoi Yocto ? Les « sorties » de l'outil : La chaîne de compilation pour la cible (générée par Yocto)  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 :  Utilisable tel quel (console) Utilisable à travers Eclipse (plugin ADT) Des paquets logiciels binaires au format debian ou RPM + un gestionnaire de paquets sur la cible (cohérences, dépendances) 
  • 14. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 14 www.cioinfoindus.fr Pourquoi Yocto ? Les « sorties » de l'outil : Une image finale prête à déployer (archive tgz, ubi, ext3, etc...)  Une classification des logiciels par type de licence 
  • 15. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 15 www.cioinfoindus.fr Les bénéfices de Yocto Gestion intégrée des versions et de leurs dépendances Grande richesse logicielle Prise en compte de la cross compilation et des architectures ≠ Intel (patches, configurations spécifiques) Architecture modulaire, en couches : meta-xxxx Couches de base : meta, meta-yocto, meta-yocto-bsp Nombreuses couches additionnelles : Support hardware, support software, distributions Votre propre couche (développements propres)
  • 16. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 16 www.cioinfoindus.fr Les bénéfices de Yocto Architecture en couches Priorité entre couches qui partageraient une recette Liste des couches : http://layers.openembedded.org/layerindex/layers/
  • 17. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 17 www.cioinfoindus.fr Les bénéfices de Yocto Indépendance vis à vis du poste de développement hôte : Outils nécessaires à la compilation générés par Yocto puis utilisés (ex: python, dmake, pkg-config …) Pas d'utilisation des headers et librairies de la distribution locale, même en architecture Intel Pas de problème lié à la mise à jour de la distribution hôte 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
  • 18. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 18 www.cioinfoindus.fr Comment fonctionne Yocto ? 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 groupe de paquets = package group permettant de structurer les recettes 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
  • 19. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 19 www.cioinfoindus.fr Comment fonctionne Yocto ? Possibilité de modifier une recette en différentiel : facilite les adaptations au contexte propre 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... 
  • 20. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 20 www.cioinfoindus.fr Anatomie d'une recette 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 (pour modifier l'implicite)
  • 21. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 21 www.cioinfoindus.fr Anatomie d'une 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. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 22 www.cioinfoindus.fr Anatomie d'une recette (gthumb) DESCRIPTION = "gThumb is an image viewer and browser for the GNOME Desktop" SECTION = "x11/gnome" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" DEPENDS = "glib-2.0 gtk+ libxml2 gnome-doc-utils libunique gconf libpng gstreamer jpeg tiff gst-plugins-base" PR = "r4" EXTRA_OECONF = "--disable-gnome-keyring --disable-libsoup --disable-exiv2 --disable-clutter" inherit gnome pkgconfig SRC_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. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 23 www.cioinfoindus.fr Modification d'une recette en delta FILESEXTRAPATHS_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. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 24 www.cioinfoindus.fr Les principales tâches d'une recette Fetch : téléchargement des sources (http, ftp, svn, git ...) 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
  • 25. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 25 www.cioinfoindus.fr Anatomie d'une classe (qt4e) QT4EDEPENDS ?= "qt4-embedded " DEPENDS_prepend = "${QT4EDEPENDS}" inherit qmake2 QT_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 mode ARM_INSTRUCTION_SET = "arm"
  • 26. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 26 www.cioinfoindus.fr Anatomie d'un package-group (packagegroup-core-tools-debug) # # Copyright (C) 2008 OpenedHand Ltd. # SUMMARY = "Debugging tools" LICENSE = "MIT" inherit packagegroup PR = "r2" PACKAGE_ARCH = "${MACHINE_ARCH}" # For backwards compatibility after rename RPROVIDES_${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. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 27 www.cioinfoindus.fr Gestion du versionning hôte 2 niveaux de versionning : Version du logiciel (gérée par l'équipe projet qui développe ce logiciel upstream) Version de la recette (gérée par la communauté yocto) 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
  • 28. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 28 www.cioinfoindus.fr Gestion du versionning cible Gestionnaire de paquets sur la cible : Installation Suppression Upgrade Gère les dépendances à l'installation - suppression Gère les versions du logiciel + version de la recette : Refus des downgrade sauf forçage
  • 29. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 29 www.cioinfoindus.fr Bon à savoir Outil historiquement en mode console : Mais apparition de version graphique : Hob Plugin Eclipse : ADT Prévoir beaucoup de disque et de temps CPU : Génération de la toolchain + libc par yocto (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 yocto lui même
  • 30. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 30 www.cioinfoindus.fr Bon à savoir 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 La documentation s'est professionnalisée (sur le site Web yocto et distribuée avec le code). Se faire accompagner par un spécialiste : réduction du Time To Market
  • 31. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 31 www.cioinfoindus.fr Pour aller plus loin 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