Vous êtes sur la page 1sur 118
2008 Conception d’un système embarqué pour la supervision des ateliers Projet de Fin d’Etude Réaliser
2008
Conception d’un système
embarqué pour la
supervision des ateliers
Projet de Fin d’Etude
Réaliser par :
YOUSSEF FARES
Encadrer par :
Mr. Laurent Laffont
Mr. Hamdi Abdelaziz
La société TEMIS
L’école national des ingénieurs de
Sousse
Youssef Fares
L’ecole national des ingénieurs de Sousse
07/06/2008
Table de matière 2

Table de matière

2
2
Table de matière 2 ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Table de matière 3

Table de matière

3
3

Remerciement

Avant d’entamer ce rapport de projet de fin d’études, je tenais à exprimer mon sincère gratitude envers tous ceux qui m’ont aidé ou ont participé au bon déroulement de ce projet. Je tenais à remercier :

- Toute ma famille qui m’a été toujours la garante d’une existence paisible et d’un avenir radieux, mon père, ma mère, mon frère Idris mes sœurs Marieme et Samia.

- Tous ceux qui sont toujours dans mes pensées.

- Ceux qui ont fait de leur mieux pour me soutenir durant ce travail :

Mon oncle Moktar et sa femme Mon oncle Hedi Mes adorables amis : Meher mokadem, Kahled hajaji, Lassed Hajem, Mohamed Brahem, Hamdi Bn-Hdajmbarek

- La société TEMIS qui m’a accueilli. Je devais remercier Mr. Laurent Laffont pour sa générosité, sa compréhension et son aide inestimable et Mr. Laurent Terrier le directeur de l’entreprise. Je suis reconnaissant également à M. Hamdi Abdelaziz, mon encadreur sans oublier tout mes professeurs, dont J’exprimons mes sentiments de gratitude à tous mes professeurs et à tous ceux qui m’ont aidé ou encadré pour m’avoir transmis leur savoir et leur savoir faire dans les meilleures conditions possibles.

leur savoir faire dans les meilleures conditions possibles. ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Table de matière 4 Table de matière Table de matière Table de figures Table des

Table de matière

4
4
Table de matière 4 Table de matière Table de matière Table de figures Table des Images
Table de matière 4 Table de matière Table de matière Table de figures Table des Images

Table de matière

Table de matière Table de figures Table des Images Table de tableaux Introduction Section 1 Présentation

 

4

7

8

8

9

10

Chapitre 1 Présentation de TEMIS et son produit IGM50

10

1 Présentation de TEMIS

10

2 Le produit IGM50

10

Chapitre 2 Le système IGM50

11

1

Principe de fonctionnement

11

2 Le terminale IGM50 Section 2 Présentation et définition des besoins

13

15

chapitre 1.

Le concept IGM2.O : Idée et Objectifs

15

1 L’idée de projet IGM2.0

15

2 L’objectifs de IGM2.0

15

 

2.1

Objectifs

15

2.2

Description de concept IGM2.0 Présentation de terminale IGM2.0

16

chapitre 2.

18

1 Présentation

 

18

2 IGM2.0 est un système embarqué

19

 

2.1.

Caractéristiques de systèmes embarqués

19

Faible coût Faible consommation Faible encombrement et faible poids Fonctionnement en Temps Réel (Réponse de temps)

19

19

19

19

Environnement

20

2.2.

Architecture générale de IGM2.0

20

Section 3 Outils de développement

22

1

Introduction

 

22

Chapitre 1 Les environnements de développement

22

1

Définitions

 

22

de développement 22 1 Définitions   22 ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Table de matière 5

Table de matière

5
5

2 ELDK- Embedded Linux Development Kit

24

3 Buildroot

24

4 OpenEmbedded

25

5 Poky Linux

25

Pourquoi poky ?

26

Chapitre 2 La carte et les autres outils

26

1 La carte AT91SAM9260-EK

26

2 Les autres outils

27

2.1 QEMU Emulateur L’environnement d’émulation

27

2.2 SVN un logiciel de gestion de versions

28

2.3 NFS

28

Section 4 Solutions techniques

29

chapitre 1.

Linux notre système d’exploitation embarqué

29

1 Pour quoi un système d’exploitation

29

2 Pourquoi Linux ?

29

2.1 Prix

29

2.2 "Source code" disponible et gratuit

30

2.3 Beaucoup de pilotages et outils de développement disponibles

30

2.4 Plein d'applications

30

2.5 Support de réseau

30

2.6 La multitude des architecture supporté

30

2.7 Le marché

31

Chapitre 2 Linux un système d’exploitation pour l’embarqué, comment ?

32

1 Introduction

32

2 Architecture de linux

32

2.1 Chargeur de démarrage ou le bootloader

33

2.2 Noyau

33

2.3 Pilotes de périphérique

34

2.4 Système de fichiers

34

2.5 Bibliothèques (Librairies)

34

2.6 Utilitaires de base

34

2.7 Les applications

34

3 Optimisation

34

34 2.7 Les applications 34 3 Optimisation 34 ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Table de matière 6

Table de matière

6
6
 

3.1

L’optimisation de système de fichier

35

3.2

Suppression du swapping

36

3.3

Optimisation de noyau

36

chapitre 2.

Les applications et les paquets nécessaires

38

1 Introduction

38

2 Les applications

38

2.1 BusyBox

38

2.2 TinyLogin

38

 

2.3 Temix –webkit

39

Définitions

39

Pour quoi webkit ?

39

2.4

Serveur web

39

3 Les paquets

39

 

3.1 Base-files

39

3.2 Initscripts

40

3.3 xserver-Kdrive-fbdev

40

 

3.4 nfs-utils

40

 

3.5 libération-fonts

40

 

3.6 Xinit

40

3.7 Netbase

40

3.8 Udev

40

Section 5 Développement

41

1

Introduction

41

Chapitre 1 Construction de linux et les applications embarqués

41

1 Poky, Comment utiliser ?

41

 

1.1 Installation des paquets nécessaires

41

1.2 Téléchargement de Poky

42

1.3 Compiler et exécuter une image

42

2 Le portage de linux

43

 

2.1 Etape 1

43

2.2 Etape2

44

2.3 Etape 3

45

3 Ajout des applications et des paquets

45

3 45 3 Ajout des applications et des paquets 45 ETUDE, CONSEIL ET REALISATION DE SYSTEMES

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Table de figures 7

Table de figures

7
7
 

3.1 Construction de temix-webkit

45

3.2 Configuration de busybox

45

4

Compilation

 

45

Chapitre 2 Programmations web et réseaux

46

1 Programmation web

46

 

1.1 Le Démo web- igm2.0

46

1.2 JavaScript et les raccourcis des boutons

47

1.3 Ajax, récupérer les valeurs des capteurs

47

2 Programmation réseaux

47

Chapitre 3 Configuration de la carte et test

48

1 Configuration de la carte

48

 

1.1 Chargement de AT91Bootstrap sur la carte

48

1.2 Chargement de u-boot

50

2 Test

 

51

 

2.1

Monter et flasher le noyau

51

2.1.1 Configuration de u-boot

51

2.1.2 Pour flasher linux

52

2.1.3 Pour télécharger le fichier de système par nfs

52

2.2

Lancer les applications

53

Conclusion

55

Bibliographie

56

Section 6 Les ANNEXES

57

Chapitre 1 Annexe A

57

Chapitre 2 ANNEXE B

65

Chapitre 3 ANNEXE C

Erreur ! Signet non défini.0

Table de figures

Figure 1-1 principe de fonctionnement d’IGM5O Figure 2-1 le projet IGM2.0 Figure 2-2 le terminale IGM2.0 et ses modules Figure 2-3 Topologie d'un Système Embarqué Figure 3-1 la compilation croisé Figure 3-2 Sato Desktop - Une capture d'écran à partir d'un ordinateur exécutant Poky built image Figure 4-1 Le développement des OSs Embarqués, En 2004

11

16

18

20

23

25

31

En 2004 11 16 18 20 23 25 31 ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Table des Images 8

Table des Images

8
8

Figure 4-2 l'architecture de linux Figure 4-3 Optimisation de Linux Figure 5-1 démarrage de u-boot

32

35

51

Table des Images

Image 1-1 logiciel de suivi de production Image 1-2 Suivre de l'état de machine Image 1-3 Le terminal IGM50 Image 1-4 Le terminal IGM50 modifié Image 3-1 la carte dévaluation AT91SAM9260EK Image 5-1l'image de bureau de poky sato Image 5-4 un désigne imaginé d’IGM2.0 Image 5-2 menu Arrêts d’IGM2.0 Image 5-3 menu principale d’IGM2.0 Image 5-5 La position de jumper 7 sur la carte Image 5-7 La fenêtre de SAM-BA Image 5-6 Exécution de SAM-BA Image 5-8 le Flash Memory map Image 5-9 temix-webkit exécuter sur la carte mais exporter saur le pc Image 5-10 connexion à la carte à partir de PC Image 6-1 : simulation de system-temix sous qemu

12

12

13

13

26

43

46

46

46

48

49

49

50

54

54

69

Table de tableaux

Tableau 4-1 Les architectures supporté par linux Tableau 4-2 comparaison bootloaders Tableau 4-3 Taille de TinyLogin Tableau 4-4 le système de fichier respectant le standard Tableau 5-1 Les paquets à installer pour utiliser poky

30

33

38

40

41

pour utiliser poky 30 33 38 40 41 ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Introduction 9

Introduction

9
9

Introduction

L’objet de ce rapport est le stage de fin d’étude réalisé en troisième année à l’école national des ingénieurs de Sousse. Le stage était au sein de la société TEMIS. Dans l'objectif de satisfaire les nouveaux besoins clients et de s'intégrer dans les nouvelles technologies, la société TEMIUS démarre un projet de réalisation d'un nouveau terminal, dont le sujet de mon projet de fin d’étude. Dans ce cadre je suis appelé, sur une carte avec microcontrôleur ARM9, de mettre en œuvre :

- Un système d’exploitation linux

- un écran TFT avec dalle tactile

- un lecteur RFID

- le pilotage d'entrées/sorties logiques et d'entrées analogiques

- Réaliser un prototype de terminal avec les logiciels suivants:

- serveur web

- communication TCP/IP avec la supervision

- interface graphique via un navigateur Web embarqué

- interface graphique via un navigateur Web embarqué ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Section 1 Présentation Présentation 10

Section 1 Présentation

Présentation

10
10
Section 1 Présentation Présentation 10 Chapitre 1 Présentation de TEMIS et son produit IGM50 1 Présentation
Section 1 Présentation Présentation 10 Chapitre 1 Présentation de TEMIS et son produit IGM50 1 Présentation
Section 1 Présentation Présentation 10 Chapitre 1 Présentation de TEMIS et son produit IGM50 1 Présentation
Section 1 Présentation Présentation 10 Chapitre 1 Présentation de TEMIS et son produit IGM50 1 Présentation
Section 1 Présentation Présentation 10 Chapitre 1 Présentation de TEMIS et son produit IGM50 1 Présentation
Section 1 Présentation Présentation 10 Chapitre 1 Présentation de TEMIS et son produit IGM50 1 Présentation
Section 1 Présentation Présentation 10 Chapitre 1 Présentation de TEMIS et son produit IGM50 1 Présentation
Section 1 Présentation Présentation 10 Chapitre 1 Présentation de TEMIS et son produit IGM50 1 Présentation
Section 1 Présentation Présentation 10 Chapitre 1 Présentation de TEMIS et son produit IGM50 1 Présentation
Section 1 Présentation Présentation 10 Chapitre 1 Présentation de TEMIS et son produit IGM50 1 Présentation

Chapitre 1 Présentation de TEMIS et son produit IGM50

1 Présentation de TEMIS La société TEMIS est un bureau d’étude créée en 1997 et situé à la Roche sur Forn (haute Savoie), elle comptabilise au total un effectif de 7 personnes, dont le capital est d’environ 50 000€.

TEMIS est un bureau d’étude spécialisé dans l’informatique 50% et l’électronique 35% mais également dans la mécanique 15%. Ils imaginent, conçoivent et créent tout types de produits ayant un lien avec l’un des trois domaines cités. Ils programment des logiciels, pratiquent le hardware et le software, conçoivent des circuits imprimés, utilisent la CAO en 3D et peuvent fournir des prototypes du projet aux clients le souhaitant. Bien entendu ceci n’est qu’un aperçu de leurs compétences mais résume bien les principales. Ses clients sont des entreprises de la Vallée de l’Arve tel que FCMP, Perrotton, Meister France ou encore Sopil, mais on peut également compter dans ses clients de grandes sociétés comme Somfy, SEB, ou encore Tefal mais aussi des sociétés étrangères tel que Swissvoice, ou ALSTOM.

Bien que travaillant pour de nombreux clients, l’activité principale de la société est l’IGM50. C’est un produit de supervision d’atelier entièrement fourni par TEMIS. Le design mais surtout la programmation de cet appareil a totalement été créée par cette société. Il équipe de nombreuses sociétés de la Vallée de l’Arve travaillant dans les domaines du décolletage, de l’imprimerie ou encore de la découpe laser. Actuellement ce produit se répand de plus en plus partout en France mais également à l’étranger (Suisse, Espagne).

2 Le produit IGM50 Le système IGM50 est un système d’interface de gestion de machines qui a pour but de visualiser en temps réel l’état d’un parc de production et de mémoriser un historique de l’état des machines. Cet historique peut être ensuite analysé pour déterminer les causes d’arrêt les plus fréquentes et calculer les indicateurs relatifs à la qualité de production de chaque machine ou d’un ensemble.

Le système IGM50 permet de faire le lien entre le GPAO 1 à l’atelier de production les ordre de fabrication (OF) sont transmis de la GPAO vers l’IGM50 qui les transmet lui-même aux operateurs. Le système IGM50 rend compte de l’état d’avancement des OF. Toutes les saisies de renseignements sur les OF (nombre de pièces produites, rebuts,…) sont automatisées

Depuis sa conception, IGM50 a permis :

- La mise en place d’une gestion des contrôles de qualité.

