Créer une distribution Linux embarqué professionnelle avec Yocto Project



Documents pareils
Slony1 2.1 Londiste 3

Comment travailler avec les logiciels Open Source

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

Installation et prise en main

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

Session 8: Android File System

DOCUMENTATION - FRANCAIS... 2

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

Le Cloud: Mythe ou Réalité?

TD/TP 1 Introduction au SDK d Android

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

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

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

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

Naissance d'un REPTAR

Utiliser un proxy sous linux

EXALOGIC ELASTIC CLOUD MANAGEMENT

sshgate Patrick Guiran Chef de projet support

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Tivoli Endpoint Manager Introduction IBM Corporation

SERVEUR DÉDIÉ DOCUMENTATION

Linux embarqué: une alternative à Windows CE?

FOG : Free Open-Source Ghost. Solution libre de clonage et de déploiement de systèmes d'exploitation.

FusionInventory. Guillaume Rousse Journées francophones de Perl 2011

Auteur LARDOUX Guillaume Contact Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

Simple Database Monitoring - SDBM Guide de l'usager

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

Serveur de travail collaboratif Michaël Hoste -

Guide d installation de MySQL

Table des matières. 1. Installation de VMware ESXI Pré-requis Installation... 3

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

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

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

Manuel d'exploitation de l'application Vitamin version 1.0

Gérer ses environnements de développement avec Vagrant RMLL 2012

Serveur DNS et DHCP couplé à LDAP Debian GNU/Linux

Dossier. Développer en Java sur téléphone mobile. Benjamin Damécourt UFR SITEC Master 2 EESC 11 janvier 2012

Gestion des journaux

Programmation Mobile Android Master CCI

Votre premier projet Android

DOCUMENTATION - FRANCAIS... 2

Internet Information Services (versions 7 et 7.5) Installation, configuration et maintenance du serveur Web de Microsoft

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

2 Formation utilisateur

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Maarch Framework 3 - Maarch. Tests de charge. Professional Services. 11, bd du Sud Est Nanterre

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

RAPID Prenez le contrôle sur vos données

Installation de Vmware serveur Windows

Oracle Database SQL Developer Guide D'Installation Release 4.0 E

Tutoriel code::blocks

SCHOLARSHIP ANSTO FRENCH EMBASSY (SAFE) PROGRAM APPLICATION FORM

that the child(ren) was/were in need of protection under Part III of the Child and Family Services Act, and the court made an order on

Hands on Openstack : Introduction

FOURNIR UN SERVICE DE BASE DE DONNÉES FLEXIBLE. Database as a Service (DBaaS)

Annexe Android Studio

Fiche d utilisation du logiciel. 1 - Installation. J. Thioulouse & D. Chessel

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

Bacula. It comes by night and sucks the vital essence from your computers. Guillaume Arcas

Accélérez votre émulateur Android

APPENDIX 6 BONUS RING FORMAT

Adobe Application Manager Enterprise Edition version 2.1

Domino Attachment and Object Service (DAOS)

Construction et déploiement d applications Java avec Maven, Archiva, Groovy et Jenkins

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

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

LES OBJETS CONNECTES

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Chapitre 1 Retour en arrière

EMC Forum EMC ViPR et ECS : présentation des services software-defined

Intervenants. Thomas d'erceville Project Manager. Christian NGUYEN Practice Manager IT Quality

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

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

HSCS 6.4 : mieux appréhender la gestion du stockage en environnement VMware et service de fichiers HNAS Laurent Bartoletti Product Marketing Manager

PLATE-FORME DE CLOUD COMPUTING SLAPOS. Intégration d applications

Travailler à l'ensimag avec son matériel personnel

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

CQP Développeur Nouvelles Technologies (DNT)

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

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

Glassfish dans le milieu médical. Sun Aquarium Paris 26 Juin 2009 Jacky Renno

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

S10 - Automatisez la compilation et le déploiement de vos applications IBM i avec Arcad Pack for Rational

WiFi Security Camera Quick Start Guide. Guide de départ rapide Caméra de surveillance Wi-Fi (P5)

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Instructions Mozilla Thunderbird Page 1

Principe de TrueCrypt. Créer un volume pour TrueCrypt

Bill 12 Projet de loi 12

Table des matières. 1. Installation de VMware ESXI Pré-requis Installation... 5

Valorisez vos actifs logiciels avec Rational Asset Manager. Jean-Michel Athané, Certified IT Specialist IBM Rational Software

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

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)

Retour d expérience en Astrophysique : utilisation du Cloud IaaS pour le traitement de données des missions spatiales

Introduction MOSS 2007

Transcription:

