Linux et les Logiciels Libres dans le domaine de l'embarqué



Documents pareils
Systèmes Embarqués Libres

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

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

Preliminary Spec Sheet

Naissance d'un REPTAR

Les tablettes. Présentation tablettes Descriptif Fournisseurs Caractéristiques Comparatifs Conseils Perspectives Démonstration

LA VIDÉO HAUTE DEFINITION, PARTOUT, POUR TOUS

Linux embarqué: une alternative à Windows CE?

Openmoko, free your phone!

Leçon 1 : Les principaux composants d un ordinateur

TABLETTE MPMAN MP724 : EMPORTEZ LE MONDE AVEC VOUS

Programmation C. Apprendre à développer des programmes simples dans le langage C

Comment travailler avec les logiciels Open Source

Windows 7, Configuration

Virtualisation CITRIX, MICROSOFT, VMWARE OLIVIER D.

ST50 Projet de fin d études Noyau Linux et multi-processeur pour une plateforme embarquée

Série Pro Toshiba Business Vision

Détection de pollution maritime avec GNU/Linux. Eric Bénard - eric@eukrea.com - 08 juillet 2010

Parallels Transporter Lisez-moi

Systèmes d exploitation

Certificat Informatique et internet Niveau 1 TD D1. Domaine 1 : Travailler dans un environnement numérique évolutif. 1. Généralités : Filière

ESPACE MULTIMEDIA DU CANTON DE ROCHESERVIERE

Un ordinateur, c est quoi?

L ORDINATEUR. Les composants. La carte mère. Le processeur. Fréquence

Démontage d'un ordinateur

La communication et la gestion de l'information

Éléments d'architecture des ordinateurs

Connectiques et Utilisation d un disque dur multimédia MMEMUP

Systèmes informatiques

VMware ESX/ESXi. 1. Les composants d ESX. VMware ESX4 est le cœur de l infrastructure vsphere 4.

Manuel de System Monitor

Mode d emploi pour lire des livres numériques

Linux pour l embarqué. 1 Module E4 : Systèmes temps-réel Audrey Marchand

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

MANUEL DE L'UTILISATEUR TAC-70051

DESCRIPTIF DES PROJETS 3EME ANNEE QUI SERONT PRESENTES LORS DE LA JOURNEE DE PROJET DE FIN D ETUDE LE 26/01/2012

Tutorial uclinux ARM7 Development Starter Kit. Pragmatec Produits et services dédiés aux systèmes embarqués. uclinux - Mise en oeuvre

Robot WIFIBOT Lab V4. Lab V4.

À la découverte de l ordinateur

LE MICRO ORDINATEUR. Introduction Architecture Les supports amovibles Les composants Le système d exploitation Les portables

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq

Manuel d utilisation. Jay-tech. Jay-PC Tablet PID7901

JOG : une approche haut niveau des systèmes embarqués via Armadeus et Java

Le poids et la taille des fichiers

Les avantages de la virtualisation sont multiples. On peut citer:

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse

Matériel informatique (hardware)

Activité : TP Durée : 6H00. Un PC d assemblage de marque NEC Un casque avec micro Une clé USB. Un CD de Windows XP professionnel

Caractéristiques principales:

Guide d installation JMap 5.0

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Session 8: Android File System

À propos de Parallels Desktop 9 pour Mac

Serveur de sauvegarde à moindre coût

Un ordinateur, c est quoi?

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Guide des fonctions avancées de mywishtv

Annexe : La Programmation Informatique

Solutions de Virtualisation du poste de travail. ViewSonic vous présente le poste de travail virtuel du futur

Windows 7 - Installation du client

TIC. Tout d abord. Objectifs. L information et l ordinateur. TC IUT Montpellier

Boîte électronique. Découverte des principales fonctions d une messagerie électronique. (et les pièces jointes)

Prototypage électronique

Mode d emploi. Félicitations pour votre achat de la tablette Viewpia TB-107. Nous vous remercions pour votre confiance d acheter notre produit!

Cours / Formation pour débutant en informatique, bureautique, Internet etc... (pour débutants)

Architecture des ordinateurs Introduction à l informatique

Chapitre 1 Retour en arrière

ESPACE MULTIMEDIA DU CANTON DE ROCHESERVIERE

Diagrammes de Package, de déploiement et de composants UML

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Retrouver de vieux programmes et jouer sur VirtualBox

Qu est-ce qu un Ordinateur

Mise en route d'une infrastructure Microsoft VDI

PC, Tablette, Smartphone, comment choisir ce qui me convient le mieux?

Concept de machine virtuelle