- La possibilité de suivre une production à partir d’un débit ou d’une vitesse au lieu d’un comptage d’unités produites.

- La gestion d’un planning des OF mis à jour en temps réel en fonction de l’état d’avancement des produits en cours.

- La possibilité de visualiser en temps réel l’évolution d’indicateurs statistiques de production grâce au tableau de bord.

1 Gestion de production assistée par ordinateur

de bord. 1 Gestion de production assistée par ordinateur ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Présentation 11

Présentation

11
11

Chapitre 2 Le système IGM50

1 Principe de fonctionnement

Terminal IGM50 Le terminal sert d'interface : entre les utilisateurs et l'IGM50, entre les machines
Terminal IGM50
Le terminal sert d'interface :
entre les utilisateurs et l'IGM50, entre les machines et l'IGM50.
Il compte les pièces fabriquées, mesure les temps de cycle
machine.
Il mesure les temps de fonctionnement, les temps d'arrêt.
Il permet la saisie des causes d'arrêts.
Il permet de sélectionner l'OF à réaliser.
Il enregistre les opérateurs par leur carte à puce.
Concentrateur
Le concentrateur IGM50 scrute tous les terminaux connectés au bus et
envoie les informations au PC de supervision.
Il renvoie toutes les informations avec un horodatage prècis.
Il permet également d'enregistrer les cartes à puce pour les
opérateurs.
Logiciel de Supervision
Le PC d'atelier supervise en temps réel toutes les machines connectées.
Il enregistre dans la base de données toutes les informations
recueillies dans l'atelier.
Ceci permet de visualiser en temps réel l'état de chaque machine: les
quantités produites, les arrêts et leurs causes, les performances.
Toutes les données enregistrées servent à réaliser les analyses de
production, calculer les indicateurs de production.
Logiciel d'Analyse
Le logiciel d'analyse traite les informations de la base de données issues de
l'atelier en temps réel et les filtre selon vos critères de choix.
Il vous permet de connaître et d'optimiser l'utilisation de vos
machines.
Il analyse les temps d'arrêt et de production.
Il suit et mesure la productivité des machines, ateliers, ilôts,
Il calcule les indicateurs de production normalisés: TRS, TRG, TRE,
Taux de charge, Disponibilité opérationnelle, SMED,
Logiciel de Planning
Equivalent d'un planning mural, il visualise l'état d'avancement des
OF et se met à jour en temps réel.
Il vous permet de prévoir votre production et optimiser
l'occupation de vos machines.
Il récupère les informations des OF et les ordonne sur les
machines, et permet de déplacer des productions d'une machine
à l'autre d'un coup de clic.
Il permet de simuler des productions à venir.
Il indique les retards à prévoir en fonction des aléas dans
l'atelier.
Logiciel Tableau de Bord
Sélectionnez les indicateurs de votre choix.
Visualisez leur évolution en temps réel.
Il vous permet de mesurer d'un coup d'oeil l'évolution des
performances et de les comparer.
4 écrans de visualisation : TRS, MTBF, MTTR, causes d'arrêt,
bilans de production,
Comparez : machine par machine, par équipe, par jour, par
semaine, par mois,
Montrez leurs performances à vos opérateurs.
Logiciel Gestion Automatique des OF
Mini base article pour les systèmes non reliés à une GPAO.
Créez votre base article très simplement. Générez vos OF vers les machines.
Permet un lancement ordonnancement très efficace.
Génère des fichiers Excel pour impression.
Figure 1-1 principe de fonctionnement d’IGM5O
impression. Figure 1-1 principe de fonctionnement d’IGM5O ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Présentation 12

Présentation

12
12
Présentation 12 Etat des machines en temps réel Contrôle de l'avancement de la production Visualisation des

Etat des machines en temps réel

Contrôle de l'avancement de la production

temps réel Contrôle de l'avancement de la production Visualisation des groupes de Accès au détail d’une

Visualisation des

groupes de

Accès au détail

d’une machine

Image 1-1 logiciel de suivi de production

Visualisation instantanée de l'état des machines par groupes suivant la configuration de l'atelier.d’une machine Image 1-1 logiciel de suivi de production Information en temps réel sur l'avancement de

Information en temps réel sur l'avancement de la production :par groupes suivant la configuration de l'atelier. - référence OF et pièce, - avancement de la

- référence OF et pièce,

- avancement de la production visualisée graphiquement,

- durée estimée de l'OF en cours par rapport à la cadence réelle de la machine,

- contrôle du temps de cycle instantané, TRS, cadence,…

- causes d'arrêts renseignées.

TRS, cadence,… - causes d'arrêts renseignées. L'état de la machine et de la production S’affiche

L'état de la machine et de la production

S’affiche instantanément :

Image 1-2 Suivre de l'état de machine

instantanément : Image 1-2 Suivre de l'état de machine ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Présentation 13

Présentation

13
13

2 Le terminale IGM50

Indicateurs lumineux :

- fin d’O.F.

Visualisation :

- références de O.F. en cours

- quantité de pièces produites

- identité de l’opérateur,

- temps de cycle instantané

- référence pièce

Rebuts

Changement O.F. avec visualisation des O.F. suivants.

Carte à mémoire :

avec visualisation des O.F. suivants. Carte à mémoire : Voyants d’alarme 5 groupes de 15 causes

Voyants d’alarme

des O.F. suivants. Carte à mémoire : Voyants d’alarme 5 groupes de 15 causes d’arrêt paramétrables

5 groupes de 15 causes d’arrêt paramétrables

Choix du fonctionnement :

-

production

- 4 entrées (Informations machines)

- 2 sorties (Signalisations ou commandes)

Image 1-3 Le terminal IGM50

Son nombre limité de boutons, son lecteur de carte à puce et son afficheur permettent un apprentissage rapide, une utilisation simple et conviviale. Il permet aussi de gérer les prises et fin de poste, contrôle,…

Nature des entrées (exemples)

Comptage des pièces produitesfin de poste, contrôle,… Nature des entrées (exemples) Marche machine Détection défaut Rebuts Nature des sorties

Marche machinedes entrées (exemples) Comptage des pièces produites Détection défaut Rebuts Nature des sorties (exemples)

Détection défaut(exemples) Comptage des pièces produites Marche machine Rebuts Nature des sorties (exemples) Alarme lumineuse sur

Rebutsdes pièces produites Marche machine Détection défaut Nature des sorties (exemples) Alarme lumineuse sur

Nature des sorties (exemples)

Alarme lumineuse sur contrôles,Détection défaut Rebuts Nature des sorties (exemples) Pilotage (arrêt machine) Indicateurs lumineux : - fin

Pilotage (arrêt machine)des sorties (exemples) Alarme lumineuse sur contrôles, Indicateurs lumineux : - fin d’O.F. Choix du poste

Indicateurs lumineux :

-

fin d’O.F.

Choix du poste de travail ;

Choix de l’opération en cours ;

du poste de travail ; Choix de l’opération en cours ; Visualisation : - références de
du poste de travail ; Choix de l’opération en cours ; Visualisation : - références de

Visualisation :

- références de O.F. en cours

- quantité de pièces produites

- identité de l’opérateur

- référence pièce

Rebut

Changement O.F. avec visualisation des O.F. suivants.

Clavier de saisie des quantités produites, des rebuts …

- 3 entrées

- 2 sorties (Signalisations ou commandes)

- 1 liaison bus RS 485

(Signalisations ou commandes) - 1 liaison bus RS 485 Image 1-4 Le terminal IGM50 modifié Carte

Image 1-4 Le terminal IGM50 modifié

- 1 liaison bus RS 485 Image 1-4 Le terminal IGM50 modifié Carte à mémoire :
- 1 liaison bus RS 485 Image 1-4 Le terminal IGM50 modifié Carte à mémoire :

Carte à mémoire :

485 Image 1-4 Le terminal IGM50 modifié Carte à mémoire : ETUDE, CONSEIL ET REALISATION DE

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Présentation 14

Présentation

14
14

Ce terminal gère 1 à 8 postes de travail.

Son nombre limité de boutons, son lecteur de carte à puce et son afficheur permettent un apprentissage rapide, une utilisation simple et conviviale.

Fonctions principales

Choix d’un OF et d’une opération sur l’OF (chargé depuis la supervision avec les quantités à produire)une utilisation simple et conviviale. Fonctions principales Entrée des pièces produites et des rebuts au clavier

Entrée des pièces produites et des rebuts au clavier ou sur entréedepuis la supervision avec les quantités à produire) Comptage automatique du temps passé sur chaque opération

Comptage automatique du temps passé sur chaque opération et suivi par équipes à la supervisionpièces produites et des rebuts au clavier ou sur entrée Boutons de causes d’arrêt et causes

Boutons de causes d’arrêt et causes d’absences (programmables).chaque opération et suivi par équipes à la supervision ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES

de causes d’arrêt et causes d’absences (programmables). ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Présentation et définition des besoins 15

Présentation et définition des besoins

15
15

Section 2 Présentation et définition des besoins

chapitre 1. Le concept IGM2.O : Idée et Objectifs

1 L’idée de projet IGM2.0

L e projet IGM2.0 ou plutôt le concept IGM2.0 est basé sur l’idée de migrer vers le web ou précisément

vers les applications web (la source de l’idée été le projet WEB2.0 2 , pour cela la notation 2.0). La question que se pose alors :

C’est quoi les applications web ?

On dit que ces sont ; comme il les définit le site Bitpipe.com 3 ; des logiciels stockés sur un serveur et acheminés par internet ou intranet et basé sur les protocoles web (http, ftp,…), elles sont habituellement une combinaison d'une ou plusieurs pages Web interactives qui peuvent invoquer et intégrer les Navigateurs de coté client, et de bash, C, PHP, Access ou Bases de données SQL Server…, de coté serveur.

Et wikipedia 4 les définit comme des applications livrées aux utilisateurs à partir d'un serveur web par un réseau tel que l’Internet ou l’Intranet.

Et pour être claire et concret on peut donner des exemples des applications web, et on trouve comme un vrais exemple, Google avec son paquet Google-documents, les services de calcules, de création de PDF,

agenda

, offerts par des sites sont aussi des applications web.

Mais pour quoi les applications web ?

2 L’objectifs de IGM2.0

2.1 Objectifs Aujourd'hui, les entreprises doivent être communicantes : elles ont des fournisseurs, des clients, des partenaires, des équipes internes et des équipes qui se déplacent sur terrain. L'entreprise doit pouvoir communiquer aisément avec chacun de ces partenaires qui constituent son environnement. Le logiciel qui fonctionne seul sur le pc sur lequel il est installé, n'est plus capable de répondre aux besoins de communications nécessaires à la compétitivité de l'entreprise. Quelles sont aujourd'hui les solutions offertes pour bénéficier d'une application permettant un travail collaboratif ?

Il est toujours possible de faire réaliser un logiciel sur mesure. Mais ce développement est important (il

devra notamment implémenter un protocole de communication). De plus, il faudra installer le logiciel sur tous les ordinateurs des personnes qui devront l'utiliser. Si des mises à jour sont nécessaires, il faudra diffuser disquettes,CD-ROM.

Pour remédier à ces inconvénients, tout en conservant la même base, il est aujourd'hui possible d'utiliser une nouvelle technologie : la fédération d'applications. Dans une architecture de ce type, l'application fonctionne sur un serveur centralisé. Les utilisateurs accèdent à l'application sur le serveur comme des clients.

2 http://fr.wikipedia.org/wiki/Web2.0

3 www.Bitpipe.com

4 www.wikipédia.org

3 www.Bitpipe.com 4 www.wikipédia.org ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Présentation et définition des besoins 16

Présentation et définition des besoins

16
16

Les mises à jour s'en trouvent simplifiées puisque l'application est centralisée sur un serveur. Pour l'utilisateur, c'est complètement transparent.

Un double clic sur l'icône et l'application est lancée. Cette technologie reste néanmoins coûteuse puisque en plus du développement de l'application il faut mettre en place l'architecture fédérée qui repose sur des applicatifs propriétaires onéreux. Ces solutions ne fonctionnent qu'avec certaines versions de Windows. Autre inconvénient, les protocoles de fédérations sont gourmands en bande passante. Attention à votre réseau ! Quant à utiliser cette technologie via Internet, mieux vaut prévoir de gros tuyaux.

Un autre choix est de réaliser un logiciel suivant une architecture web. Dans une architecture web, l'application s'exécute sur un serveur et les utilisateurs se connectent au serveur en utilisant leur navigateur internet. Cette architecture présente de nombreux avantages :

Les pages web sont légères, ne satureront pas le réseau et permettent une utilisation nomade de l'application. Les mises à jour sont toujours simples puisque centralisées sur un serveur.

Les serveurs web sont bon marché puisque le plus part des serveurs sont des produits libres donc gratuits.

Il n'est pas nécessaire de développer une interface de communication et on bénéficie de la plateforme du navigateur web qui gère l'affichage des pages.

L'application peut alors être utilisée de n'importe quelle ordinateur (PC Windows, mac, linux), Pocket PC ou même téléphone. Il suffit que l'appareil possède un navigateur internet, ce qui constitue une solution universelle d'utilisation.

Pas d’installation juste un navigateur web

C'est donc naturellement que les entreprises se sont tournées vers les applications web. Aujourd'hui la majorité des nouveaux projets de Système d'information sont des projets web.

2.2 Description de concept IGM2.0

sont des projets web. 2.2 Description de concept IGM2.0 Figure 2-1 le projet IGM2.0 ETUDE, CONSEIL

Figure 2-1 le projet IGM2.0

Description de concept IGM2.0 Figure 2-1 le projet IGM2.0 ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Présentation et définition des besoins 17

Présentation et définition des besoins

17
17

Serveur IGM :

Le serveur IGM (matériel et logiciel) va jouer les rôles :

D’un serveur web normale pour gérer les communications et partager les données et les bases de données.

Un serveur d’application ; tous les applications sont centralisées et installées sur ce serveur, et tous les autres terminaux et postes accèdent à ces applications par réseaux.

Machine : c’est la machine dans l’usine