Créer une distribution Linux embarqué professionnelle avec Yocto Project C. Charreyre christian.charreyre@ciose.fr http://www.ciose.fr http://fr.slideshare.net/charreyre @CIOinfoindus Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 1

Licence Attribution-Noncommercial-Share Alike 4.0 International You are free: to Share - copy and redistribute the material in any medium or format to Adapt - remix, transform, and build upon the material The licensor cannot revoke these freedoms as long as you follow the license terms. Under the following conditions: Attribution You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. NonCommercial You may not use the material for commercial purposes. ShareAlike If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. No additional restrictions You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. License text : http://creativecommons.org/licenses/by-nc-sa/4.0/legalcode Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 2

CIO en quelques mots Société d'ingénierie en systèmes embarqués : électronique et logiciel Au service de nos clients depuis 1990 15 spécialistes en embarqué et temps réel Expert en Linux embarqué depuis 2000, OpenEmbedded et Yocto Project depuis 2008 CA annuel : 1 500 000 Siège à Saint-Etienne Agence à Marseille Agréé CIR Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 3

Présentation C. Charreyre Associé au sein de CIO Systèmes Embarqués Responsable des technologies Linux embarqué Formateur Linux embarqué et outils Yocto Project 30 ans dans l'embarqué et le monde Unix / Linux Fervent promoteur du logiciel libre Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 4

«It's not an embedded Linux distribution it creates a custom one for you» Page d'accueil du site yoctoproject.org Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 5

Contexte Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 6

Les tendances en Linux embarqué 10 ans en arrière, Linux = alternative aux RTOS propriétaires peu de besoins fonctionnels : Kernel et glibc Fabrication à la main d'un Root File System autour de Busybox Application métier développée en interne Peu de problèmes de complexité et de cohérence Nécessité d'une bonne connaissance de Linux pour créer sa distribution embarquée Linux = un OS parmi d'autres, pas de développement massif Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 7

Les tendances en Linux embarqué Aujourd'hui: forte pression pour développer des smart devices dans des Time To Market réduits Moins (plus?) de limitations de mémoire vive ou de masse Processeurs beaucoup plus puissants IHM riches avec audio, vidéo, graphisme évolué (impact ios et Androïd) Besoins importants de connectivité : Wifi, Bluetooth, 3G Time to Market de plus en plus court Recentrage sur la valeur ajoutée Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 8

Pourquoi un outil de build? Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 9

Le challenge Linux embarqué Logique économique : Réduire le Time To Market et optimiser les coûts Utiliser largement des logiciels issus du riche écosystème Linux Les assembler comme des briques modulaires, tels quels ou adaptés Le challenge = Gérer la richesse et la complexité : Un monde riche et fragmenté aux multiples sources Qu'il faut assembler en un ensemble cohérent : le device à réaliser Mais chaque projet contributeur vit sa vie à son propre rythme : cycle de vie propre, sans gestion centralisée Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 10

Pourquoi un outil de build? Pour éviter cela Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 11

Pourquoi un outil de build? Pour gérer cela Réseau de dépendances entre composants logiciels au cycle de vie autonome Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 12

Pourquoi un outil de build? Dépendances de nautilus (file manager) : 62 librairies Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 13

Pourquoi un outil de build? Rôles de l'outil : Sélectionner les bons composants dans les bonnes versions (compatibilité) Automatiser les générations (composants + image finale déployable) Prendre en charge les architectures variées (cross compilation) Au final, création d'une distribution : Dédiée et non généraliste (plus ou moins selon type de device) Adaptée à l'architecture embarquée retenue Fiable malgré sa richesse Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 14

Yocto Project Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 15

Workflow du Yocto Project Crédit Yocto Project Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 16

Workflow du Yocto Project Les entrées : Code source des projets «upstream» : Fetchés depuis le site projet ou depuis un miroir Yocto Project Formats variés : archive, révision dans un SCM... Protocoles variés : http(s), ftp, svn, git Code source local (projet interne) : Archive locale ou accès à un serveur SCM interne Fichiers de configuration : Caractéristiques de la machine cible (kernel, bootloader, format image, tuning compilateur...) Caractéristiques de la distribution (paquets inclus, versions, choix entre alternatives, choix libc ) Configuration du build : machine, distribution, layers actives, format paquet... Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 17

Workflow du Yocto Project Le cœur : Un moteur d'exécution de tâches écrit en Python : bitbake Exécute automatiquement les tâches nécessaires à la fabrication de la cible fournie : composant ou image complète Fonctionne en ligne de commande Exemple : bitbake core image minimal crée l'image en une commande unique Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 18