ndv access point : Installation par clé USB

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Cours 3 : L'ordinateur

Gestion collaborative de documents

Sauvegarde et protection des documents

SOMMAIRE. 3 Matériel et configuration requis. 4 Installation initiale du matériel EZCast Pro. 7 Fonctionnalités de l'application

1/6. L icône Ordinateur

Routeur Gigabit WiFi AC 1200 Dual Band

Backup & Recovery 10 Suite. Guide de démarrage rapide

Avanquest Software présente la nouvelle gamme WebEasy 8

PLAN. Connexion Mac vers PC. mercredi 15 juillet 2009

Compilation croisée sous Linux et Windows

Lenovo TAB A7-40/ Lenovo TAB A7-50

Comment installer la configuration des salles sur son ordinateur personnel?

Nouveautés Ignition v7.7

LES OUTILS DE LA MOBILITE

En ce moment (24/01/2014), Super bon plan: Micro Serveur HP Proliant G7 N54L à 159 ttc Plus d'informations sur dealabs.com

Systèmes embarqués D.Rossier

Mises en garde. - Tenir l appareil à distance de lieux présentant des températures, une humidité élevées ou poussiéreux.

Transcription:

Linux et les Logiciels Libres dans le domaine de l'embarqué Thomas Petazzoni Free Electrons http://free electrons.com/ 1

Intervenant Thomas Petazzoni Ingénieur Linux embarqué chez Free Electrons Spécialisé Linux embarqué : services de développement et formation Impliqué dans la communauté Développeur Buildroot Fondateur et membre CA de Toulibre Membre CA de l'april Créateur et animateur de l'agenda du Libre Co auteur de MapOSMatic.org 2

Embarqué? Recouvre des systèmes de types très différents Frontière floue avec les systèmes «classiques» Produits de grande consommation Routeurs personnels, lecteurs de DVD, appareils photos numériques, GPS, camescopes, téléphones, micro onde, four Produits industriels Commande de robot, alarmes, systèmes de surveillance, contrôle de machines, voiture, avion, satellite 3

Linux embarqué Le monde du Logiciel Libre offre toute une palette d'outils pour le développement de systèmes embarqués Émergence depuis ~10 ans dans l'embarqué Linux embarqué = Utilisation du noyau Linux et de composants Logiciels Libres au sens large pour faire fonctionner un système embarqué Convient pour les systèmes embarqués «complexes» qui ont besoin d'un OS Nombreux avantages liés à l'aspect libre 4

Linux Embarqué Parts de marchés actuelles des OS embarqués OS propriétaire: 39% Linux embarqué gratuit: 29% Linux embarqué avec support commercial: 11% OS maison: 7% Pas d'os: 11% Pour les projets futurs Linux embarqué gratuit: 71% Linux embarqué avec support commercial: 16% OS propriétaire: 12% OS maison: 1% Source: Venture Development Corp, octobre 2007 5

Avantages Réutilisation de composants existants pour le système de base, permet de se focaliser sur sa valeur ajoutée On ne réinvente pas une pile réseau, une pile USB, des bibliothèques de base à chaque fois Plateforme «Linux» normale, qui permet aussi de réutiliser les compétences Composants de bonne qualité Mais il faut bien les choisir : solidité de la communauté, qualité du composant, etc. Contrôle complet sur les composants, modifications sans contraintes Un aspect très important dans le domaine de l'embarqué, pour pouvoir intégrer autant que nécessaire, et corriger des problèmes en dépendant le moins possible de fournisseurs extérieurs 6

Avantages Grande modularité et configurabilité des composants Permet de faire un système entièrement sur mesure et répondre à des besoins et contraintes variés Support de la communauté: tutoriels, listes La communauté ne va pas développer le produit à votre place. Mais en contribuant à la communauté, celle ci vous le rendra en aide et conseil Faible coût, et notamment pas de royalties par unité vendue Peut être capital quand le nombre d'unités produite est très grand Ne pas négliger les coûts d'ingénérie, de formation, etc. Potentiellement moins de problèmes juridiques Quelques licences couvrent 95% des logiciels libres Accès plus facile aux logiciels et outils 7

Produits grand public GPS Tomtom et Garmin Routeurs personnels Linksys, Freebox, Livebox PDA Zaurus, Nokia N8x0 Téléviseurs, camescopes, lecteurs de DVDs Sony, Phillipps Stockage réseau, disques durs multimédia Téléphone Nokia N900, OpenMoko, Palm Pre Android est du «faux» Linux embarqué 8

Embarqué? 9

Domaine industriel Utilisation dans des domaines extrêmement variés Quelques exemples... 10