Pc industriel (Pc industriel) : C’est un ordinateur qui va contrôler et émuler les terminaux.

Terminal IGM2.0 : c’est le nouveau terminal qui va remplacer IGM50

Les méthodes de communications :

Http : est un protocole de communication client-serveur développé pour le World Wide Web.

RS232 : est une norme standardisant un port de communication de type série.

RS485 : est une norme qui définit les caractéristiques électriques de la couche physique d'une interface numérique sérielle. La transmission se fait sur une ligne électrique, pratiquement une paire torsadée, par des variations de tension en mode différentiel.

années 70) qui

TCP/IP : est un ensemble de logiciels développés au fil des années (depuis les constituent un "langage universel" de communication informatique à travers le monde.

de communication informatique à travers le monde. ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Présentati on et définition des besoins 18

Présentati on et définition des besoins

18
18

chapitre 2. Présentation de t erminale IGM2.0

1 Présentation Cette décision de migrer ver s les applications web va exiger des modificati ons de base au niveau des architectures matérielles et logi cielles des terminaux et au niveau de communic ation par l’installation d’une nouvelle stratégie de communicat ion et l’intégration de nouveaux méthodes et so lutions de communication.

maintenir son position dans le marché et b attre ses concourants, doit

Toute entreprise cherche à

poursuivre les évolutions technolo gies et les intégrer dans ces produits.

Dans ces deux cadres je suis appel é à reconcevoir le terminal IGM50 en IGM2.0.

je suis appel é à reconcevoir le terminal IGM50 en IGM2.0. Figure 2-2 : le terminale

Figure 2-2 : le terminale IGM2.0 et ses modules

en IGM2.0. Figure 2-2 : le terminale IGM2.0 et ses modules Im age 2-1 premier designe

Im age 2-1 premier designe pour le terminal IGM2.0

modules Im age 2-1 premier designe pour le terminal IGM2.0 ETUDE, CONSEIL ET REALISATION DE SYSTEMES

ETUDE, CONSEIL ET REALISATION DE SYSTEMES E LECTRONIQUES ET MECANIQUES

Présentation et définition des besoins 19

Présentation et définition des besoins

19
19
Présentation et définition des besoins 19 Image 2-2 l'interface graphique de terminal IGM2.0 Alors, ma tache
Présentation et définition des besoins 19 Image 2-2 l'interface graphique de terminal IGM2.0 Alors, ma tache

Image 2-2 l'interface graphique de terminal IGM2.0

Alors, ma tache consiste précisément à intégrer un os embarquée sur un microcontrôleur avec un serveur web et un navigateur embarquée et la gestion des entrées/sorties de microcontrôleur tout en respectant les contraintes de cout, de consommation, de taille, et des ressources limités (mémoire….), or la conception et le développement des modules de communication dépendra de l’évolution et l’avancement de projet.

2 IGM2.0 est un système embarqué Il est clairement remarquable que notre terminal IGM2.0 répond pratiquement à la définition de Patrice Kadionik 5 pour le système embarqué : Un Système Embarqué, c'est une combinaison de matériels et logiciels

permettant de remplir une ou plusieurs fonctions spécifiques avec des contraintes plus ou moins sévères tel

que la consommation, la température, la taille, les performances

et. [Patrice Kadionik, 2004].

2.1. Caractéristiques de systèmes embarqués Alors, notre terminal est un système embarqué, il se caractérise par suit par :

Faible coût Un assez grand nombre de produits d’embarqué sont sur les marchés où l'utilisateur ne veut pas payer le supplémentaire pour la performance ou fonctionnalité de plus, Les concepteurs ont donc dû concevoir avec des rapports optimaux entre le prix et la performance Le résultat de ceci est que les ressources disponibles sont minimaux possibles. C’est pour quoi un système embarqué a rarement plus de quelques Méga octets de mémoire disponible.

Faible consommation La minimisation de la consommation est essentielle pour les systèmes autonomes afin de maximiser l'autonomie des batteries. Une consommation excessive augmente le prix de revient du système embarqué car il faut alors des batteries de forte capacité. Or pour IGM2.0 la consommation ne présente pas critère très dur care le terminale va être branché directement sur le secteur.

Faible encombrement et faible poids Ils doivent cohabiter sur une faible surface électronique analogique et numérique.

Fonctionnement en Temps Réel (Réponse de temps) Les applications embarquées, comme des applications de système de contrôle, sont événement conduit et doivent répondre rapidement à ces événements.

Peut être, Un système embarque a besoin des opérations de calcul doivent être faites en réponse à un événement extérieur. C’est une caractéristique pour quelques domaines spéciaux.

5 Ingénieur ENSEIRB et Docteur en Science de l'Université Bordeaux 1 http://doc.fedora-fr.org/wiki/Utilisateur:PatriceKadionik

1 http://doc.fedora-fr.org/wiki/Utilisateur:PatriceKadionik ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Présentation et définition des besoins 20

Présentation et définition des besoins

20
20

Environnement Ils sont soumis à de nombreuses contraintes dictées par l'environnement telles que la température, l’humidité, les vibrations, les chocs, les variations d’alimentation, les interférences RF, la corrosion, l'eau, le feu, les radiations…etc. Cette caractéristique est importante pour IGM2.0 car il va fonctionner dans un environnement industriel.

2.2. Architecture générale de IGM2.0 Comme vous savez l'architecture de système normal, un ordinateur se compose de trois couches:

Application, Système d'exploitation, et Matériel. De même, un système embarque dispose de 3 couches. Chaque couche a la même fonctionnalité qu'un système normal. Mais, Il y a des différences de sous composants du système. Les deux premières couches, Il s'agit du logiciel. Il est possible de modifier ces composants logiciels, et aussi ajouter ou supprimer ses modules au besoin dépendant du but de système. Cependant, Ce n'est pas un système qui contient tous les composants comme le système complet. Car le but de conception est de servir quelques tâches spécifiques, et de concentrer à un unique travail. Le système d'exploitation est une couche logicielle sur laquelle on va se placer l'ensemble des applications lancées par les utilisateurs. Il comprend les librairies pour le développement, des drivers permettant aux applications d'accéder à des périphériques évolués, peut-être les interfaces pour contrôler les éléments. La conception de l’OS se base forcément sur le matériel visant à optimiser la performance… etc.

La dernière couche, Il s'agit du matériel. C'est-à-dire qu'un ensemble des éléments physiques employés pour le traitement de données. Les composants matériels sont limités et peut-être il y aurait un composant dédié aux tâches spécifiques.

il y aurait un composant dédié aux tâches spécifiques. Figure 2-3 Topologie d'un Système Embarqué Entrées:

Figure 2-3 Topologie d'un Système Embarqué

Entrées:

- Les capteurs/convertisseurs (pression, compteur, vitesse

- Le clavier, boutons poussoirs (wifi, radio

- Le lecteur de tags.

)

)

boutons poussoirs (wifi, radio - Le lecteur d e tags. ) ) ETUDE, CONSEIL ET REALISATION

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Présentation et définition des besoins 21

Présentation et définition des besoins

21
21

Sorties:

- écrans LCD tactile.

- les LED témoins.

- les sorties des commandes.

Mémoire de mass : (La détaille dans la section $4.3.1)

- FLASH.

- L'utilisation de ROM.

- Le disque à distance Ex: NFS, TFTP.

IHM:

Normalement, Il est un dispositif qui sert à communiquer entre l'humain et la machine. C’est l’écran avec les dispositifs «TouchScreen» et les boutons.

avec les dispositifs «TouchScreen» et les boutons . ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Section 3 Outils de développement Outils de développement 22

Section 3 Outils de développement

Outils de développement

22
22
3 Outils de développement Outils de développement 22 1 Introduction Après avoir spécifié les différents
3 Outils de développement Outils de développement 22 1 Introduction Après avoir spécifié les différents
3 Outils de développement Outils de développement 22 1 Introduction Après avoir spécifié les différents
3 Outils de développement Outils de développement 22 1 Introduction Après avoir spécifié les différents
3 Outils de développement Outils de développement 22 1 Introduction Après avoir spécifié les différents
3 Outils de développement Outils de développement 22 1 Introduction Après avoir spécifié les différents
3 Outils de développement Outils de développement 22 1 Introduction Après avoir spécifié les différents
3 Outils de développement Outils de développement 22 1 Introduction Après avoir spécifié les différents
3 Outils de développement Outils de développement 22 1 Introduction Après avoir spécifié les différents
3 Outils de développement Outils de développement 22 1 Introduction Après avoir spécifié les différents

1 Introduction Après avoir spécifié les différents besoin de notre projet, nous présenterons dans cette section les différents outils matériels et logiciels utilisés dans le développement.

Je vais présenter en premier lieux les outils logiciel tel que les environnements de développement (ELDK, Buildroot, Poky…) et en deuxième lieu les matériels (carte) et dans une dernière partie les autres outils que sont indépendant de projet.

Chapitre 1 Les environnements de développement

1 Définitions La plupart des développeurs utilisent un PC x86 (Linux ou Windows) comme poste de travail et il est donc nécessaire de mettre en place des outils permettant de développer du code non-x86 sur un PC, mais avant de discuter ça, on parlera de la terminologie qui concerne le développement .Il s’agit d’un environnement de développement croisé avec deux entités à distinguer :

La cible (Target-System) est la plate-forme matérielle qui va accueillir l'OS et le ou les applicatifs embarques. En fait, La cible est un système cible sur lequel On veut mis en place l’OS, ou bien l'application. Elle est caractérisée par l'architecture des processeurs que peut être IntelX86, MIPS, ARM, SuperHitachi-SH…etc.

L'hôte de développement (Host-Development) est la plate-forme de développement sur la quelle sont mis au point les différentes parties logicielles de la cible. En fait, C'est une machine hôte (host) pour le développement et la mise au point. Simplement, lors de la création d'un OS Embarqué ou d'une application embarquée, On écrit "code source" et compile directement les sources sur ce host de développement.

Comme le développement de logiciel ordinaire, les développeurs de système embarqué ont besoin des compilateurs, des interpréteurs, les linkers, les IDE, et d'autres outils de développement. Les outils pour les développeurs de système embarqués sont différents. Car ils fonctionnent sur une architecture différente lors de la construction des applications pour le système cible. C'est pourquoi ces outils s'appellent souvent des chaînes de compilation croisée en anglais "cross-platform development tools" ou "cross-development tools".

La compilation croisée ( cross-compile ) est un processus de création des logiciels pour le système (microprocesseurs) cible en utilisant un machine hôte avec les outils tel que compilateur, bibliothèque C, etc …

La chaîne de compilation croisée

compose des composants suivants:

est très importants pour développer Linux embarqué Elle

se

1. binutils: un ensemble d'outils de manipulation de fichiers binaires comme : ld, gas, etar

2. compilateur C/C++:GCC et débogueur GDB

3. bibliothèque C : Glibc, Dietlibc, uClibc

GDB 3. bibliothèque C : Glibc, Dietlibc, uClibc ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Outils de développement 23 les outils de compilations de hote des aplications exucitables sur les

Outils de développement

23
23
les outils de compilations de hote des aplications exucitables sur les systemes ciblses la chaines
les outils de
compilations
de hote
des aplications
exucitables sur les
systemes ciblses
la chaines de
compilation
croisée
Figure 3-1 la compilation croisée

Dans le cas de la compilation croisée, ces différents outils, ainsi que le compilateur, seront exécuté sous linux dans un environnement x86 mais le code généré sera d'un type différent (ARM). Il est donc nécessaire de compiler le paquetage à partir des sources en spécifiant de nouvelles options de génération.

La génération de la chaîne de compilation croisée est peut être possible à la main mais les applications pour les systèmes cibles est souvent fastidieuse car elle peut que l'application a beaucoup des dépendances et

de même ces dépendances ont des dépendances, etc

, exemple :

Exemple fichiers dépendances pour un simple terminal matchbox-terminal :