Workflow du Yocto Project Les sorties : Les paquets binaires des composants utilisés (formats ipk, deb ou rpm) Possibilité d'embarquer un gestionnaire de paquets sur la cible Permet de travailler en différentiel pour mise à jour / enrichissement L'image finale déployable sur la cible (formats variés : tar.bz2, ext3, ubi etc...) Un SDK exportable pour les développeurs d'application Un récapitulatif des paquets embarqués et de leur licences Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 19

Le moteur bitbake Un moteur écrit en Python : bitbake Un jeu de recettes pour fabriquer les paquets logiciels : fichiers texte Des dépendances entre paquets, décrites dans les recettes Pour chaque recette des tâches élémentaires Calcul de l'arbre des dépendances pour fabriquer les paquets dans le bon ordre Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 20

Principales tâches élémentaires Tâche fetch unpack patch configure compile install populate_lic package populate_sysroot package_write_xxx Rôle Téléchargement depuis dépôt upstream Extraction dans répertoire travail Application de patches issus des recettes Configuration Compilation croisée Installation dans tampon local au composant Installation fichier(s) licence dans répertoire deploy Fabrication des descriptifs des packages Déploiement des paquets dans le sysroot Création du paquet au format xxx Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 21

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/remplacer l'implicite) : langage shell et python Jeu de recettes géré par la communauté Yocto Project solution au problème de complexité : Cohérence entre versions de composants dépendants Mise à jour des recettes fonction des évolutions upstream Application de patches locaux quand cela est nécessaire Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 22

Anatomie d'une recette (log4c) SUMMARY = "a library of C for flexible logging to files, syslog and other destinations" SECTION = "libs" HOMEPAGE = "http://log4c.sourceforge.net/" LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://copying;md5=7fbc338309ac38fefcd64b04bb903e34" PR = "r1" SRC_URI = "http://prdownloads.sourceforge.net/$ {PN}/log4c ${PV}.tar.gz \ file://oe.patch \ file://add pkgconfig data.patch \ " inherit autotools pkgconfig binconfig SRC_URI[md5sum] = "ca5412b7515d8901714ab7892323adb6" SRC_URI[sha256sum] = "6ed40a41307c26d052667e1661437394ab00e29cd24ff2640b502ba8 ab1e442b" Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 23

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 } Tâches explicites do_install() { oe_runmake 'DESTDIR=${D}' install } Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 24

Anatomie d'une recette (image) include recipes sato/images/core image sato.bb IMAGE_FEATURES += "debug tweaks" DISTRO_FEATURES += "pulseaudio" WEB = "web webkit" # Add extra image features EXTRA_IMAGE_FEATURES += " \ ${SOC_EXTRA_IMAGE_FEATURES} \ nfs server \ tools debug \ tools profile \ qt4 pkgs \ " IMAGE_INSTALL += " \ ${SOC_IMAGE_INSTALL} \ cpufrequtils \ nano \ packagegroup fsl gstreamer \ packagegroup fsl tools testapps \ packagegroup fsl tools benchmark \ packagegroup qt in use demos \ qt4 plugin phonon backend gstreamer \ qt4 demos \ qt4 examples \ fsl gui extrafiles \ " export IMAGE_BASENAME = "fsl image gui" Sélection de features Sélection de composants logiciels Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 25

Bon à savoir Outil historiquement en mode console : Mais apparition d'outils graphiques : Hob, Toaster Plugin Eclipse : ADT Prévoir beaucoup de disque et de temps CPU : Génération de la toolchain + libc par l'outil (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 l'outil lui même Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 26

Conclusion Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 27

Conclusion Yocto Project fournit un framework complet pour développer des distributions embarquées riches et fiables : Jeu de recettes large et forte communauté d'utilisateurs Génération automatique d'image pré-paramétrées, prêtes à l'installation (pas de personnalisation par admin système) Génération d'un SDK exportable aux développeurs Le framework et la communauté prennent en compte la complexité et la fragmentation de l'écosystème Linux Utilisé par des fondeurs majeurs (Intel, AMD, Freescale, Texas Instruments, Broadcom, Huawei ) Fondation de distribution Linux commerciales (Wind River Linux, Enea Linux, Mentor Graphics Embedded Linux...) 2 release par an, sur une base prévisible (Printemps et Automne) Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 28

Conclusion Yocto Project offre un outil de packaging, la qualité globale dépend également de la qualité des projets upstream Mais des corrections locales Un effort de sélection de projets «sérieux» 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 Project et distribuée avec l'outil). Possibilité de se faire accompagner par un spécialiste : réduction du Time To Market Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 29

Merci de votre attention Questions? Créer une distribution Linux embarqué professionnelle avec Yocto Project - 19 Novembre 2015 30