Éolien 11

Parc mètre 12

Terminal de paiement 13

Déneigement 14

Ferroviaire 15

Avion 16

Derrière... 17

Architecture de base Application Application Outils Bibliothèque Bibliothèque Bibliothèque Bibliothèque standard C Noyau Linux Bootloader Matériel 18

Matériel pour l'embarqué Le matériel des systèmes embarqués est souvent différent de celui d'un système classique Architecture processeur différente. Souvent ARM, MIPS ou PowerPC. x86 est aussi utilisé. Stockage sur mémoire Flash, de type NOR ou NAND, de capacité souvent relativement réduite (quelques Mo à quelques centaines de Mo) Capacité mémoire réduite (quelques Mo à quelques dizaines de Mo) De nombreux bus d'interconnexion peu courants sur le desktop: I2C, SPI, SSP, CAN, etc. Cartes de développement à partir d'une centaine d'euros Souvent utilisées comme base pour le design final de la carte qui sera utilisée 19

Besoins minimaux Un processeur supporté par le compilateur gcc et le noyau Linux Processeur 32 bit Les processeurs sans MMU sont également supportés, au travers du projet uclinux Quelques mega octets de RAM, à partir de 4 Mo, 8 Mo sont nécessaires pour pouvoir faire vraiment quelque chose. Quelques mega octets de stockage, à partir de 2 Mo, 4 Mo pour faire vraiment quelque chose. Linux n'est donc pas fait pour les petits micro contrôleurs qui ne possèdent que quelques dizaines ou centaines de Ko de Flash et de RAM Sur le métal, pas d'os Systèmes réduits, type FreeRTOS, RTEMS, etc. 20

Chaîne de cross compilation L'outil indispensable pour le développement embarqué sur des architectures nonx86. Contient des outils S'exécutant sur une machine hôte (la machine du développeur, généralement x86) Générant/manipulant du code pour machine cible (généralement non x86) «Outils binaires» Binutils Ld, as, nm, readelf, objdump, etc. Bibliothèque standard C glibc, uclibc ou eglibc Compilateur C/C++ gcc Bibliothèques mathématiques gmp, mpfr Débogueur gdb 21

Bootloader Sur PC : LILO ou Grub Le BIOS fait une bonne partie du travail et met à disposition du bootloader des routines pour le chargement de données depuis le disque Sur les architectures embarquées, pas de BIOS Le bootloader doit tout faire, y compris l'initialisation du contrôleur mémoire Bootloader le plus courant: U Boot Très portable Nombreux drivers Nombreuses fonctionnalités (shell, scripting, etc.) 22

Noyau Linux Composant essentiel d'un système embarqué Les éléments de base du système: gestion des processus, de la mémoire, systèmes de fichiers, protocoles réseau, etc. Contient les pilotes pour la plupart des périphériques Le noyau distingue trois niveaux pour le support du matériel embarqué L'architecture: ARM, MIPS, PowerPC Le processeur: Samsung SC2442 par ex. La machine: OpenMoko Freerunner 23

Noyau Linux Le noyau est le plus souvent porté sur une carte par le vendeur de celle ci, sinon il faut s'adresser à une société spécialisée, ou mettre les mains dans le camboui. Un fichier de configuration est fourni pour chaque machine, il est personnalisable Après compilation, le noyau c'est Une image binaire (le noyau lui même), le plus souvent compressée, d'une taille de ~600 Ko à plusieurs Mo. C'est cette image qui est chargée et exécutée par le bootloader Optionnellement des modules noyau Adaptations particulières à l'embarqué Temps réel Gestion de l'énergie Stockage 24

Bibliothèque standard C La bibliothèque de base qui s'intercale entre d'un coté toutes les autres bibliothèques et applications et d'un autre coté le noyau Elle fait partie de la chaîne de cross compilation Trois solutions GNU Libc uclibc eglibc Avec la libc sur un système embarqué, on a déjà une API de programmation riche pour des applications non graphiques Threads, IPC, entrées sorties, réseau, etc. 25

Busybox Besoin d'un ensemble d'outils de base pour la cible cp, ls, mv, mkdir, rm, tar, mknod, wget, grep, sed et tous les autres Une solution: utiliser les outils GNU classiques fileutils, coreutils, tar, wget, etc. Inconvénient: beaucoup d'outils, pas conçus pour l'embarqué Une meilleure solution: Busybox Tous les outils dans un seul programme binaire Des outils aux fonctionnalités réduites... et à taille réduite Extrêmement configurable Des liens symboliques pour les utiliser comme d'habitude http://www.busybox.net Utilisé dans de très nombreux de produits du marché 26

