linux pour l’embarqué - membres du departement...
TRANSCRIPT
1
Linux pour l’embarqué
Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
2
Plan du cours
Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Qu’est-ce qu’un système embarqué ?
Les solutions embarquées « classiques »
Linux embarqué : une solution attrayante ?
Méthodologie de création d’un système Linux embarqué
Implantation d’un Linux embarqué sur une cible
Les offres Linux embarqué
3Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Qu’est-ce qu’un système embarqué ?
- Définition
- Caractéristiques générales
- Domaines d’applications
- Exemples
4Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
- 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
- Les systèmes embarqués sont en général utilisés dans un environnement matériel contraint
ex : Tableau de bord d’un véhicule géré par un programme embarqué
Qu’est-ce qu’un système embarqué ?
Définition
5Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
- Un système embarqué doit être :
- spécifique
- fiable
- sécurisé
- optimisé
- modulaire
- adaptable
- configurable
- maintenable dans le temps
Qu’est-ce qu’un système embarqué ?
Caractéristiques générales
6Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
- Produits de grande consommation
Qu’est-ce qu’un système embarqué ?
Domaines d’applications
- Electronique grand public
- Automobile
- Télécommunications
- Avionique, spatial
- Réseaux et périphériques informatiques
- Contrôle de processus industriels
- Systèmes médicaux
7Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
- Fonctionnalités embarquées dans le téléphone portable :
Qu’est-ce qu’un système embarqué ?
Exemples (1)
8Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
- Fonctionnalités embarquées dans l’automobile de demain :
Qu’est-ce qu’un système embarqué ?
Exemples (2)
Télémètre laser
Alternateur
Actionneur d’accélérateur
Badge hyperfréquence
Ecran
Caméra
Ecran de vision de nuit
Antenne
Récepteur GPS
Emetteur-récepteurinfrarouge
Batterie supplémentaire
Calculateur de navigation
Calculateur d’interfacehomme/machine
Calculateur de direction
Actionneur de direction
Calculateur de traitement d’images
Actionneur des freinsProjecteurs infrarouges
9Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
- Empreinte mémoire en fonction du type d’application embarquée :
Qu’est-ce qu’un système embarqué ?
Empreinte mémoire des systèmes embarqués
0.1 à 0.50.5 à 22 à 88 à 3264 ou plusPlusieurs centaines
Plusieurs milliers
ROMEn Mo
Moins de 0.10.1 à 42 à 88 à 3216 à 6432 à 128128 ou +RAMEn Mo
Profondément enfoui
Emb. Typique
Emb. Moyen
Emb. Gros
PC emb.DesktopServeurProduit
« Linux embarqué » – Pierre Ficheux, Edt Eyrolles, 2000
10Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Les solutions embarquées « classiques »
- VxWorks
- Windows CE
- pSOS+
- QNX
- Nucleus
- µC/OS II
- eCOS
http://www.windriver.com
http://www.qnx.com
http://www.ucos-ii.com
http://www.microsoft.com/windows/embedded
http://www.acceleratedtechnology.com
http://ecos.sourceware.org
http://www.windriver.com
11Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
- Distribué par Microsoft
Les solutions embarquées « classiques »
Windows CE
- Performances (Pentium 200MHz) :
- Temps moyen de changement de contexte : 34.4 µs- Temps moyen de latence aux interruptions : 9.5 µs
- 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)
12Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
- Distribué par Accelerated Technology Inc.
Les solutions embarquées « classiques »
Nucleus
- Caractéristiques :
- Système d’exploitation temps-réel
- Gratuit et livré avec les sources
- Cibles supportées : 68k, x86, ARM, ColdFire, DSP, SH, MIPS, PowerPC, SPARC, MicroBlaze, Xscale, …
- Le noyau inclut :
- une couche TCP/IP- une interface graphique- un navigateur Web- un serveur HTTP
13Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
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
- Gratuit
- cibles supportées : ARM, CalmRISC, FR-V, H8, IA32, M68K, MatsushitaAM3x, MIPS, NEC V8xx, PowerPC, SPARC, SuperH
- 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
14Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
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é
15Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Linux embarqué : une solution attrayante ?
Position vis-à-vis des licences propriétaires
Snapshot of the Embedded Linux market
La position des industriels vis-à-vis du marché
- Consentez-vous à payer des royalties pour un OS embarqué ?
en 2005en 2004en 2003
16Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Linux embarqué : une solution attrayante ?
Position vis-à-vis des services offerts
Snapshot of the Embedded Linux market
La position des industriels vis-à-vis du marché
- Consentez-vous à payer pour un support/service de développement ?
en 2005en 2004en 2003
17Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Linux embarqué : une solution attrayante ?
Facteurs influant sur le choix d’un OS embarqué
La position des industriels vis-à-vis du marché
Snapshot of the Embedded Linux market - March, 2004
18Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Linux embarqué : une solution attrayante ?
Facteurs influant sur le choix de Linux pour l’embarqué
La position des industriels vis-à-vis du marché
19Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Linux embarqué : une solution attrayante ?
Quelques dates clés
Linux pour l’embarqué
- 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
20Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Linux embarqué : une solution attrayante ?
Description
Linux pour l’embarqué
- 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
21Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Linux embarqué : une solution attrayante ?
Points forts de Linux pour l’embarqué (1)
Linux pour l’embarqué
- Faible coût
- Fiabilité
- Performances
- Ouverture
- Portabilité
- Modularité
- Adaptabilité
- Configurabilité
22Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Linux embarqué : une solution attrayante ?
Points forts de Linux pour l’embarqué (2)
Linux pour l’embarqué
23Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Linux embarqué : une solution attrayante ?
Points faibles de Linux pour l’embarqué (1)
Linux pour l’embarqué
- Méconnaissance des licences
- Crédibilité de l’open-source
- Support technique
- Support temps-réel
- Outils de développement
24Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Linux embarqué : une solution attrayante ?
Points faibles de Linux pour l’embarqué (2)
Linux pour l’embarqué
25Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Linux embarqué : une solution attrayante ?
Distribution des parts du marché
Positionnement de Linux sur le marché de l’embarqué
- 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
26Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Linux embarqué : une solution attrayante ?
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
Positionnement de Linux sur le marché de l’embarqué
27Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Linux embarqué : une solution attrayante ?
La progression de l’usage de Linux embarqué
- Croissance estimée du marché Linux embarqué :
VDC (Venture Development Corporation) market research - August, 2004
Positionnement de Linux sur le marché de l’embarqué
28Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
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
29Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Les offres Linux embarqué
Les distributions classiques
Les distributions Linux classiques
- 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
- Installation d’une version « édulcorée » d’une distribution classique pour del’embarqué haute disponibilité (taille RAM > 64Mo, taille ROM >150Mo)
30Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Les offres Linux embarqué
Les revendeurs commerciaux en Linux embarqué
Les distributions Linux embarqué commerciales
- 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)
31Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Les offres Linux embarqué
Répartition de l’usage des distributions Linux commerciales
Les distributions Linux embarqué commerciales
Snapshot of the Embedded Linux market - May, 2005
32Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
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
33Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Les offres Linux embarqué
Répartition de l’usage des distributions Linux libres
Les distributions Linux embarqué libres
Snapshot of the Embedded Linux market - May, 2005
34Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Les offres Linux embarqué
Répartition de l’usage de l’ensemble des distributions Linux
La répartition des distributions sur le marché
Snapshot of the Embedded Linux market - May, 2005
35Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Les offres Linux embarqué
Produits à base de Linux embarqué (1)
Quelques exemples de produits utilisant Linux
- 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
36Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Les offres Linux embarqué
Produits à base de Linux embarqué (2)
Quelques exemples de produits utilisant Linux
- Motorola E895 -- un téléphone mobile tri-bande GSM, GPRS et EDGE
- Nokia 770 Internet Tablet -- un PDA-tablet PC
- Tivo Series 2 -- un magnétoscope numérique
-TomTom GO -- un navigateur GPS pour automobile
37Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Méthodologie de création d’un Linux embarqué *
- Méthodologie générale
- Rappels sur la structure de Linux
- Construction du système de base
* d’après « Linux embarqué » – Pierre Ficheux, Editions Eyrolles, 2000
38Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Méthodologie de création d’un Linux embarqué
Généralités
Rappels sur la structure de Linux
- 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 bootstrap, programme (chargeur) de démarrage
- Le système Linux est chargé en mémoire grâce à un logiciel situé dans le MBR :
39Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Méthodologie de création d’un Linux embarqué
La séquence de démarrage
Rappels sur la structure de Linux
- 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
- Elle est toujours la même :
40Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Méthodologie de création d’un Linux embarqué
Les répertoires principaux
Rappels sur la structure de Linux
- /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
41Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Méthodologie de création d’un Linux embarqué
Différentes méthodes de construction
Méthodologie générale
- Distribution standard
- LFS : Linux From Scratch
- LFS sur la base d’une distribution standard
- Utilisation d’une distribution GNU/Linux du commerce
- Pb : espace disque conséquent (minimum 100Mo)
- Construction du système GNU/Linux en se basant
uniquement sur les sources des programmes
- Investissement important
- Construction du système en se basant sur les applications d’une
distribution standard
42Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Méthodologie de création d’un Linux embarqué
LFS sur la base d’une distribution standard
Construction du système de base
- 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
43Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Méthodologie de création d’un Linux embarqué
Les différentes phases de construction
Construction du système de base
- 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
44Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Méthodologie de création d’un Linux embarqué
Création des répertoires
Construction du système de base
- 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
45Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Méthodologie de création d’un Linux embarqué
Création des nœuds sur /dev
Construction du système de base
- /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
46Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Méthodologie de création d’un Linux embarqué
Remplissage de /bin et /sbin
Construction du système de base
- Copie des programmes indispensables au démarrage d’un système minimal :
/sbin/init
/sbin/update
/bin/mount
/bin/rm
/bin/sh
47Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Méthodologie de création d’un Linux embarqué
Création des bibliothèques sur /lib
Construction du système de base
- 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
48Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Méthodologie de création d’un Linux embarqué
Remplissage du répertoire /etc
Construction du système de base
- La version minimale du répertoire /etc contient les fichiers suivants :
/etc/termcap
/etc/inittab
/etc/rc.d/rc.S
/etc/fstab
/etc/lilo.conf
49Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Méthodologie de création d’un Linux embarqué
Configuration du noyau (1)
Construction du système de base
# make xconfig
50Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Méthodologie de création d’un Linux embarqué
Configuration du noyau (2)
Construction du système de base
- Configuration générale :
51Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Méthodologie de création d’un Linux embarqué
Configuration du noyau (3)
Construction du système de base
- Choix du processeur cible :
52Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Méthodologie de création d’un Linux embarqué
Configuration du noyau (4)
Construction du système de base
- Choix des systèmes de fichiers supportés :
53Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Méthodologie de création d’un Linux embarqué
Compilation du noyau
Construction du système de base
- Construction des dépendances des fichiers :
- Compilation du noyau :
- Compilation des modules chargeables dynamiquement :
# make dep
# make bzImage
# make modules
54Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Méthodologie de création d’un Linux embarqué
Installation du noyau
Construction du système de base
- Installation des modules chargeables dynamiquement :
- Installation du noyau dans le répertoire /boot :
# make modules_install
- copie du noyau compressé bzImage
- copie du fichier System.map (listes des adresses internes du noyau)
55Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Implantation d’un Linux embarqué sur une cible
- Transfert du Linux embarqué sur la cible
- Configuration du chargeur de démarrage LILO
- Création d’une disquette de démarrage
- Implantation finale sur le système cible
56Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Implantation d’un Linux embarqué sur une cible
Configuration de LILO (LInux LOader)
Configuration du chargeur de démarrage LILO
- 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
57Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
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
58Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Implantation d’un Linux embarqué sur une cible
Création d’une disquette bootable
Création d’une disquette de démarrage
- 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
# rdev –R /dev/fd0 1
- Montage du système de fichier principal en lecture seule :
59Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
Implantation d’un Linux embarqué sur une cible
Implantation d’un système cible bootable
Implantation finale sur le système cible
- 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 !
60Module E4 : Systèmes temps-réel Audrey Marchand 2005-2006
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