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



Documents pareils
Comment travailler avec les logiciels Open Source

Slony1 2.1 Londiste 3

Naissance d'un REPTAR

Utiliser un proxy sous linux

DOCUMENTATION MODULE BLOCKCATEGORIESCUSTOM Module crée par Prestacrea - Version : 2.0

en SCÈNE RATIONAL Rational Démonstration SDP : automatisation de la chaîne de développement Samira BATAOUCHE sbataouche@fr.ibm.com

Guide pratique de CSPM, l'outil de suivi des performances du système Version française du Complete System Performance Monitor HOWTO

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

DOCUMENTATION - FRANCAIS... 2

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

Introduction...3. Objectif...3. Manipulations...3. La Sauvegarde...4. Les différents types...4. Planification...4. Les outils...5

WEB page builder and server for SCADA applications usable from a WEB navigator

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation

Comment Créer une Base de Données Ab Initio

Tom Pertsekos. Sécurité applicative Web : gare aux fraudes et aux pirates!

Installation et prise en main

Construction et sécurisation d'un système Linux embarqué. Frédéric AIME

DOCUMENTATION - FRANCAIS... 2

Contents Windows

SERVEUR DÉDIÉ DOCUMENTATION

Logitech Tablet Keyboard for Windows 8, Windows RT and Android 3.0+ Setup Guide Guide d installation

SunATM 4.0 Release Notes

APPENDIX 6 BONUS RING FORMAT

OUTIL DE TRAVAIL COLLABORATIF

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

Perl Console. Votre compagnon pour développer en Perl. Les Journées du Perl , 17 novembre, Lyon. Alexis Sukrieh

AMENDMENT TO BILL 32 AMENDEMENT AU PROJET DE LOI 32

TD/TP 1 Introduction au SDK d Android

3615 SELFIE. HOW-TO / GUIDE D'UTILISATION

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

et Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion

Envol2008. Licences, logiciels libres et administration. Thierry Aimé ministère de l Économie, de l Industrie et de l Emploi

Installation de Vmware serveur Windows

Session 8: Android File System

Motivations (many2many) Motivations (many2one) Sur le thème de la Version. La gestion de version. La gestion de configuration.

Comment faire des étiquettes

How to Login to Career Page

Domino Attachment and Object Service (DAOS)

Summary / Sommaire. 1 Install DRIVER SR2 USB01 Windows seven 64 bits / Installation du DRIVER SR2 USB01 Windows seven 64 bits 2

..seulement 5% des serveurs x86 sont virtualisés!

Guide d'installation rapide TFM-560X YO.13

L'accélération 3D sous Linux

Parallels Transporter Lisez-moi

Mon premier rpm. 7 juin Avant de commencer RPM URPMI RPMBUILD... 2

Guide de démarrage du système modulaire Sun Blade 6000

Linux embarqué: une alternative à Windows CE?

English Q&A #1 Braille Services Requirement PPTC Q1. Would you like our proposal to be shipped or do you prefer an electronic submission?

Règlement sur le télémarketing et les centres d'appel. Call Centres Telemarketing Sales Regulation

Présentation des intervenants. Pourquoi cette conférence? Logiciel libre : notions essentielles. Le logiciel libre pour les projets industriels

TABLE DES MATIERES A OBJET PROCEDURE DE CONNEXION

Déploiement OOo en environnement Windows Terminal Server

Stratégie d externalisation des services pour les établissements

Paxton. ins Net2 desktop reader USB

ZENworks de Novell Gestion des technologies mobiles

Tutoriel de formation SurveyMonkey

Serveur de travail collaboratif Michaël Hoste -

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces

Compilation croisée sous Linux et Windows

Configurer la supervision pour une base MS SQL Server Viadéis Services

Scénarios économiques en assurance

Debian en milieu professionnel. This document is under the GNU Free Documentation License.

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

Package Contents. System Requirements. Before You Begin

StorageTek Tape Analytics

La montée des bases de données open source

MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE :

EXALOGIC ELASTIC CLOUD MANAGEMENT

Instructions Mozilla Thunderbird Page 1

Introduction...3. Objectif...3. Manipulations...3. Gestion des utilisateurs et des groupes...4. Introduction...4. Les fichiers de base...

Alexandre Buge Epitech 5 Promo Soutenance de stage du 01/03/2004 au 31/08/2004

RULE 5 - SERVICE OF DOCUMENTS RÈGLE 5 SIGNIFICATION DE DOCUMENTS. Rule 5 / Règle 5

DOCUMENTATION - FRANCAIS... 2

Déployer Linux en toute sérénité. Francois Chazalon Directeur Marketing

VTP. LAN Switching and Wireless Chapitre 4

DOCUMENTATION - FRANCAIS... 2

Titre: Version: Dernière modification: Auteur: Statut: Licence:

Manuel d'exploitation de l'application Vitamin version 1.0

Les GPO 2012 server R2 (appliqués à Terminal Serveur Edition)

La création d un paquet Debian. Aurélien Jarno. Journées du Logiciel Libre. 15 octobre 2005

THE EVOLUTION OF CONTENT CONSUMPTION ON MOBILE AND TABLETS

Gestion des prestations Volontaire

ZABBIX est distribué sous licence GNU General Public License Version 2 (GPL v.2).

SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2

Oracle Database SQL Developer Guide D'Installation Release 4.0 E

ACTIVITÉ DE PROGRAMMATION

Insérer des images dans Base

Titulaires de marques

PACKZ System Requirements. Version: Version: Copyright 2015, PACKZ Software GmbH. 1

Installation d'un TSE (Terminal Serveur Edition)

Cedric Dumoulin (C) The Java EE 7 Tutorial

Support Orders and Support Provisions (Banks and Authorized Foreign Banks) Regulations

[DEVELOPPEMENT SUR LA CIBLE 2440] 19 avril 2010

Cours Linux. Cours en ligne Administrateur Systèmes Linux. Académie Libre

Mobile Connect. Essai gratuit inclus. Welcome Pack. Mobile Broadband

Transcription:

C. Charreyre christian.charreyre@cioinfoindus.fr Yocto une solution robuste pour construire des applications à fort contenu applicatif. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 1

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 2

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 3

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

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 5

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 6

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 7

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 8

Travailler avec Linux 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... Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 9

Pourquoi Yocto? Pour éviter cela Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 10

Pourquoi Yocto? Pour gérer cela Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 11

Pourquoi Yocto? Dépendances de nautilus : 62 librairies Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 12

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 13

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 14

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 15

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 16

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 17

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 18

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 19

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 20

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 21

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 22

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 23

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 24

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 25

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 26

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 27

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 28

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 29

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

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 Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 31