Bibliothèques et outils En théorie, toutes les bibliothèques et tous les outils libres peuvent être cross compilés et utilisés sur une plateforme embarquée Une fois le système en place, c'est juste du Linux! Des milliers de composants à sélectionner et à réutiliser : bibliothèques graphiques, bibliothèques et outils réseau, composants système, bibliothèques multimédia, langages, etc. En pratique, la compilation croisée n'est pas toujours aisée, car pas prévue par les développeurs originaux Difficulté d'intégration Des outils plus spécifiquement destinés aux plateformes limitées 27

Outils de construction Plusieurs approches pour la construction d'un système embarqué À la main Pénible, peu reproductible, difficulté de trouver les bonnes options, d'appliquer les bons patches, etc. Par des outils de construction Buildroot OpenEmbedded PTXdist Par des distributions Gentoo Embedded Debian Embedded 28

Tâches Réalisation du Board Support Package (BSP) Adaptation du chargeur de démarrage et du noyau à la plateforme matérielle. Permet ensuite de faire fonctionner n'importe quel système Linux Intégration du système Selon l'application ciblée par le système, intégration d'un certain nombre de composants: bibliothèques, applications, etc. Développement de l'application Un développement applicatif Linux traditionnel, en reposant sur les briques sélectionnées 29

Applications industrielles Dans de nombreuses applications industrielles, le système est «seulement» chargé de contrôler un équipement et de communiquer avec l'extérieur Un tel système comporte en général relativement peu de composants : Noyau BusyBox Bibliothèque standard Applications reposant directement sur la bibliothèque standard C, parfois utilisant les possibilités temps réel du noyau Parfois un serveur Web pour le contrôle à distance, ou unn autre serveur implémentant un protocole spécifique 30

Cadre photo numérique Exemple pris d'une conférence de Matt Porter, Embedded Alley à ELC 2008 Matériel: SoC ARM avec DSP, audio, LCD 800x600, MMC/SD, NAND, boutons, haut parleurs Le cadre photo doit pouvoir Afficher des photos à l'écran Détecter l'insertion de cartes SD et notifier les applications, de manière à ce qu'elles puissent afficher les photos présentes sur la carte Interface 3D moderne avec transitions Navigation avec les boutons Lecture audio (MP3, tags ID3, playlist) Redimensionnement et rotation des photos 31

Cadre photo : composants (1) Système de base Composants présents dans l'intégralité des systèmes Linux embarqué Chargeur de démarrage U Boot Noyau Linux, avec notamment les pilotes pour SD/MMC, framebuffer, son, boutons Busybox Système de construction: OpenEmbedded 32

Cadre photo : composants (2) Gestion des évènements pour l'insertion de carte SD Udev, qui reçoit des évènements du noyau, créé des fichiers périphériques et envoie des évènements à HAL HAL, qui maintient une base de données des périphériques disponibles et offre une API via D Bus D Bus pour connecter HAL avec l'application. L'application s'inscrit aux évènements HAL via D Bus et est notifié lorsqu'ils surviennent 33

Cadre photo : composants (3) Affiche d'images libjpeg pour décoder les images jpegtran pour le redimensionnement et la rotation FIM (Fbi Improved) pour le dithering Support MP3 libmad pour la lecture libid3 pour la lecture des tags ID3 libm3u pour le support des listes de lecture Utilisation de composants fournis par le vendeur du CPU pour utiliser le DSP 34

Cadre photo : composants (4) Interface 3D Vincent, une implémentation libre d'opengl ES Clutter, une bibliothèque fournissant une API de haut niveau pour l'implémentation d'applications 3D L'application elle même Gère les évènements liés à l'insertion/retrait de média Utilise les bibliothèques JPEG pour décoder et effectuer le rendu des images Reçoit des évènements des boutons Affiche une interface 3D basée sur OpenGL/Clutter Gère une configuration définie par l'utilisateur Joue la musique avec les bibliothèques MP3 Affiche un diaporama des photos 35

En savoir plus Supports de formation de Free Electrons, disponible sous licence libre Intégration de système Linux embarqué Développement de code noyau Livre «Building Embedded Linux Systems», O'Reilly, 2008 Livre «Embedded Linux Primer», Prentice Hall, 2006 Embedded Linux Wiki, http://elinux.org Conférences ELC et ELCE, vidéos mises à disposition par Free Electrons Assez peu de littérature en français Articles dans Linux Magazine Livre «Linux Embarqué» par Pierre Ficheux, un peu obsolète car publié en 2002 36