Digraph depends {"matchbox-terminal" [label="matchbox-terminal 0:0.0+svnr1612 -r0\n/home/yf/

youssef/test1/pinky-3.1/meta/packages/matchbox-terminal/matchbox-terminal_svn.bb"]:

"matchbox-terminal" -> "pkgconfig-native" "matchbox-terminal" -> "libtool-cross" "matchbox-terminal" -> "autoconf-native"

"matchbox-terminal" -> "libtool-native" "matchbox-terminal" -> "vte" "matchbox-terminal" -> "virtual/arm-poky-linux-gnueabi-gcc" "matchbox-terminal" -> "shasum-native" "matchbox-terminal" -> "gnu-config-native" "matchbox-terminal" -> "gtk+" "matchbox-terminal" -> "virtual/libc" "matchbox-terminal" -> "automake-native"

"vte" -> "pkgconfig-native" "vte" -> "libtool-cross" "vte" -> "autoconf-native" "vte" -> "libtool-native" "vte" -> "gnome-common" "vte" -> "intltool-native" "vte" -> "virtual/arm-poky-linux-gnueabi-gcc"

"vte" -> "shasum-native"

"autoconf-native" -> "shasum-native" "autoconf-native" -> "gnu-config-native" "autoconf-native" -> "m4-native" "autoconf-native" -> "gnu-config-native" ….

-> "gnu-config-native" …. ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Outils de développement 24

Outils de développement

24
24

Et aussi elle peut qu’elle nécessite des patchs en fonction des architectures. De ce fait, l'utilisateur non averti risque de disposer d'une chaîne erronée et il est donc conseillé d'utiliser des outils spécialisés.

Dans cette partie, nous allons présenter quatre solutions open sources disponibles utilisables sur Linux x86. Je vais choisir un de ces outils et expliquerais également comment mettre en œuvre cet outil sur plate- forme linux.

2 ELDK- Embedded Linux Development Kit ELDK - Embedded Linux Development Kit, est un paquet qui contient les outils nécessaire pour développer en linux embarqué:

sont des outils pour générer le code

- outils de compilation (le compilateur, l'assembler, le linker etc pour l'architecture visé.

- native-tools et native-libraries sont des outils utilisés pour compiler des programmes à exécuter sur des systèmes embaqués.

),

- Des codes sources et des fichiers binaire pour linux.

ELDK est développé par DENX Software, société de consulting Linux située en Allemagne. Le fondateur, Wilfried Denk, est un professionnel de talent, contribuant à de nombreux projets open source dont RTAI 6 . Le produit est disponible sous forme de paquetages RPM binaires ou sources. Il est également possible de télécharger l'image ISO du CDROM contenant les binaires ou les sources 7 .

ELDK permet de mettre en place une chaîne de compilation utilisable sur un PC Linux x86 pour des cibles PowerPC, MIPS ou ARM. Cet outil fournit également une distribution que l'on peut utiliser comme root- filesystem à travers d'un montage NFS. Cette technique permet de faciliter la mise au point car il n'est pas nécessaire de mettre à jour systématiquement la cible. La version de noyau fournie par ELDK est la 2.4.25 améliorée par DENX principalement pour la plate-forme PowerPC.

Vous trouvez à titre de formation une méthode de mettre en œuvre un Linux sous ARM avec ELDK dans l’annexe B.

3 Buildroot Buildroot est un ensemble de Makefile et patches qui permettent de générer facilement une chaîne de compilation croisée et un système de fichiers racine de votre cible.

Buildroot automatise la mise en place d'un système de fichiers racine avec tous les outils nécessaires comme busybox. Il rend beaucoup plus facile que de le faire à la main.

Buildroot automatise la génération de la chaine de compilation grâce à l'utilisation de Makefile, et il dispose d'une collection de correctifs pour chaque version gcc et binutils pour les faire fonctionner sur la plupart des architectures.

Pour télécharger Buildroot utilisant SVN, il vous suffit de suivre les règles décrites sur la page http://buildroot.uclibc.org/subversion.htm Pour les impatients, voici un lien rapide:

 svn co svn://uclibc.org/trunk/Buildroot
 svn co svn://uclibc.org/trunk/Buildroot

6 Real Time Application Interface http://www.rtai.org

7 ftp://mirror.switch.ch/mirror/eldk/eldk/

7 ftp://mirror.switch.ch/mirror/eldk/eldk/ ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Outils de développement 25

Outils de développement

25
25

Buildroot se caractérise par un bel outil de configuration graphique similaire à celle que vous pouvez trouver dans le noyau Linux ou dans Busybox. Notez que vous pouvez construire tout comme un utilisateur normal. Il n'est pas nécessaire d'être root pour configurer et l'utilisation de Buildroot.

4 OpenEmbedded OpenEmbedded est un outil qui permet aux développeurs de créer un Linux pleinement utilisable pour divers systèmes embarqués. Il a été conçu pour être en mesure de traiter différentes architectures matérielles et d'utiliser des outils pour accélérer le processus de compilation. Actuellement, il peut fonctionner sur toutes les distributions Linux, et des plans sont en place afin de lui permettre de travailler sous Windows.

Essentiellement, le projet maintient et développe une collection de recettes BitBake. Les bitbakes constitués des sources URL du paquet, les dépendances et les options de compilation ou d'installation. Pendant le processus de constructions, les recettes sont utilisés pour suivre les dépendances, le cross-compiler et le paquetage de paquets susceptible d'être installé sur le périphérique cible. Il est également possible de créer des images complètes, composé de système de fichiers racine et du noyau.

5 Poky Linux Poky est une plateforme open source. Il est un environnement de développement logiciel dédié pour linux. Il aide à la conception, le développement, la construction, le débogage, la simulation complète de logiciels modernes utilisant Linux, il est fondé sur l’environnement OpenEmbedded.

Poky a été configuré pour:

Fournir des programmes open-source pour Linux.

Créer des paquets stable, en se basant sur de OpenEmbedded et qui peuvent être facilement et de manière fiable intégrer sur des systèmes embarqué.

Soutenir une large gamme des architectures x86 et ARM.

Poky est avant tout une plate-forme qui génère des images de fichier-system (filesystem images) basée sur des logiciels open source tels que le serveur X Kdrive, le gestionnaire de fenêtres Matchbox, la boîte à outils GTK + et le bus de system D-Bus message. Des nombreux types des images peuvent être générés par poky, et de plus il est complètement adapté avec l’émulateur QEMU pour les architectures x86 et ARM.

avec l’émulateur QEMU pour les architectures x86 et ARM. Figure 3-2 : Sato Desktop - Une

Figure 3-2 : Sato Desktop - Une capture d'écran à partir d'un ordinateur exécutant Poky built image

à partir d'un ordinateur exécutant Poky built image ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Outils de développement 26

Outils de développement

26
26

Poky a de plus en plus une communauté open-source soutenu par un support commercial assuré par le principe développeur et mainteneur de Poky, OpenedHand Ltd.

Pourquoi poky ? Le choix de l’environnement ce n’est pas facile. Avec une petite recherche sur internet on trouve que Buildroot, OpenEmbedded et Poky sont le plus populaire mais les développeurs conseillent d’utiliser OpenEmbedded avec sa commande magique bitbake, par contre on à choisis poky tout d’abord car il se base sur OpenEmbedded et de plus je l’ai trouvais plus structuré et simple à manipuler.

Chapitre 2 La carte et les autres outils

1 La carte AT91SAM9260-EK AT91SAM9260EK est un kit d’évaluation d’Atmel qui est conçue pour l’évaluation des programmes tournant sur le microcontrôleur AT91SAM9260 de Atmel à cœur ARM9.

L’AT91SAM9260EK est équipé d'un AT91SAM9260 (217-ball LFBGA paquet) ainsi que les éléments suivants:

 64 Mo de mémoire SDRAM   256 Mo de mémoire NANDFlash un port
 64 Mo de mémoire SDRAM
 256 Mo de mémoire NANDFlash
un port Ethernet 100 Base TX avec trois LEDs
d'état
 Mémoire Data flash d’Atmel
un audio dac AT73C213 d’Atmel
 EEPROM série DHT
une
puissance LED à usage général
 un port USB type A
deux boutons poussoirs configurable
 deux ports USB hôte interfaces type B
une
entrée bouton-poussoir pour le Wake up
 un port de communication série pour
le debug
un bouton-poussoir de réinitialisation
un Data flash, SD / MMC
 un port MODEM série de
communication
quatre connecteurs d'expansion (PIOA, PIOB,
PIOC, capteur d'image)
 un autre port de communication série
avec RTS / CTS
un de type BGA EBI expansion empreinte
connecteur
 JTAG / CIE interface de débogage
une
pile Lithium Battery Cell de retenue de 12
mm
taille des cellules

Image 3-1 la carte dévaluation AT91SAM9260EK

des cellules Image 3-1 la carte dévaluation AT91SAM9260EK ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Outils de développement 27

Outils de développement

27
27

2 Les autres outils

2.1 QEMU Emulateur L’environnement d’émulation Qemu est un émulateur de matériel, capable de simuler une architecture x86, et partiellement les architectures PPC, ARM et SPARC. Qemu émule tout, y compris le microprocesseur, c'est pourquoi il est souvent plus lent que le système hôte. Cependant, la « virtualisation » vous permet de rentabiliser le temps processeur libre en multipliant les OS.

QEMU a deux modes de fonctionnement:

- Emulation complète du système .Dans ce mode, QEMU émule un système complet (par exemple un PC), y compris le processeur (un ou plusieurs processeurs) et les divers périphériques. C’est une bonne manière pour lancer différents systèmes d'exploitation sans formater, partitionner ou redémarrer le PC ou pour déboguer le code système.

- Emulation en mode utilisateur. Dans ce mode, QEMU pouvez lancer les processus établis pour un CPU

sur un autre CPU. Il peut être utilisé pour lancer le Wine 8 ou pour faciliter cross-compilation et cross- debugging.

Pour le mode complète Qemu supporte les architectures suivantes :

PC (x86 ou processeur x86_64)

ISA PC (old style PC without PCI bus) ISA PC (ancient PC sans bus PCI)

PREP (PowerPC processor) PREP (processeur PowerPC)

G3 BW PowerMac (PowerPC processor) PowerMac G3 BW (processeur PowerPC)

Mac99 PowerMac (PowerPC processor, in progress) Mac99 PowerMac (processeur

PowerPC)

Sun4m/Sun4c/Sun4d (32-bit Sparc processor) Sun4m/Sun4c/Sun4d (32-bit Sparc

processeur)

Sun4u (64-bit Sparc processor, in progress) Sun4u (64-bit Sparc processeur, en cours)

Malta board (32-bit and 64-bit MIPS processors) Malte bord (32-bit et 64-bit processeurs MIPS)

ARM Integrator/CP (ARM) ARM Integrator / CP (ARM)

ARM Versatile baseboard (ARM) ARM Versatile plinthe (ARM)

ARM RealView Emulation baseboard (ARM) ARM RealView Emulation plinthe (ARM)

Spitz, Akita, Borzoi and Terrier PDAs (PXA270 processor) Spitz, Akita, Terrier Barzoï et assistants personnels (processeur PXA270)

Luminary Micro LM3S811EVB (ARM Cortex-M3) Luminaire Micro LM3S811EVB (ARM

Cortex-M3)

Luminary Micro LM3S6965EVB (ARM Cortex-M3) Luminaire Micro LM3S6965EVB (ARM

Cortex-M3)

Freescale MCF5208EVB (ColdFire V2). Freescale MCF5208EVB (ColdFire V2).

Arnewsh MCF5206 evaluation board (ColdFire V2). Arnewsh MCF5206 évaluation bord (ColdFire V2).

Palm Tungsten|E PDA (OMAP310 processor) Palm Tungsten PDA (processeur OMAP310)

8 Une application sous linux permet de lancer des programmes Windows (http://www.winehq.org)

de lancer des programmes Windows (http://www.winehq.org) ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Outils de développement 28

Outils de développement

28
28

Pour le mode utilisateur Qemu émule x86, PowerPC, ARM, 32-bit MIPS, Sparc32/64 et ColdFire

(m68k).

Cet outil me permet d’émuler le système d’exploitation construit avant de le charger sur la carte.

2.2 SVN un logiciel de gestion de versions

Un logiciel de gestion de versions agit sur une arborescence de fichiers afin de conserver toutes les versions des fichiers, ainsi que les différences entre les fichiers.

Ce système permet par exemple de mutualiser un développement. Un groupe de développeurs autour d'un même développement se servira de l'outil pour stocker toute évolution du code source. Le système gère les mises à jour des sources par chaque développeur, conserve une trace de chaque changement. Ceux-ci sont, en bonne utilisation, chaque fois accompagnés d'un commentaire. Le système travaille par fusion de copies locale et distante, et non par écrasement de la version distante par la version locale. Ainsi, deux développeurs travaillant de concert sur une même source, les changements du premier à soumettre son travail ne seront pas perdus lorsque le second, qui a donc travaillé sur une version non encore modifiée par le premier, renvoie ses modifications.

de mon développement par le visionnement de mes

modifications et il permet aussi de présenter le changement entre les versions.

Cet outil m’a énormément aidé aux cours

2.3 NFS

Network File System (NFS) est un moyen de partager des fichiers entre plusieurs machines sur un même réseau comme si les fichiers se trouvaient sur votre disque dur local.L'idée de base de NFS est de permettre à un ensemble quelconque de clients et de serveurs de partager un même système de fichiers. Ce partage de fichiers s'effectue d'une façon aussi transparente que possible. D'une manière générale, les clients et les serveurs sont sur le même réseau local mais il est possible d'exécuter nfs à travers un réseau à longue distance. Il est important de noter que les clients et les serveurs sont des machines distinctes. NFS permet à toute machine d'être à la fois client et serveur sauf dans le cas d'un pc où nfs ne lui permet pas de jouer le rôle d'un serveur à cause de sa structure mono-tâche.

Cet outils m’a permet de partager le système de fichier de la carte on le montant en local que me simplifie les modifications le copier/coller directe en local au lieu de charger à chaque fois le système de fichier sur la carte.

charger à chaque fois le système de fichier sur la carte. ETUDE, CONSEIL ET REALISATION DE

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Section 4 Solutions techniques Solutions techniques 29

Section 4 Solutions techniques

Solutions techniques

29
29
Section 4 Solutions techniques Solutions techniques 29 chapitre 1. Linux notre système d’exploitation embarqué 1
Section 4 Solutions techniques Solutions techniques 29 chapitre 1. Linux notre système d’exploitation embarqué 1
Section 4 Solutions techniques Solutions techniques 29 chapitre 1. Linux notre système d’exploitation embarqué 1
Section 4 Solutions techniques Solutions techniques 29 chapitre 1. Linux notre système d’exploitation embarqué 1
Section 4 Solutions techniques Solutions techniques 29 chapitre 1. Linux notre système d’exploitation embarqué 1
Section 4 Solutions techniques Solutions techniques 29 chapitre 1. Linux notre système d’exploitation embarqué 1
Section 4 Solutions techniques Solutions techniques 29 chapitre 1. Linux notre système d’exploitation embarqué 1
Section 4 Solutions techniques Solutions techniques 29 chapitre 1. Linux notre système d’exploitation embarqué 1
Section 4 Solutions techniques Solutions techniques 29 chapitre 1. Linux notre système d’exploitation embarqué 1
Section 4 Solutions techniques Solutions techniques 29 chapitre 1. Linux notre système d’exploitation embarqué 1

chapitre 1. Linux notre système d’exploitation embarqué

1 Pour quoi un système d’exploitation Pourquoi intégrer tout un système d’exploitation sur le terminal et pas des programmes en dur qui répond directement à nous besoins ?

Le système d’exploitation, est multitâche. Il est possible d’y exécuter plusieurs processus qui se partagent les ressources de la machine. Il peut, en effet, stopper, à tout moment, n’importe quelle application pour passer la main à la suivante. Le plus intéressant dans un système d’exploitation est qu’il va nous faciliter la communication et la gestion de matériel, imaginer qui on va faire la gestion des mémoires et les interruptions d’une application; comme un navigateur web; manuellement, c’est fastidieuse !

On trouve une multitude des systèmes d’exploitation pour l’embarquée, les uns sont gratuits et open source et les autres non,….

Quelques OS Embarqué très connu :

Palm OS pour le handheld Ses applications comprennent

- Gestion de la mémoire simplifiée,

- Gestion de bases de données et de l'écran,

- Fournissement de la bibliothèque mathématique

- Fournissement des applications minimalistes.

Symbian OS pour la téléphonie,

- Gestion des contacts,

- gestion de réseaux divers (SMS, Bluetooth, GSM,TCP/IP),

- gestion multimédia

- Supporte la technologie Java (Java Phone)

Windows Embarqué :

- Les applications dérivées du Windows

Alors Pourquoi intégrer Linux dans notre système embarqué quant il existe cette multitude d’autres systèmes d’exploitation ?

2 Pourquoi Linux ?

Cette partie apporte les éléments de réponse à cette question.

2.1 Prix Tout d'abord, La raison économique est souvent tenue compte, et puis on n'a pas peur de dire le prix. Linux est gratuit et sans royalties à payer pour chaque produit vendu à base de Linux, ce qui est important pour des systèmes destinés à être fabriqués en grande série, et où chaque coût supplémentaire doit être évité. Toutes les distributions Linux sont disponibles gratuitement au téléchargement par Internet, D'ailleurs, les outils de développement d'un Linux comme les compilateurs, le IDE, la bibliothèque…etc sont disponibles à faible coût ou gratuits parce que fonctionner en terme de GNU. Donc les coûts de mise en œuvre de Linux sont réduits. Un avantage de prix par rapport aux autres OS.

réduits. Un avantage de prix par rapport aux autres OS. ETUDE, CONSEIL ET REALISATION DE SYSTEMES

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Solutions techniques 30

Solutions techniques

30
30

2.2 "Source code" disponible et gratuit

Linux est un logiciel libre, Donc le code source est disponible au public. Cela donne le pouvoir aux utilisateurs d'utiliser ce logiciel comme ils l'entendent. On peut ainsi voir directement à travers les fichiers sources ce que fait le noyau Linux voire modifier son comportement au besoin. C'est très bien pour la construction d'un Linux embarqué.

2.3 Beaucoup de pilotages et outils de développement disponibles

Les pilots sont importants dans une situation où les composants électroniques évoluent rapidement, les constructeurs n'ont pas le temps de fournir les pilotes logiciels pour tous les systèmes d'exploitation existants. Maintenant, Linux offre l'avantage nombreux pilotes existent souvent en modèle "Open Source", et sont donc facilement modifiables ou adaptables, si le besoin s'en faisait sentir. Pour développer une application, Il est nécessaire d'avoir les outils comme les compilateurs, IDE, et le déboguer. Linux supporte le GCC, GDB four déboguer et beaucoup de IDE. Pour le développement de OS Embarqué, la chaîne de développement qui s'appelle "cross-compilation" en anglais (compilation pour une machine cible différente de la machine qui sert à générer un programme) est très importante. La communauté de Linux Embarqué fournit suffisamment les outils de développement nécessaires.

2.4 Plein d'applications L’application étant supporté par LINUX est beaucoup diverse, On peut chercher une application adaptée pour votre domaine. D’ailler, l’utilisation est aussi gratuite.

2.5 Support de réseau

La capacité de réseau sera indispensable pour la connectivité IP dans l'embarqué. Linux le très bon support en réseaux. Il supporte le plus nombreux de protocoles possibles de réseau testés été prouvés depuis des années comme suit. Cela permet à votre système d’être interopérabilité.

TCP/IP réseau.

Routage /Firewalling.

Serveur de Telnet

SMB, NFS.

Protocoles WAN:X.25, AX.25, HDLC et ATM.

2.6 La multitude des architecture supporté

Linux fonctionne sur un grand nombre d'architecture, mais non toutes les architectures sont utilisées dans le linux embarqué :

DEC Alpha

http://www.alphalinux.org

Processeur ARM et StrongARM

http://www.arm.linux.org.uk

http://www.uclinux.org

Hitachi SuperH

http://www.m17n.org/linux-sh

i386 (x86)

http://www.linux.org

Motorola 68K

http://www.linux-m68k.org

http://www.uclinux.org

IA-64

http://www.linuxia64.org

Processeur MIPS

http://www.oss.sgi.com/mips

Motorola PowerPC

http://www.linuxppc.org

Sparc (32 et 64 bits)

http://www.ultralinux.org

Tableau 4-1 Les architectures supporté par linux

Tableau 4-1 Les architectures supporté par linux ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Solutions techniques 31

Solutions techniques

31
31

2.7 Le marché

Solutions techniques 31 2.7 Le marché Figure 4-1 Le développement des OSs Embarqués, En 2004 9

Figure 4-1 Le développement des OSs Embarqués, En 2004 9

Selon VDC (www.vdc.com), qui a étudié sur des plateformes de matériel, des logiciels, Linux, Java, et logiciel ouvert de source, et des outils de développement. Il conclut que Linux Embraqué se développe très rapidement. On utilise de plus en plus linux pour la stratégie de développement de ses produits. Et Linux embarqué, aujourd’hui, est un premier choix.

9 http://www.linuxdevices.com/articles/AT4036830962.html

9 http://www.linuxdevices.com/articles/AT4036830962.html ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Solutions techniques 32

Solutions techniques

32
32

Chapitre 2 Linux un système d’exploitation pour l’embarqué, comment ?

1 Introduction La construction d’un linux pour l’embarqué se base sur linux normale mais avec des modifications qui les exigent le matériel et l’objectif de système embarqué. Alors c’est quoi ces modifications et pourquoi ?

2 Architecture de linux

A partir les caractéristiques et l'architecture du LINUX en général, on peut donner un exemple sur

l'architecture logicielle d'un Linux Embarqué car elle va être notre base pour le développement.

car elle va être notre base pour le développement. Figure 4-2 l'architecture de linux  Chargeur

Figure 4-2 l'architecture de linux

Chargeur de démarrage

Système de fichiers

Bibliothèques (librairies)

Noyau

Utilitaires de base

Applications

Pilotes

présentés ou non dans les différents systèmes. Cela dépend de

l’architecture cible et l’objectif de système.

Les applications utilisent un ensemble de l'APIs fourni par le noyau, Donc le noyau de linux va être porté avec un peu ou pas de changements. Cela permet de réutiliser les logiciels existence pour Linux embarqué.

Le noyau doit pouvoir charger et/ou accéder à un file-system en mémoire local ou en réseau par NFS 10 ou

FTP 11 . Un Système de Fichiers doit être présent dans Linux embarqué.

Ces composants Peut-être sont

10 NFS ou Network File System est un Protocole de communication développé par Sun Microsystems qui permet à un Ordinateur d'accéder à un système de fichier via un Réseau. 11 FTP est un Protocole de communication destiné à l'échange de fichiers sur un Réseau TCP/IP

destiné à l'échange de fichiers sur un Réseau TCP/IP ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Solutions techniques 33

Solutions techniques

33
33

Pourtant, les services exportés par le noyau sont souvent incapables pour être employés directement par des applications. Au lieu de cela, les applications se basent sur des bibliothèques qui fournir les APIs familiers et services abstraits qui communique avec le noyau pour obtenir la fonctionnalité désirée.

La bibliothèque principale employée par la plupart des applications de Linux est la bibliothèque de GNU C. Pour les systèmes embarqués de Linux, La librairie GNU peut être remplacée en autre bibliothèque.

2.1 Chargeur de démarrage ou le bootloader

Le bootloader est un petit programme nécessaire pour tout système embarqué baser sur des OSs et qui est chargé de :

Initialisation matérielle

– CPU, mémoire, (mémoire flash)

Commandes de monitoring ou tests

(optionnels)

– Accès mémoire

– Accès flash

Chargement de fichiers

Mise à jour du système

Chargement du noyau – Décompression

Chargement (optionnel) de système ``root'' initial provisoire (initrd)

Et on trouve plusieurs types de bootloader ces qui sont générale tel que syslinux, blob, u-boot qui j’ai le utilisé pour le développement, et grup …et ces qui sont spécifique au matériel et qui nécessite de configurations particuliers et parfois ils exigent même les adresses des mémoires.

Logiciel

Architecture de

Types

Description

processeurs

d’amorçage

LILO

x86

-

Disque Dur

Le bootloader principal pour le Disque

-

Mémoire de

commun sous Linux

Flash

GRUB

x86

-

Disque Dur

Une version avancée de LILO

-

Mémoire de

Flash

- DOC

- TFTP, NFS

U-BOOT

Tous

Tous les types

le bootloader universel basé sur ARM-Boot, pour presque tous les processeurs embarqués :

REDBOOT

Tous

Tous

Développé par RedHat

Tableau 4-2 comparaison bootloaders

J’ai travaillé avec u-boot car le plus adapter pour l’embarqué et on plus pour l’ARM et aussi car il offre la possibilité de charger le noyau et le système de fichier par réseau avec NFS ou FTP qui m’a trop facilité le développement.

2.2 Noyau

Le noyau est le composant le plus important du système d'exploitation. Son but est de contrôler le matériel d'une façon logique et il fournit les services de bas niveau aux utilisateurs de haut niveau. Comme avec autre Unix, Linux conduit des dispositifs, contrôle des accès d'I/O, gestion de processus, gestion de la

des accès d'I/O, gestion de processus, gestion de la ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Solutions techniques 34

Solutions techniques

34
34

mémoire, manipule la distribution des signaux (ils nécessitent peut être des patchs) chargement de système de fichier, et on trouve souvent des noyaux avec des pilotes compiler en dur.

2.3 Pilotes de périphérique

Vous n'avez pas besoin d'écrire vos pilotes de zéro. Vous pouvez réutiliser le code de pilotes libres similaires. Les pilotes peuvent être compilés statiquement dans le noyau ou comme des modules à charger par l’utilisateur après le démarrage de noyau, et le choix entre le deux dépond de système embarqué et ces ressources.

Les pilotes sont chargés à la gestion de ressource matérielle (E/S mémoire, E/S ports, les interruptions …) en assurant les communications entre les matériels et la couche supérieur.

2.4 Système de fichiers

Un système de fichiers est un format de stockage des fichiers sur des supports tels que le disque dur, la disquette, le cd-rom et autres mémoires de masses. Les systèmes de fichiers les plus connus sur les architecture x86 sont FAT16, FAT32, NTFS (formats Windows), et Ext2 pour Linux ou encore ISO 9660 (le format des cd-rom). Si Windows ne reconnaît que son propre système de fichier, en plus du système des cd- rom, Linux a la possibilité de lire et écrire sur un grand nombre de système de fichiers provenant d’Os multiples.

Lorsque l’on travaille avec un système d’exploitation de type Unix comme Linux, on ne peut pas supprimer son système de fichier. Celui-ci fait intégralement parti du processus de fonctionnement de l’ensemble de l’Os.

2.5 Bibliothèques (Librairies)

Ces sont les bibliothèques nécessaires pour le bon fonctionnement de système tel que glibc2, libc5 … et aussi on peut trouver des bibliothèques additionnels pour le réseau ou le graphique …

2.6 Utilitaires de base

Ces sont les applications de base tel que le SHEL, les éditeurs de texte, la gestion de utilisateurs, etc ….

2.7 Les applications

Ces sont les applications nivaux utilisateur comme les jeux, les éditeurs des images, etc ….

D’après la définition de système embarqué ; que est un système aves des ressources matériel réduit et qui va remplir une tache bien déterminé ; on peut penser à optimiser notre linux pour répondre aux contrainte matériel (mémoire), mais comment ? On éliminant tout qui n’est pas nécessaire pour exécuter notre tache.

3 Optimisation La construction d’un système Linux embarqué passe par l’analyse du système Linux standard. Cette analyse permet de déterminer les parties modifiables afin d’optimiser le système d’exploitation. L’optimisation n’ira pas dans le sens des performances (vitesse d’exécution), mais dans celui de la taille occupée en mémoire vive et en mémoire de masse. En effet, à l’heure actuelle bien des systèmes embarqués sont équipé des mémoires (vive RAM et de masse FLASH) de capacité importante (pour notre système est équipé de 64M pour le RAM et 256M pour le FLASH). Mais, encore le coût prohibitif de la mémoire (RAM et de masse) impose de trouver des solutions quant à la diminution de la taille de stockage de l’Os.

L’optimisation du système passe par la réduction des différents blocs qui constituent le système d’exploitation Linux. Il s’agit d’opérer, une transformation au nivaux du noyau que peut subir une optimisation en vue d’être débarrassé des pilotes de périphériques inutiles, même la partition de swap peut judicieusement être remise en question, etc.

de swap peut judicieusement être remise en question, etc. ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Solutions techniques 35 Figure 4-3:Optimisation de Linux 3.1 L’optimisation de système de fichier Discuter du

Solutions techniques

35
35
Solutions techniques 35 Figure 4-3:Optimisation de Linux 3.1 L’optimisation de système de fichier Discuter du choix

Figure 4-3:Optimisation de Linux

3.1 L’optimisation de système de fichier Discuter du choix d’un système de fichier et du logiciel permettant au système d’exploitation de le gérer peut paraître inutile lors d’une configuration standard d’un Pc de bureau. Et Lorsqu’on parle d’un système embarqué, il faut avoir à l’esprit, qu’il évolue dans des conditions très rudes que nous faire pensé à bien choisir le type de système et l’adapter sans perdre le standard et la philosophie du système de fichier de linux (Unix).Linux supportant un nombre impressionnant de systèmes de fichiers, or je vais juste présenter trois que parais bien adapter pour l’embarqué.

Ext2 : Il s’agit du système de fichier le plus utilisé actuellement sous Linux. Son utilisation sur des stations de travail ou des serveurs ne pose aucun problème. En utilisant un système de redondance des structures vitales, il permet souvent de retrouver un système cohérent après un arrêt forcé, grâce à un utilitaire semi-automatique du nommé e2fsck.

Initrd : L’une des options précieuses de Linux consiste dans la possibilité de créer de petite image de boot en utilisant le système de fichiers initrd. Initialement destiné à simplifier la procédure d’installation, le système de fichier initrd permet de charger un petit système de fichiers en mémoire vive depuis son lieu de stockage. Ce système de fichier est compressé au format gzip. Le noyau le décompresse en RAMDisk12 au moment du démarrage. Avant la création du système initrd il était impossible de démarrer Linux d’un support quelconque sans que le driver pour ce support n’ait été préalablement compilé avec le noyau. Avec initrd un petit système de fichiers contenant les drivers essentiels et les scripts de démarrage est chargé avec le noyau. Ce dernier décompresse le système de fichiers et exécute un fichier nommé linuxrc. Ce script met en place les drivers manquants pour compléter la procédure de démarrage. Lorsque le script se termine le système de fichiers initrd est démonté, la mémoire occupée est libérée et la procédure d’initialisation du système se poursuit d’une façon normale.

Il est alors concevable de détourner le système initrd afin qu’ils deviennent le système de fichier d’une machine embarquée :

• Comme le noyau, le système de fichier initrd est compressé et donc ne prend pas beaucoup de place en stockage.

12 Le RAMDisk permet d’obtenir une partition similaire à celle rencontrée sur une mémoire de masse en mémoire vive.

rencontrée sur une mémoire de masse en mémoire vive. ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Solutions techniques 36

Solutions techniques

36
36

• Le système de fichier et le noyau peuvent être fusionnés pour ne former plus qu’un seul gros fichier.

• La mémoire de masse, par exemple une mémoire Flash, peut être réduite à son minimum.

Remarque : Pour utiliser initrd, le noyau doit-être compilé avec les options pour le RAM disque.

JFFS2 : Le Journaling Flash File System 2 fut développé à l’origine pour les mémoires Flash qui, imposent quelques contraintes de gestion. Pour s’accommoder au mieux de la limite du nombre de modifications d’une zone de données, ce système de fichiers ne réécrit jamais les données au même emplacement, et garde toujours les versions antérieures cohérentes des données en cours de modification. Ce système de fichier fut développé pour des systèmes embarqués aux ressources limitées.

Il parait que le système de fichiers le mieux adapté aux machines embarquées est le JFFS2. Il n’a cependant pas était possible de le tester. En effet, il parait qu’il est mal adapté avec qemu. En présence de ce problème, l’emploi du système de fichier Ext2 semble être une solution. Et avec la possibilité de le monter en local et le monter sur la carte par NFS ce que me permet de le modifier sans que je suis obliger chaque fois à la charger, et tant que je suis encore en phase de développement et test.

===> Alors l’emploi du système de fichier Ext2 est solution avantageuse dans mon cas.

3.2 Suppression du swapping

On alloue sous Linux un espace mémoire nommé zone de swap. Cet espace est réservé en mémoire de masse, le disque dur dans le cas d’un système de bureau.

Le swapping s’acquitte de deux fonctions majeures :

• Augmenter l’adressage réellement utilisable par un processus ;

• Augmenter la quantité de mémoire vive dynamique (ce qui reste de mémoire vive une fois que le code du noyau et les structures de données statiques ont été initialisées) pour charger les processus

Le swap est utile lorsque le noyau manque dangereusement de mémoire. Le noyau garde toujours une petite réserve de pages mémoire libres qui ne peuvent être utilisées que par les fonctions les plus critiques. Ceci s’avère essentiel pour éviter les pannes système qui pourrait se produire lorsqu’une routine du noyau appelée en vue de libérer des ressources n’est pas en mesure d’obtenir la zone de mémoire dont elle a besoin pour réaliser sa tâche.

Lors de la conception d’un système embarqué, les fonctionnalités exactes sont définies dans la première phase d’un projet. Connaissant avec précision les applications qui s’exécutent sur le système, le concepteur peut prévoir une quantité de mémoire suffisante sans devoir recourir aux services du swapping.

L’optimisation de la taille du système d’exploitation soulève la question de l’utilité de la zone de swap. La suppression de celle-ci entraînerait un gain de place appréciable L’utilisation de la mémoire vive sans swapping augmente également les performances du système en termes de rapidité.

===> La suppression de la zone de swapping est automatiquement par défaut par poky.

3.3 Optimisation de noyau

L’optimisation du noyau se fait par deux nivaux, le premier et de bien configurer le fichier de configuration du noyau pour se débarrasser de tout que est inutile comme les pilotes intitules, et le deuxième est la compression du noyau.

Pour la compression du noyau il faut préciser le type de compression soit zImage ou bzImage au moment de compilation, or le deuxième type ne donne pas un intérêt para port le premier.

type ne donne pas un intérêt para port le premier. ETUDE, CONSEIL ET REALISATION DE SYSTEMES

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Solutions techniques 37

Solutions techniques

37
37

Traditionnellement, les pilotes de périphériques intègrent le noyau, ce pour plusieurs raisons. En premier lieu, la plupart ont besoin d’interagir de façon spécifique avec le matériel, ce que seul le noyau permet. Ce système pose évidemment certains problèmes. Tout d’abord, à chaque ajout de nouveau matériel l’administrateur doit reconstruire le noyau pour y inclure les nouveaux périphériques. Pour y remédier, Linux reconnaît les pilotes chargeables, ajoutés ou supprimés de la mémoire lors du fonctionnement du système. Ces pilotes, qui constituent toujours une partie du noyau, sont compilés séparément et valider qu’au moment de leur utilisation. Pour que le noyau soit à même d’utiliser les modules, une option de compilation spécifique doit être sélectionnée. Si cela est possible, il est préférable dans le cadre d’un système embarqué de compiler les pilotes comme des modules. Ceci n’est malheureusement pas toujours possible, il faut savoir que certains drivers ne peuvent pas être utilisés sous forme de module. Il s’agit plus particulièrement des pilotes de périphériques utiles au démarrage du système (Le pilote du contrôleur IDE dans le cas d’un système x86.).

Dans tout le cas la taille du noyau dépend de l’utilité du système final. C’est en compilant le noyau avec les options désirées que le volume précis peut être défini.

options désirées que le volume précis peut être défini. ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Solutions techniques 38

Solutions techniques

38
38

chapitre 2. Les applications et les paquets nécessaires

1 Introduction Dans le même cadre d’avoir un linux fonctionnelle avec le minimum de taille,

il faut bien choisir les

applications et les paquets que respectent cette contrainte et répondre au bien fonctionnement de système.

Les applications sont les programmes accessibles par l’utilisateur directe or les paquets sont les programme nécessaires pour le noyau et le bon fonctionnement de notre système.

Les applications et les paquets sont bien choisir suivant les objectifs de notre système.

2 Les applications

2.1 BusyBox

BusyBox combine des versions "allégées" de nombreux utilitaires Unix en un exécutable unique et de petite taille. En effet, chaque fichier exécutable individuel contient un en-tête de chargement, dont la taille est loin d’être négligeable par rapport aux instructions du programme proprement dit. BusyBox permet de remplacer la plupart des utilitaires qui se trouvent dans les paquets fileutils, shellutils, findutils, textutils, modutils, grep, gzip, tar, etc. Il représente un environnement POSIX assez complet pour petits systèmes ou systèmes embarqués. BusyBox a été écrit avec pour objectif une optimisation de taille et une utilisation de ressources limitées.

Commandes standards

BusyBox

1500[ko] Commandes utiles

190[ko] busybox

1500[ko] total

190[ko] total

Tableau 2: Taille de BusyBox

Malheureusement, les commandes Shell incorporée ne possède pas toutes les options des commandes externes équivalentes. Cependant, elles s’avèrent plus que suffisantes. L'outil est aussi extrêmement modulaire, ainsi il est facile d’inclure ou d’exclure des commandes à la compilation. Cela permet de l'adapter facilement à chaque type de système embarqué. Sa taille est d’approximativement 200 [ko].

2.2 TinyLogin

TinyLogin fonctionne selon le même principe que BusyBox. Il complète généralement ce dernier, en fournissant des commandes Shell complémentaires pour la gestion des connexions utilisateurs. Il s’agit des commandes addgroup, adduser, getty, login, passwd, su, sulogin.

Commandes standards

TinyLogin

0 /usr/sbin/addgroup

40[ko] ./TinyLogin*

24[ko] /usr/sbin/adduser

16[ko] /sbin/getty

36[ko] /bin/login

28[ko] /usr/bin/passwd

24[ko] /bin/su

12[ko] /sbin/sulogin

140[ko] total

40[ko] total

Tableau 4-3 Taille de TinyLogin

total 40[ko] total Tableau 4-3 Taille de TinyLogin ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Solutions techniques 39

Solutions techniques

39
39

2.3 Temix –webkit

Temix-webkit est notre navigateur embarqué, il est basé sur le navigateur (moteur de rendu) webkit. Pour qu’on soit claire il vaut mieux définir quelques notions. Et ensuite je vais expliquer le choix de webkit.

Définitions Navigateur : Un navigateur web est un logiciel conçu pour consulter le World Wide Web. Techniquement, c'est au minimum un client HTTP. Le navigateur web est composé d'un moteur de rendu des standards du web, d'une interface utilisateur et accessoirement d'un gestionnaire d'extensions appelées plugins.

Un moteur de rendu : Un moteur de rendu HTML est un composant logiciel de base qui permet aux logiciels d'afficher les éléments d'une page web. Ils sont de ce fait le cœur des navigateurs web.

Les standards du Web est une expression désignant différentes technologies et protocoles utilisés sur le Web et en particulier ceux définis par le W3C sous forme de recommandations.

Webkit 13 est une bibliothèque de fonctions permettant aux développeurs d'intégrer facilement un moteur de rendu de pages web dans leurs logiciels. Originellement réservée au système d'exploitation Mac OS X (à partir de la version 10.3 Panther), elle a été portée vers Linux et Windows.

Webkit est un fork du moteur de rendu KHTML du projet KDE utilisé notamment dans le navigateur Konqueror. Elle intègre deux sous-bibliothèques : WebCore et JavaScriptCore correspondant respectivement à KHTML et KJS.

Il passe avec succès le test Acid2 14 et il a obtient 100% au test Acid3 depuis le 27 mars 2008.

Pour quoi webkit ? Dans notre recherche d’un navigateur embarqué on a définit quelque critères qu’il doit les respecter, il doit être on open source, intègre le CGI, JavaScript, XML et CSS, et testé sur l’embarqué.

web sur wikipedia 15 on trouve que les

navigateurs basé sur webkit sont bien placés et intégre le CGI, le JavaScript et …. Et encore webkit est très répondue dans l’embarqué surtout sous IPhone avec le navigateur safari basé sur webkit.

En se basant sur la page de comparaison entre les navigateurs

2.4 Serveur web

Nos besoins nous exigent un simple serveur

web de base et ce qu’il nous offre busybox on activant

l’option HTTPD dans le fichier de configuration de busybox.

3 Les paquets

3.1 Base-files

Ce paquet contient l'arborescence de fichiers de base d'un système linux, ainsi que plusieurs fichiers importants, tels que /etc/host.conf 16 , /etc/issue, /etc/motd 17 , /etc/profile, /etc/nsswitch.conf 18 , entre autres. Il est nécessaire pour construire le système de fichier de notre OS linux.

13 http://en.wikipedia.org/wiki/WebKit

14 Les testes Acid2/3 ceux-ci sont destinés à la vérification du respect des standards du web par les navigateurs internet.

15 http://en.wikipedia.org/wiki/Comparison_of_web_browsers

16 Le fichier /etc/host.conf contient des informations spécifiques pour la configuration de la bibliothèque de résolution de noms.

17 "motd" signifie "message of the day", et il contient généralement des messages destinés aux utilisateurs concernant

l'administration du système (ajout de périphériques, arrêts prévus du système, nouvelles versions de logiciels, etc

18 Fichier de configuration des bases de données systèmes et des services de noms.

).

des bases de données systèmes et des services de noms. ). ETUDE, CONSEIL ET REALISATION DE

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Solutions techniques 40 Tableau 4-4 le système de fichier respectant le standard 3.2 Initscripts Ces

Solutions techniques

40
40
Solutions techniques 40 Tableau 4-4 le système de fichier respectant le standard 3.2 Initscripts Ces scripts

Tableau 4-4 le système de fichier respectant le standard

3.2 Initscripts

Ces scripts de ce paquet initialisent un système standard GNU/Linux Debian au moment du démarrage et le stoppent au moment de l'arrêt ou du redémarrage.

3.3 xserver-Kdrive-fbdev

Ce paquet contient le pilote pour le "fbdev" ou le « frame buffer device » en anglais qui permet à libGGI 19 ou tout programme utilisant libGGI d’afficher sa sortie sur le frame buffer du noyau. Le frame buffer est le moyen habituel de l'affichage graphique sur la plupart des architectures i386 et, pour i386.

3.4 nfs-utils

Ce paquet contient les bibliothèques nécessaires pour l’utilisation du service NFS (Network File Service).

3.5 libération-fonts

Ce paquet contient bibliothèques de fonts qui seront utile pour afficher de texte dans notre navigateur.

3.6 Xinit

Ce paquet contient startx et xinit qui sont des programmes qui facilitent le démarrage d'un serveur X, et le chargement d’une session X

3.7 Netbase

Ce paquet fournit l'infrastructure nécessaire pour les bases d'une mise en réseau TCP/IP.

3.8 Udev

Ce paquet contient le gestionnaire de périphériques udev. Sa fonction principale est de gérer les périphériques dans le répertoire /dev.

19 General Graphics Interface libraries

/dev . 1 9 General Graphics Interface libraries ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Section 5 Développement Développement 41

Section 5 Développement

Développement

41
41
Section 5 Développement Développement 41 1 Introduction Maintenant nous somme prêt à aborder la partie pratique
Section 5 Développement Développement 41 1 Introduction Maintenant nous somme prêt à aborder la partie pratique
Section 5 Développement Développement 41 1 Introduction Maintenant nous somme prêt à aborder la partie pratique
Section 5 Développement Développement 41 1 Introduction Maintenant nous somme prêt à aborder la partie pratique
Section 5 Développement Développement 41 1 Introduction Maintenant nous somme prêt à aborder la partie pratique
Section 5 Développement Développement 41 1 Introduction Maintenant nous somme prêt à aborder la partie pratique
Section 5 Développement Développement 41 1 Introduction Maintenant nous somme prêt à aborder la partie pratique
Section 5 Développement Développement 41 1 Introduction Maintenant nous somme prêt à aborder la partie pratique
Section 5 Développement Développement 41 1 Introduction Maintenant nous somme prêt à aborder la partie pratique
Section 5 Développement Développement 41 1 Introduction Maintenant nous somme prêt à aborder la partie pratique

1 Introduction Maintenant nous somme prêt à aborder la partie pratique après toutes ces définitions. Dans une première partie on va parler du développement (construction) de linux et les applications embarqués et en deuxième partie de le développement web et réseaux et pour la dernière pour la partie de la configuration de hardware et test.

Chapitre 1 Construction de linux et les applications embarqués

Comme on va utiliser l’environnement poky il est indispensable de savoir comment l’utiliser, et pour cela on va commencer cette partie avec une petite introduction sur utilisation de poky (quick Start on anglais)

1 Poky, Comment utiliser ? Poky répond pratiquement à nous besoin (si on veut ne pas dire complètements) comme un environnement de développement dédié linux embarqué, et avec ses outils avancés, sa structuration, sa flexibilité il va nous permettre de configurer et personnaliser aux moindres détails nous applications.

1.1 Installation des paquets nécessaires ==> Il faudra installer les paquets suivants :

build-essential

texi2html

gawk

python

cvs

help2man

diffstat

subversion

bochsbios (only to run

texinfo

wget

qemux86 images)

Tableau 5-1 Les paquets à installer pour utiliser poky

Pour les installer vous pouvez ajouter debian.o-hand.com à APT sources :

 vim /etc/apt/sources.list
 vim /etc/apt/sources.list

Puis ajoutez:

deb http://debian.o-hand.com etch/ deb http://debian.o-hand.com unstable/ deb http://debian.o-hand.com edgy/ deb
deb http://debian.o-hand.com etch/
deb http://debian.o-hand.com unstable/
deb http://debian.o-hand.com edgy/
deb http://debian.o-hand.com feisty/
deb http://debian.o-hand.com gutsy/

Puis lancez la commande suivante :

 apt-get install qemu poky-depends poky-scripts
 apt-get install qemu poky-depends poky-scripts
:  apt-get install qemu poky-depends poky-scripts ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Développement 42

Développement

42
42

1.2 Téléchargement de Poky

==> Vous pouvez le télécharger:

Soit en ligne de commande :

 wget http://pokylinux.org/releases/pinky-3.1.tar.gz
 wget http://pokylinux.org/releases/pinky-3.1.tar.gz

Soit à partir de cet lien http://pokylinux.org/releases/

1.3 Compiler et exécuter une image Apres le téléchargement de Poky, décompressez le dossier :

 tar zxvf pinky-3.1.tar.gz
 tar zxvf pinky-3.1.tar.gz

Pour lancez la compilation une l’image poky-image-sato par exemple il suffit de tapez ces commandes :

 cd pinky-3.1/  source poky-init-build-env  bitbake poky-image-sato
 cd pinky-3.1/
 source poky-init-build-env
 bitbake poky-image-sato

==> Il est de préférence de compiler poky-image-minimal (bitbake poky-image-minimal) pour que ne prendre pas beaucoup de temps.

==> Les images / noyaux construites par Poky sont placés dans le /tmp/deploy/images.

REMARQUE : Ce processus aura besoin d'un accès Internet, et d'environ 9 Go d'espace disque
REMARQUE : Ce processus aura besoin d'un accès Internet, et d'environ 9 Go
d'espace disque disponible, et vous devriez vous attendre d'environ 4 - 5
heures suivant le débit de connexion (pour téléchargement) et
caractéristique de l’ordinateur (pour la compilation).

On peut également télécharger des images et des noyaux :

Le Poky QEMU noyau (zImage * * qemu *. bin) et le système de fichier image compressé (poky-image-*- qemu *. ext2.bz2) que vous aurez besoin de le décompresser avec 'bzip2-d'. Celles-ci sont disponibles à partir de la dernière publication sur http://pokylinux.org/releases/blinky-3.0/ ou de l'autobuilder sur http://pokylinux.org/autobuild/poky/.

 cd pinky-3.1/  source poky-init-build-env  bitbake poky-image-sato
 cd pinky-3.1/
 source poky-init-build-env
 bitbake poky-image-sato

Pour l'exécution (simulation) il faut :

Télécharger les scripts poky-scripts dans le but de simplifier et automatiser le lancement de qemu.

 apt-get install qemu poky-scripts
 apt-get install qemu poky-scripts
le lancement de qemu.  apt-get install qemu poky-scripts ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Développement 43

Développement

43
43

Puis lancez :

$ poky-qemu <kernel> <image>

Exemple :

 poky-qemu zImage-qemuarm.bin poky-image-sato-qemuarm.ext2
 poky-qemu zImage-qemuarm.bin poky-image-sato-qemuarm.ext2
poky-qemu zImage-qemuarm.bin poky-image-sato-qemuarm.ext2 Image 5-1l'image de bureau de poky sato 2 Le portage de

Image 5-1l'image de bureau de poky sato

2 Le portage de linux Pour construire un linux pour un système (machine) sous Poky il faut passer par trois étapes :

Etape 1 : ajout et la configuration de la nouvelle machine ; la machine ici représente la carte de développement.

Etape 2 : configuration de noyau.

Etape 3 : configuration de poky

2.1 Etape 1

Ajouter un fichier at91sam9260ek.conf sous le répertoire meta/conf/machine/ avec

tous les détails de la carte vous trouvez le fichier dans l’annexe A.

Dans ce fichier il faut mentionner :

- Le type de processeur dans la variable

- Liste des architecture compatible avec le processeur PACKAGE_EXTRA_ARCHS = "armv4 armv4t armv5te"

- Le type de l’image de noyau

- Le fichier de configuration de linux pour la carte PREFERRED_PROVIDER_virtual/kernel = "linux-

TARGET_ARCH 20 = "arm"

KERNEL_IMAGETYPE = "zImage"

at91sam9260ek"

20 Voir les définitions des variables dans l’annexe C

0 Voir les définitions des variables dans l’annexe C ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Développement 44

Développement

44
44

- La console de débogage - Les fichiers de configuration général

SERIAL_CONSOLE = "115200 ttyS0" require conf/machine/include/qemu.inc require conf/machine/include/tune-arm926ejs.inc

Ajouter le nom de la carte dans la liste de machines compatibles dans le fichier linux- rc.inc sous le répertoire meta/packages/linux/ sous la variable COMPATIBLE_MACHINE

COMPATIBLE_MACHINE = '(collie|poodle|c7x0|akita|spitz|tosa|hx2000|qemuarm|
COMPATIBLE_MACHINE = '(collie|poodle|c7x0|akita|spitz|tosa|hx2000|qemuarm|
qemux86|bootcdx86|htcuniversal|zylonite|at91sam9260ek)'

Créer le fichier linux-at91sam9260ek.bb dans le repertoire meta/packages/ dont voila son contenue :

require linux-rp.inc # Mark archs/machines that this kernel supports DEFAULT_PREFERENCE = "-1"
require linux-rp.inc
# Mark archs/machines that this kernel supports
DEFAULT_PREFERENCE = "-1"
DEFAULT_PREFERENCE_cm-x270 = "1"
DEFAULT_PREFERENCE_em-x270 = "1"
DEFAULT_PREFERENCE_mpc8313e-rdb = "1"
DEFAULT_PREFERENCE_mpc8323e-rdb = "1"
SRC_URI = "${KERNELORG_MIRROR}pub/linux/kernel/v2.6/linux-2.6.23.tar.bz2 \
file://defconfig-at91sam9260ek "
S = "${WORKDIR}/at-linux-2.6.23"
do_configure() {
rm -f ${S}/.config
cp ${WORKDIR}/defconfig-at91sam9260ek ${S}/.config
oe_runmake oldconfig
}

Les fichiers *.bb sont généralement appelés les «recettes». En général, une recette contient des informations sur un paquet ou une application tels que, les sources de téléchargement (SRC_URI 21 ), tous les correctifs qui s'imposent, les options de configuration spéciale, la méthode de compilation si il nécessite une compilation particulier etc …. 22

2.2 Etape2

Pour la configuration de noyau il faut juste de :

Editer le fichier qemu.inc

PCMCIA_MANAGER = "pcmciautils" PREFERRED_PROVIDER_xserver = "xserver-kdrive" GUI_MACHINE_CLASS =
PCMCIA_MANAGER = "pcmciautils"
PREFERRED_PROVIDER_xserver = "xserver-kdrive"
GUI_MACHINE_CLASS = "bigscreen"
GPE_EXTRA_INSTALL += "gaim sylpheed"
IMAGE_FSTYPES ?= "ext2"
ROOT_FLASH_SIZE = "128"
IMAGE_ROOTFS_SIZE_ext2 ?= "128000"
# Don't include kernels in standard images
RDEPENDS_kernel-base = ""

21 Voir Annexe C

22 Voir Annexe C

= "" 2 1 Voir Annexe C 2 2 Voir Annexe C ETUDE, CONSEIL ET REALISATION

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Développement 45

Développement

45
45

Les variables qu’il faut les voir sont :

- IMAGE_FSTYPES définit le type de système fichier

2.3 Etape 3

- ROOT_FLASH_SIZE la taille de flash

- IMAGE_ROOTFS_SIZE_ext2 et la taille de système de fichier dans cette cas

pour ext2

car on a utilisé le EXT2 23

Apres l’ajout de notre machine Il faut indique Poky à quel est le nom de la machine cible, et qu’il faut le mentionner dans le fichier local.conf sous le répertoire build/conf/ avec la variable MACHINE.

3 Ajout des applications et des paquets

3.1 Construction de temix-webkit

Comme on a défendit au dessus temix-webkit se base sur webkit et on cherche à créer un navigateur :

- léger qui prend pas beaucoup de mémoire

- Il n’affiche que les pages web (pas de barre de menu)

Et pour développer ça je utiliser les langages GTK2+ et C et vous trouvez le code sources de la page temix- webkit.c dans l’annexe A.

3.2 Configuration de busybox

Nous avons besoin d’un serveur web de base et on a dit que busybox intègre un serveur léger est stable que est HTTPD. Pour configurer busybox avec ce service aller sous pinky/meta/packages/busybox /busybox- 1.xx/ et ouvrir le fichier defconfig et chercher CONFIG_HTTPD et de commenter le et mettre devant un y.

4 Compilation Apres la sélection et la configuration des paquets à compiler et aussi la
4 Compilation
Apres la sélection et la configuration des paquets à compiler et aussi la configuration de linux on va lancer
la construction de notre système (compilation). Et pour faire ça sous avec poky il faut créer une recette (fichier
.bb) sous le dossier meta/packages/image et que en va l’appeler temix-web-2.bb dont voila son contenu :
#
#
Copyright (C) 2008 OpenedHand Ltd.
#
IMAGE_INSTALL = "base-files base-passwd busybox initscripts xinit xserver-kdrive-fbdev nfs-
utils liberation-fonts netbase sysvinit tinylogin udev temix-webkit"
# remove not needed ipkg informations
ROOTFS_POSTPROCESS_COMMAND += "remove_packaging_data_files"

Dans la variable IMAGE_INSTALL on met tous les paquets et les applications à compiler. Pour la variable ROOTFS_POSTPROCESS_COMMAND, on demande ici à poky d’effacer le fichier temporaire de paquetage.

23 Voir la section solution

temporaire de paquetage. 2 3 Voir la section solution ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Développement 46

Développement

46
46

Chapitre 2 Programmations

web et réseaux

1 Programmation web

1.1 Le Démo web- igm2.0 La démo web-igm2.0 est la version 0 d e l’interface graphique (menu) de notre terminal e, c’est un ensemble des pages web (XML et Html) affiché par n otre navigateur web embarqué.

(XML et Html) affiché par n otre navigateur web embarqué. Image 5-3 menu principale d’IGM2.0 Image

Image 5-3 menu principale d’IGM2.0

web embarqué. Image 5-3 menu principale d’IGM2.0 Image 5-2 menu Arrêts d’IGM2.0 Image 5-4 un désigne

Image 5-2 menu Arrêts d’IGM2.0

menu principale d’IGM2.0 Image 5-2 menu Arrêts d’IGM2.0 Image 5-4 un désigne imaginé d’IGM2.0 vous trouvez

Image 5-4 un désigne imaginé d’IGM2.0

vous trouvez dans l’annexe A

juste le code de fichier princip ale.xml et terminal.xsl et les autres pages s ont de même modèle que principale.xml.

Il s’agit ici de la programmati on web pur avec XML, HTML et xslt (XSL), dont

la programmati on web pur avec XML, HTML et xslt (XSL), dont ETUDE, CONSEIL ET REALISATION

ETUDE, CONSEIL ET REALISATION DE SYSTEMES E LECTRONIQUES ET MECANIQUES

Développement 47

Développement

47
47

1.2 JavaScript et les raccourcis des boutons Comme on n’a pas des boutons suffisantes sur la carte 24 pour configurer les raccourci on a les simulé avec le clavier. Et pour faire ça on utiliser le langage JavaScript qui nous permet de récupérer les codes de touches et suivant cette idée on a créé une fonction que se lance à l’ouverture de chaque page web et qui :

Détecte tout les liens dans la page

Détecte le bouton enfoncé

Faire le lien entre les liens et les boutons (les boutons (code) sont choisis à paravent).

Elle ouvre ce lien s’il existe

Vous trouvez le code de la fonction dans le fichier terminal.xsl dans l’annexe A

1.3 Ajax, récupérer les valeurs des capteurs

Pour la récupération de la valeur d’un capteur (vitesse ou compteur de pièces) on a utilisé Ajax pour mettre à jour le champ de compteur.

On va récupérer la valeur de deux capteur ; u n pour le nombre de pièces fabriques et l’autre pour l’état de la machine.

L’idée consiste à créer une fonction qui envoi une requête http au serveur fonctionnant sur la carte par la

méthode XMLHttpRequest. Le serveur quand il détecte cette demande il exécute un script bash (ou un programme) dans le dossier cgi-bin, cette script va renvoyer une page XML comme réponse.

Ensuite il suffit d’analyser cette page par un code JavaScript pour récupérer la valeur de capteur.

setTimeout on va contrôler l’exécution de cette fonction chaque les n

millisecondes suivant la fréquence de capteur le débit de connexion réseaux.

RQ : Pour simuler les deux capteurs on a utilisé le deux boutons ; une pour le capteur de comptage et l’autre pour l’état de la machine.

Etant donné qui la page XML est créé par un programme LISTEN qui tourne sur la carte en arrière plans et qui écoute les boutons et à chaque appuis sur un bouton on incrémente le compteur correspondant.

Vous trouvez dans l’annexe A, le code source de programme LISTEN et dans la page terminal.xsl le code de la fonction de la mise à jour.

Et avec la méthode

2 Programmation réseaux Pour cette parte est en cours de développement au moment de taper ces lignes, mais on a arrivé à envoyer la valeur de compteur et l’état de la machine var la base de donné de serveur IGM (serveur rails) avec la commande curl PUT :

curl -H "Accept: text/xml" -X PUT -d "cpt_pieces= 256" "etat_machine= 1" http://192.168.10.14
curl -H "Accept: text/xml" -X PUT -d "cpt_pieces= 256" "etat_machine= 1"
http://192.168.10.14 :8080/machines/1.xml

Et récupérer le numéro d’OF par la commande curl

curl -H "Accept: text/xml" http://192.168.10.14 :8080/ordre_fabrications/1.xml
curl -H "Accept: text/xml"
http://192.168.10.14 :8080/ordre_fabrications/1.xml

La réponse de serveur est une page XML et pour recéperez la valeur il faut analyser cette page.

===> Vous trouvez également les codes de scripts bash qui automatise tous la synchronisation dans l’annexe A.

24 Voir les caractéristiques de la carte dans la section outils de développements

de la carte dans la section outils de développements ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Développement 48

Développement

48
48

Chapitre 3 Configuration de la carte et test

1 Configuration de la carte Comme on a décrit au dessus que u-boot est notre chargeur (bootloader) et par suit il faut l’installer sur la carte. Mais on à besoin sur la carte d’un autre programme qui va lui-même charger u-boot, ce programme est nommé AT91Bootstrap.

AT91Bootstrap est une première étape d'amorçage qui fournissent un ensemble d'algorithmes pour gérer l’initialisation de matériels (GPIO, Horloge, SDRAM, etc) et pour télécharger votre application principale

de certaines mémoire flash (Data Flash, FlashNand,…) à la mémoire principale et à la démarrer.

charger et exécuter le chargeur U-Boot

AT91Bootstarp est utilisé ici pour configurer le matériel et

nécessaire pour le démarrage de système d’exploitation (charger et lancer le noyau).

Et pour charger AT91Bootstrap et u-boot sur la carte on va utiliser le programme SAM-BA.

1.1 Chargement de AT91Bootstrap sur la carte Mais, avant tout il faut se connecter à la carte via le port série. Vous pouvez utiliser le programme minicom 25 , et si vous ne l’avez pas vous pouvez le télécharger : sudo aptitude Install minicom.

Télécharger l’AT91Bootstarp pour la carte AT91sam9200ek

- Les sources de AT91Bootstrap est téléchargeable à partir de site de ATMEL :

http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4093
http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4093

Et vous trouvez également de documentation sur la méthode de la compilation et la configuration.

- Dans le cas d’utilisation standard (configuration standard pour le chargement de u-boot de la DataFlash) d’AT91Bootstarp ; comme notre cas ; on peut télécharger le fichier .bin compilé configuré pour des différentes cartes à partir :

ftp://www.linux4sam.org/pub/at91bootstrap/AT91Bootstrap1.8/
ftp://www.linux4sam.org/pub/at91bootstrap/AT91Bootstrap1.8/

Chargement

Avant de commencer les étapes de chargement il faut vérifier :

J7 doit être ouvert (BMS = 1) pour démarrer à partir Boot ROM

être ouvert (BMS = 1) pour démarrer à partir Boot ROM Image 5-5 La position de

Image 5-5 La position de jumper 7 sur la carte

25 est un programme de contrôle de modem et d'émulation de terminal pour linux

de modem et d'émulation de terminal pour linux ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Développement 49

Développement

49
49

la mise sous tension de la carte

vérifier la connexion USB

Les étapes de chargement :

Télécharger SAM-BA : http://www.atmel.com/dyn/products/ faq_card.asp?faq_id=1981

Lancer SAM-BA

Dans les menus déroulent sélectionner la connexion USB et la carte AT91SAM9260EK

Connecter

Une fenêtre s’affiche

AT91SAM9260EK  Connecter  Une fenêtre s’affiche Image 5-6 Exécution de SAM-BA Image 5-7 La fenêtre

Image 5-6 Exécution de SAM-BA

Une fenêtre s’affiche Image 5-6 Exécution de SAM-BA Image 5-7 La fenêtre de SAM-BA 1. Choisir

Image 5-7 La fenêtre de SAM-BA

1. Choisir ou AT91Bootstrap va être chargé dans notre cas c’est le DataFlash

2.

Initialiser le DataFlash on choisir Enable Dataflash on CSO dans le menu Scripts puis exécuter.

Enable Dataflash on CSO dans le menu Scripts puis exécuter. ETUDE, CONSEIL ET REALISATION DE SYSTEMES

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Développement 50

Développement

50
50

3. Puis choisir Send boot file, pour envoyer les fichiers de démarrage, puis appuyez sur Exécuter

4. Il faut indiquer l’adresse 0x0 et la taille du fichier 0x1000.

5. Sélectionnez le fichier binaire at91bootstrap et appuyez sur Send File.

6. Fermer SAM-BA et débranchez le câble USB

1.2 Chargement de u-boot Pour u-boot c’est pratiquement les mêmes étapes qu’AT91Bootstrap

Télécharger l’U-Boot pour la carte AT91sam9200ek

Le lien pour les sources : http://www.atmel.com/dyn/products/app_notes.asp?family_id=605

Le

lien

pour

le

fichier

.bin :

ftp://www.linux4sam.org/pub/uboot/u-boot-1.1.5_atmel_1.5/u-boot-

1.1.5_atmel_1.5_at91sam9260ek.bin

Chargement

Les mêmes étapes justes il faut choisir le fichier u-boot.bin à charger et changer l’adresse de chargement à

0x08400.

à charger et changer l’adresse de chargement à 0x08400. Image 5-8 le Flash Memory map Et

Image 5-8 le Flash Memory map

Et voila un très bon site que décrivent toutes les étapes pour charger un linux sur les cartes Atmel AT91SAMxxxxek : http://www.linux4sam.org/twiki/bin/view/Linux4SAM/GettingStarted

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Développement 51

Développement

51
51

2 Test

2.1 Monter et flasher le noyau

2.1.1 Configuration de u-boot Au moment de mettre en tension la carte ou on appuis sur le bouton de reset on aura cette démarche :

on appuis sur le bouton de reset on aura cette démarche : Figure 5-1 démarrage d’u-boot

Figure 5-1 démarrage d’u-boot

Et pour configurer u-boot il faut passer en mode console en appuyant sur Entrer (voir le figure).

Connecter la carte avec le PC de développement (serveur) avec le câble ethernet

Configurer le Pc en serveur

 Sudo ifconfig eth0 :1=192.168.10.1  Sudo /etc/init.d/dhcp-server start
 Sudo ifconfig eth0 :1=192.168.10.1
 Sudo /etc/init.d/dhcp-server start

Définir l'adresse MAC de la carte réseau (attention, on ne peut pas la réécrire à la suite de la commande saveenv. Attention, le saveenv est nécessaire .

Si on veut utiliser les fonctions NFS-ROOT de linux

 setenv ethaddr 00:12:34:56:78:9A  saveenv
 setenv ethaddr 00:12:34:56:78:9A
 saveenv
de linux  setenv ethaddr 00:12:34:56:78:9A  saveenv ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Développement 52  Configurer u-boot pour télécharger l'image noyau via tftp 26 et la booter:
Développement
52
 Configurer u-boot pour télécharger l'image noyau via tftp 26 et la booter:
 setenv ipaddr 192.168.10.6;
 setenv serverip 192.168.10.1;
 setenv loadaddr 20000000
 setenv bootfile uImage
 setenv rootfs /home/lla/sandbox/temix/rootfs
 setenv go setenv bootargs console=ttyS0,115200 root=/dev/nfs
rw ip=bootp nfs-root=\$(serverip):\$(rootfs)\; tftp
\$(loadaddr) \$(bootfile)\; bootm \$(loadaddr)
 saveenv
 Pour lancer:
 run go
 run go

2.1.2 Pour flasher linux

Définir les scripts de flash (ici uImage est le kernel)

 setenv flash-kernel tftp 20000000 uImage \; cp.b 20000000 D0030000 100000  setenv flashit erase
 setenv flash-kernel tftp 20000000 uImage \; cp.b 20000000
D0030000 100000
 setenv flashit erase D0030000 D03FFFFF \; run flash-kernel
 saveenv
 pour flasher :
 run flashit
 run flashit

2.1.3 Pour télécharger le fichier de système par nfs

définir la variable bootargs

 Bootargs=debug console=ttyS0,115200 root=/dev/nfs rw ip=bootp nfs-root=192.168.10.1:/home/yf/image
 Bootargs=debug console=ttyS0,115200 root=/dev/nfs rw ip=bootp
nfs-root=192.168.10.1:/home/yf/image

Rq : il faut ajouter le répertoire /home/yf/image dans le fichier d’export de nfs /etc/exports

copier le noyau flasher dans l’adresse 20000000

 cp.b D0030000 20000000 100000
 cp.b D0030000 20000000 100000

pour booter

 bootm 20000000
 bootm 20000000

26 C’est le protocole FTP minimisé

bootm 20000000 2 6 C’est le protocole FTP minimisé ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Développement 53

Développement

53
53

2.2 Lancer les applications

Lancer le serveur web

o

Il faut copier le pages web crée (voir le démo web-igm2.0) dans le système de fichier.

o

Créer le dossier cgi-bin sous la racine et copier dans ce dossier le script bash qui va renvoyer la page XML (voir Ajax, récupérer les valeurs des capteurs).

o

Lancer le serveur (busybox httpd) sous la racine.

 Busybox httpd –p 8080
 Busybox httpd –p 8080

Lancer du programme LISTEN (voir Ajax, récupérer les valeurs des variables)

Le programme LISTEN doit être compilé avec poky (compilateur de poky) puis le copier dans le système de fichier sous /usr/bin.

 listen &
 listen &

Lancer le programme temix-webkit

Comme on n’a pas d’écran (pour le moment) on va exporter l’affichage sur le PC de développement :

o Connecter la carte avec le PC avec connexion ethernet o Configurer le Pc (voir
o
Connecter la carte avec le PC avec connexion ethernet
o
Configurer le Pc (voir Pour flasher linux)
o
Taper sur le terminal de la carte
 Export DISPLAY=192.168.10.1 :0
o Sur le Pc taper  xhost +
o Sur le Pc taper
 xhost +

o Puis sur la carte

 temix-webkit –h 640 –w 480 –u http://192.168.10.6/source/principal.html
 temix-webkit –h 640 –w 480 –u
http://192.168.10.6/source/principal.html

Source : étant le dossier ou se trouvent les pages web sous la racine

le dossier ou se trouvent les pages web sous la racine ETUDE, CONSEIL ET REALISATION DE

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Développement 54 Image 5-9 t emix-webkit exécuter sur la carte mais exporter saur le pc

Développement

54
54
Développement 54 Image 5-9 t emix-webkit exécuter sur la carte mais exporter saur le pc Image

Image 5-9 t emix-webkit exécuter sur la carte mais exporter saur le pc

emix-webkit exécuter sur la carte mais exporter saur le pc Image 5-10 connexion à la carte

Image 5-10 connexion à la carte à partir de PC

saur le pc Image 5-10 connexion à la carte à partir de PC ETUDE, CONSEIL ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES E LECTRONIQUES ET MECANIQUES

Conclusion 55

Conclusion

55
55

Conclusion

Dans le cadre de mon stage je devais reconcevoir le terminal IGM50 en IGM2.0. Comme expliqué précédemment cela a nécessité la mettre en œuvre sur une carte d’evaluation, un système d’exploitation linux, un écran TFT avec dalle tactile, un lecteur RFID, le pilotage d'entrées/sorties logiques et d'entrées , analogiques, serveur web, communication TCP/IP avec la supervision, interface graphique via un navigateur Web embarqué. Au terme de ces 16 semaines les parties suivantes sont achevées:

- Intégration un système d’exploitation linux.

- le pilotage d'entrées/sorties logiques et d’entrées, analogiques

- serveur web

- communication TCP/IP avec la supervision,

- interface graphique via un navigateur Web embarqué.

Pendant la durée de ce stage, j'ai bien pu mettre en pratique les connaissances acquises durant mes études à l’ENISO. D'un point de vue plus personnel, ce stage m'a permis d'être confronté aux réalités du monde du travail et également appris l'importance du travail en équipe et l'intérêt de la communication.

travail en équipe et l'intérêt de la communication. ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET

ETUDE, CONSEIL ET REALISATION DE SYSTEMES ELECTRONIQUES ET MECANIQUES

Bibliographie 56 Bibliographie Livre :  Linux système programming  Embedded linux primer  Linux

Bibliographie

56
56
Bibliographie 56 Bibliographie Livre :  Linux système programming  Embedded linux primer  Linux Device
Bibliographie 56 Bibliographie Livre :  Linux système programming  Embedded linux primer  Linux Device

Bibliographie