Linux pour l embarqué 1
Plan du cours Qu est-ce qu un système embarqué? Les solutions embarquées «classiques» Linux embarqué : une solution attrayante? Les offres Linux embarqué Méthodologie de création d un système Linux embarqué Implantation d un Linux embarqué sur une cible 2
Qu est-ce qu un système embarqué? - Définition - Caractéristiques générales - Domaines d applications - Exemples 3
Qu est-ce qu un système embarqué? Définition - Un système embarqué (embedded system) est un système ou un périphérique informatique qui assure une fonction dédiée et qui est généralement conçu pour être utilisé avec une application logicielle spécifique - Synonyme : système enfoui ex : Tableau de bord d un véhicule géré par un programme embarqué - Les systèmes embarqués sont en général utilisés dans un environnement matériel contraint 4
Qu est-ce qu un système embarqué? Caractéristiques générales - Un système embarqué doit être : - spécifique - fiable - sécurisé - optimisé - modulaire - adaptable - configurable - maintenable dans le temps 5
Qu est-ce qu un système embarqué? Domaines d applications - Produits de grande consommation - Electronique grand public - Automobile - Télécommunications - Contrôle de processus industriels - Avionique, spatial - Systèmes médicaux - Réseaux et périphériques informatiques 6
Qu est-ce qu un système embarqué? Exemples (1) - Fonctionnalités embarquées dans le téléphone portable : 7
Qu est-ce qu un système embarqué? Exemples (2) - Fonctionnalités embarquées dans l automobile de demain : Ecran Ecran de vision de nuit Caméra Antenne Récepteur GPS Emetteur-récepteur infrarouge Badge hyperfréquence Actionneur d accélérateur Alternateur Télémètre laser Actionneur de direction Batterie supplémentaire Calculateur de navigation Calculateur d interface homme/machine Calculateur de direction Calculateur de traitement d images Projecteurs infrarouges Actionneur des freins 8
Qu est-ce qu un système embarqué? Empreinte mémoire des systèmes embarqués - Empreinte mémoire en fonction du type d application embarquée : Produit Serveur Desktop PC emb. Emb. Gros Emb. Moyen Emb. Typique Profondément enfoui RAM 128 ou + 32 à 128 16 à 64 8 à 32 2 à 8 0.1 à 4 Moins de 0.1 En Mo ROM En Mo Plusieurs milliers Plusieurs centaines 64 ou plus 8 à 32 2 à 8 0.5 à 2 0.1 à 0.5 «Linux embarqué» Pierre Ficheux, Edt Eyrolles, 2000 9
Les solutions embarquées «classiques» - VxWorks - QNX - psos+ - µc/os II - Windows CE - Nucleus - ecos http://www.windriver.com http://www.qnx.com http://www.windriver.com http://www.ucos-ii.com http://www.microsoft.com/windows/embedded http://www.acceleratedtechnology.com http://ecos.sourceware.org 10
Les solutions embarquées «classiques» Windows CE - Distribué par Microsoft - Caractéristiques : - Variante du système d exploitation Windows pour les systèmes embarqués - cibles supportées : ARM, MIPS, PowerPC, SH, x86 - conforme à la définition d un OS temps-réel (temps de latence aux interruptions déterministe) - Performances (Pentium 200MHz) : - Temps moyen de changement de contexte : 34.4 µs - Temps moyen de latence aux interruptions : 9.5 µs 11
Les solutions embarquées «classiques» Nucleus - Distribué par Accelerated Technology Inc. - Caractéristiques : - Système d exploitation temps-réel - Cibles supportées : 68k, x86, ARM, ColdFire, DSP, SH, MIPS, PowerPC, SPARC, MicroBlaze, Xscale, - Gratuit et livré avec les sources - Le noyau inclut : - une couche TCP/IP - une interface graphique - un navigateur Web - un serveur HTTP 12
Les solutions embarquées «classiques» ecos - ecos : embedded Configurable Operating System - Système d exploitation temps-réel conçu pour les applications embarquées - cibles supportées : ARM, CalmRISC, FR-V, H8, IA32, M68K, Matsushita AM3x, MIPS, NEC V8xx, PowerPC, SPARC, SuperH -Gratuit - Depuis mai 2002 : distribué sous la ecos Licence (GPL-compatible Free Software License) As a special exception, if other files instantiate templates or use macros or inline functions from this file, or you compile this file and link it with other works to produce a work based on this file, this file does not by itself cause the resulting work to be covered by the GNU General Public License. However the source code for this file must still be made available in accordance with section (3) of the GNU General Public License. This exception does not invalidate any other reasons why a work based on this file might be covered by the GNU General Public License 13
Linux embarqué, une solution attrayante? - La position des industriels vis-à-vis du marché - Linux pour l embarqué - Positionnement de Linux sur le marché de l embarqué 14
Linux embarqué : une solution attrayante? La position des industriels vis-à-vis du marché Position vis-à-vis des licences propriétaires - Consentez-vous à payer des royalties pour un OS embarqué? en 2003 en 2004 en 2005 Snapshot of the Embedded Linux market 15
Linux embarqué : une solution attrayante? La position des industriels vis-à-vis du marché Position vis-à-vis des services offerts - Consentez-vous à payer pour un support/service de développement? en 2003 en 2004 en 2005 Snapshot of the Embedded Linux market 16
Linux embarqué : une solution attrayante? La position des industriels vis-à-vis du marché Facteurs influant sur le choix d un OS embarqué Snapshot of the Embedded Linux market - March, 2004 17
Linux embarqué : une solution attrayante? La position des industriels vis-à-vis du marché Facteurs influant sur le choix de Linux pour l embarqué 18
Linux embarqué : une solution attrayante? Linux pour l embarqué Quelques dates clés - 1999 : Linux embarqué apparaît pour la 1ère fois officiellement à une exposition Linux World - 2000 : création du consortium Linux embarqué (Embedded Linux Consortium) regroupant : - des éditeurs de distributions Linux - des éditeurs de systèmes temps-réel propriétaires - des fabricants de composants 19
Linux embarqué : une solution attrayante? Linux pour l embarqué Description - Linux embarqué est une adaptation du noyau Linux à un système embarqué - Les fonctionnalités du noyau Linux embarqué sont adaptées aux capacités du système embarqué : - Moins de mémoire requise - Moins de services disponibles - Boot depuis une mémoire ROM (FLASH) - Pas de clavier ou de souris requis - Une version de Linux embarqué peut être configurée «à la carte» pour fonctionner sur une plateforme donnée 20
Linux embarqué : une solution attrayante? Linux pour l embarqué Points forts de Linux pour l embarqué (1) - Fiabilité - Faible coût - Performances - Adaptabilité - Configurabilité - Portabilité -Ouverture - Modularité 21
Linux embarqué : une solution attrayante? Linux pour l embarqué Points forts de Linux pour l embarqué (2) 22
Linux embarqué : une solution attrayante? Linux pour l embarqué Points faibles de Linux pour l embarqué (1) - Crédibilité de l open-source - Méconnaissance des licences - Support temps-réel - Outils de développement - Support technique 23
Linux embarqué : une solution attrayante? Linux pour l embarqué Points faibles de Linux pour l embarqué (2) 24
Linux embarqué : une solution attrayante? Positionnement de Linux sur le marché de l embarqué Distribution des parts du marché - Quel système avez-vous utilisé pour vos applications embarquées ces 2 dernières années? Lequel utiliserez-vous ces 2 prochaines années? Snapshot of the Embedded Linux market - May, 2005 25
Linux embarqué : une solution attrayante? Positionnement de Linux sur le marché de l embarqué La place croissante de Linux embarqué - Utilisation (actuelle et envisagée) de Linux sur ces 5 dernières années : Snapshot of the Embedded Linux market - May, 2005 26
Linux embarqué : une solution attrayante? Positionnement de Linux sur le marché de l embarqué La progression de l usage de Linux embarqué - Croissance estimée du marché Linux embarqué : VDC (Venture Development Corporation) market research - August, 2004 27
Les offres Linux embarqué - Les distributions Linux classiques - Les distributions Linux embarqué commerciales - Les distributions Linux embarqué libres - La répartition des distributions sur le marché - Quelques exemples de produits utilisant Linux 28
Les offres Linux embarqué Les distributions Linux classiques Les distributions classiques - Installation d une version «édulcorée» d une distribution classique pour de l embarqué haute disponibilité (taille RAM > 64Mo, taille ROM >150Mo) - Debian http://www.debian.org - RedHat http://www.fr.redhat.com - Mandrake http://www.linux-mandrake.com - SuSe http://www.suse.de/fr - Slackware http://www.slackware.com 29
Les offres Linux embarqué Les distributions Linux embarqué commerciales Les revendeurs commerciaux en Linux embarqué - Montavista (Montavista Linux) - Metrowerks (Creation Suite for Linux) - LynuxWorks (BlueCat - BlueCat RT) - RedHat (Embedded) - FSMLabs (RTLinuxPro) - TimeSys (Linux RT) - Koan (Klinux) - REDSonic (REDICE-Linux) - VxWorks (Commercial Grade Linux) 30
Les offres Linux embarqué Les distributions Linux embarqué commerciales Répartition de l usage des distributions Linux commerciales Snapshot of the Embedded Linux market - May, 2005 31
Les offres Linux embarqué Les distributions Linux embarqué libres Les distributions Linux embarqué libres - RTAI - RTLinuxFree - KURT - OpenEmbedded - µclinux - Embedded Debian Project - PeeWee Linux - EtLinux 32
Les offres Linux embarqué Les distributions Linux embarqué libres Répartition de l usage des distributions Linux libres Snapshot of the Embedded Linux market - May, 2005 33
Les offres Linux embarqué La répartition des distributions sur le marché Répartition de l usage de l ensemble des distributions Linux Snapshot of the Embedded Linux market - May, 2005 34
Les offres Linux embarqué Quelques exemples de produits utilisant Linux Produits à base de Linux embarqué (1) - Phatnoise PhatBox -- un autoradio avec disque dur - D-Link MediaLounge DSM-320 -- un lecteur multimédia sans fil - iriver PMC-120 -- un lecteur multimedia portable - Linksys Wireless-G WRT54G -- Routeur sans fil-g à haut débit 35
Les offres Linux embarqué Quelques exemples de produits utilisant Linux Produits à base de Linux embarqué (2) - Nokia 770 Internet Tablet -- un PDA-tablet PC - Motorola E895 -- un téléphone mobile tri-bande GSM, GPRS et EDGE - Tivo Series 2 -- un magnétoscope numérique -TomTom GO -- un navigateur GPS pour automobile 36
Méthodologie de création d un Linux embarqué * * d après «Linux embarqué» Pierre Ficheux, Editions Eyrolles, 2000 - Rappels sur la structure de Linux - Méthodologie générale - Construction du système de base 37
Méthodologie de création d un Linux embarqué Rappels sur la structure de Linux Généralités - Un système Linux est composé de 3 parties : -le noyau (kernel) - la libc, bibliothèque principale pour les applications -les applications (ou commandes) - Le système Linux est chargé en mémoire grâce à un logiciel situé dans le MBR : -le bootstrap, programme (chargeur) de démarrage 38
Méthodologie de création d un Linux embarqué Rappels sur la structure de Linux La séquence de démarrage - Elle est toujours la même : - chargement du système par un chargeur de démarrage (ex: LILO, GRUB) - chargement du noyau Linux - lancement du programme d initialisation /sbin/init - exploration du fichier /etc/inittab contenant le chemin d accès au script de démarrage final du système 39
Méthodologie de création d un Linux embarqué Rappels sur la structure de Linux Les répertoires principaux - /bin : principales commandes utilisateur - /boot : noyaux et chargeurs du système - /dev : pseudo-fichiers des pilotes (devices) - /etc : fichiers de configuration - /lib : bibliothèques partagées et modules - /mnt : points de montages - /opt : applications externes - /sbin : principales commandes système - /tmp : fichiers temporaires - /usr : hiérarchie secondaire - /var : données variables 40
Méthodologie de création d un Linux embarqué Méthodologie générale Différentes méthodes de construction - Distribution standard - Utilisation d une distribution GNU/Linux du commerce - Pb : espace disque conséquent (minimum 100Mo) - LFS : Linux From Scratch - Construction du système GNU/Linux en se basant uniquement sur les sources des programmes - Investissement important - LFS sur la base d une distribution standard - Construction du système en se basant sur les applications d une distribution standard 41
Méthodologie de création d un Linux embarqué Construction du système de base LFS sur la base d une distribution standard - Etapes clés de construction à partir d une distribution standard : 1) Assimiler le fonctionnement du système Linux 2) Extraire les éléments essentiels du système 3) Assemblage des composants pour la construction de la cible finale 42
Méthodologie de création d un Linux embarqué Construction du système de base Les différentes phases de construction - Création des répertoires - Création des nœuds sur /dev - Remplissage de /bin et /sbin - Création des bibliothèques sur /lib - Remplissage du répertoire /etc - Configuration du noyau - Compilation du noyau - Installation du noyau 43
Méthodologie de création d un Linux embarqué Construction du système de base Création des répertoires - Création d un certain nombre de répertoires indispensables : /bin /boot /dev /etc /lib /proc /root /sbin /tmp /usr /var - Création d un certain nombre de répertoires utiles : /usr/lib/kdb/keytables /var/log /var/run /etc/sysconfig 44
Méthodologie de création d un Linux embarqué Construction du système de base Création des nœuds sur /dev - /dev : regroupe les points d entrées (nœuds) vers le matériel : - /dev/cdrom : accès au lecteur CD - /dev/fd0 : accès au lecteur de disquettes - /dev/hdan : accès à la Nième partition du disque dur maître - /dev/hdbn : accès à la Nième partition du disque dur esclave - /dev/sda1 : accès au port USB - /dev/mouse : accès à la souris - /dev/console : accès à un terminal Linux 45
Méthodologie de création d un Linux embarqué Construction du système de base Remplissage de /bin et /sbin - Copie des programmes indispensables au démarrage d un système minimal : /bin/mount /bin/rm /bin/sh /sbin/init /sbin/update 46
Méthodologie de création d un Linux embarqué Construction du système de base Création des bibliothèques sur /lib - Création des bibliothèques partagées utilisées par les commandes précédentes utilisation du script automatique mklibs.sh issu du projet DEBIAN - crée un graphe des dépendances de l arborescence des exécutables et des librairies - crée une version des librairies débarrassée des modules inutiles 47
Méthodologie de création d un Linux embarqué Construction du système de base Remplissage du répertoire /etc - La version minimale du répertoire /etc contient les fichiers suivants : /etc/inittab /etc/rc.d/rc.s /etc/fstab /etc/termcap /etc/lilo.conf 48
Méthodologie de création d un Linux embarqué Construction du système de base Configuration du noyau (1) # make xconfig 49
Méthodologie de création d un Linux embarqué Construction du système de base Configuration du noyau (2) - Configuration générale : 50
Méthodologie de création d un Linux embarqué Construction du système de base Configuration du noyau (3) - Choix du processeur cible : 51
Méthodologie de création d un Linux embarqué Construction du système de base Configuration du noyau (4) - Choix des systèmes de fichiers supportés : 52
Méthodologie de création d un Linux embarqué Construction du système de base Compilation du noyau - Construction des dépendances des fichiers : # make dep - Compilation du noyau : # make bzimage - Compilation des modules chargeables dynamiquement : # make modules 53
Méthodologie de création d un Linux embarqué Construction du système de base Installation du noyau - Installation des modules chargeables dynamiquement : # make modules_install - Installation du noyau dans le répertoire /boot : - copie du noyau compressé bzimage - copie du fichier System.map (listes des adresses internes du noyau) 54
Implantation d un Linux embarqué sur une cible - Configuration du chargeur de démarrage LILO - Transfert du Linux embarqué sur la cible - Création d une disquette de démarrage - Implantation finale sur le système cible 55
Implantation d un Linux embarqué sur une cible Configuration du chargeur de démarrage LILO Configuration de LILO (LInux LOader) - LILO est configurable par un fichier unique /etc/lilo.conf : boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 default=monlinuxembarque image=/boot/bzimage label=monlinuxembarque read-only root=/dev/hda2 - La validation de la configuration s effectue par l appel de commande /sbin/lilo 56
Implantation d un Linux embarqué sur une cible Transfert du système sur la cible Transfert du Linux embarqué sur la cible - Copie de l arborescence créée sur le système hôte, vers le système embarqué : # cp Rdp source destination Gestion correcte des fichiers spéciaux (/dev) Préservation des liens symboliques Conservation des caractéristiques des fichiers originaux 57
Implantation d un Linux embarqué sur une cible Création d une disquette de démarrage Création d une disquette bootable - Copie de l image du noyau sur la disquette : # dd < /boot/bzimage > /dev/fd0 - Spécification de l emplacement du système de fichier principal sur le système embarqué : # rdev /dev/fd0 /dev/hda3 - Montage du système de fichier principal en lecture seule : # rdev R /dev/fd0 1 58
Implantation d un Linux embarqué sur une cible Implantation finale sur le système cible Implantation d un système cible bootable - Ecriture de la configuration dans le secteur de démarrage du système cible : # lilo - La création et l implantation du système Linux embarqué sont terminées! 59
Références - Portail communautaire général : http://www.realtimelinux.org - Portail Linux embarqué : http://www.linuxdevices.com - Portail plus jeune : http://www.realtimelinuxfoundation.org -RTAI :http://aero.polimi.it/projects/rtai - Portail communautaire RTAI : http://www.rtai.org - RTLinuxPro : http://www.fsmlabs.com - Portail communautaire RTLinuxFree : http://www.rtlinuxfree.com - Linux Trace Toolkit : http://opersys.com/ltt - Logiciel Libre : http://www.openresources.com 60