Guide de mise en oeuvre de PEGASE Plateforme Experte Générique pour Applications Sans- l Embarquées

La page est créée Gérard Guillet
 
CONTINUER À LIRE
Guide de mise en oeuvre de PEGASE Plateforme Experte Générique pour Applications Sans- l Embarquées
www.ifsttar.fr
vincent.le-cam@ifsttar.fr                                             www.a3ip.com
02-40-84-57-78                                           benoit.mathonnet@a3ip.com
                                                                      02-40-94-78-41

       Guide de mise en oeuvre de PEGASE
        Plateforme Experte Générique pour
         Applications Sans-l Embarquées
                      Vincent LE CAM. William MARTIN.

                            Octobre 2011 - Version 1.F
Guide de mise en oeuvre de PEGASE Plateforme Experte Générique pour Applications Sans- l Embarquées
Versions du document
V1.F, le 28 octobre 2011
  1. Correction et remise en forme pratique du document
  2. Intégration du passage de 32 Mo à 64 Mo de RAM

V1.E, le 17 septembre 2010
  1.   Ajout de SSH client et serveur
  2.   Ajout de stratégies d'économie d'énergie
  3.   Ajout de l'authentication sur les sessions telnet
  4.   Ajout du support de la carte lle 8 voies analogiques bipolaire
  5.   Modication de la mise en place de la toolchain
  6.   Ajout de la librairie PEGASE
  7.   Mise a jour de la version de uClinux (2009R1.1-RC4)

V1.D
  1. Ajout de la procédure d'extinction du module WiFi
  2. Mise a jour de la version de uClinux (2008R1.5)

V1.C
  1. Ajout de la FAQ
  2. Amélioration de l'exemple TestServeurTCPIP
  3. Amélioration de l'exemple Envoi de signaux à un superviseur

V1.B
  1. Remplacement de l'exemple TestGPS par un exemple plus complet TestHeureAb-
     solue

V1.A
  1. Création du document

                                            II
Guide de mise en oeuvre de PEGASE Plateforme Experte Générique pour Applications Sans- l Embarquées
Ce document est distribué sous licence Creative Commons Paternité-Partage des Condi-
tions Initiales à l'Identique (http://creativecommons.org/licenses/by-sa/2.0/).

Vous êtes libres de :
                              reproduire, distribuer et communiquer cette création
                              au public

                              modier cette création

Selon les conditions suivantes :
                              Paternité. Vous devez citer le nom de l'auteur ori-
                              ginal de la manière indiquée par l'auteur de l'oeuvre
                              ou le titulaire des droits qui vous confère cette autori-
                              sation (mais pas d'une manière qui suggérerait qu'ils
                              vous soutiennent ou approuvent votre utilisation de
                              l'oeuvre).

                              Partage des Conditions Initiales à l'Identique.
                              Si vous modiez, transformez ou adaptez cette créa-
                              tion, vous n'avez le droit de distribuer la création qui
                              en résulte que sous un contrat identique à celui-ci.

                                          III
Guide de mise en oeuvre de PEGASE Plateforme Experte Générique pour Applications Sans- l Embarquées
Table des matières
1 Présentation générale                                                                                                            1
  1.1   Introduction . . . . . . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    1
  1.2   Un concept phare: la généricité . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    1
  1.3   Protocole TCP/IP via WiFi 802.11g .           .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    5
  1.4   PEGASE: une plateforme télé-opérable          .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    7
  1.5   Contenu du kit PEGASE . . . . . . . .         .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    7

2 Présentation détaillée de PEGASE                                                                                                 8
  2.1   Principaux composants de la carte mère . .                .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    8
  2.2   Caractéristiques de consommation électrique               .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    8
  2.3   Mode de Démarrage . . . . . . . . . . . . .               .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    9
  2.4   Connectique . . . . . . . . . . . . . . . . . .           .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   10

3 Démarrage rapide                                                                                                                13
4 Mise en place de l'environnement de travail                                                                                     14
  4.1   Principe de la compilation croisée . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   14
  4.2   Installation d'outils annexes . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   14
  4.3   Installation du Kit de développement      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   15
  4.4   La distribution LCPC 2011.1 . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   16

5 Decouvrir et exploiter la distribution LCPC 2011.1                                                                              18
  5.1   Compte utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                          .   18
  5.2   Partitionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                         .   18
  5.3   Version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                       .   19
  5.4   Conguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                          .   19
        5.4.1 Réseau - Paramétrage . . . . . . . . . . . . . . . . . . . . . . .                                              .   19
        5.4.2 Réseau - Stratégies de connexion . . . . . . . . . . . . . . . . .                                              .   21
        5.4.3 Démarrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                           .   22
  5.5   Services réseau de PEGASE . . . . . . . . . . . . . . . . . . . . . . . .                                             .   24
        5.5.1 Service Telnet . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                          .   24
        5.5.2 Service SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                           .   24
        5.5.3 Service FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                           .   25
        5.5.4 Serveur Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                           .   26
  5.6   Mettre à jour la distribution Linux - Télécharger une application métier                                              .   30
        5.6.1 Mettre à jour la distribution Linux . . . . . . . . . . . . . . . .                                             .   30
        5.6.2 Télécharger une application métier . . . . . . . . . . . . . . . .                                              .   30
  5.7   Diérence entre la distribution principale et celle de secours . . . . . .                                            .   31
  5.8   Gestion de l'énergie . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                        .   31
        5.8.1 Le module WiFi . . . . . . . . . . . . . . . . . . . . . . . . . . .                                            .   31
        5.8.2 La mise en veille . . . . . . . . . . . . . . . . . . . . . . . . . .                                           .   32
        5.8.3 Le réglage de la fréquence coeur du Blackn . . . . . . . . . . .                                               .   33
        5.8.4 Allumage/extinction du module GPS . . . . . . . . . . . . . . .                                                 .   34
        5.8.5 Introduction pour un fonctionnement sur panneau solaire . . . .                                                 .   34

                                             IV
Guide de mise en oeuvre de PEGASE Plateforme Experte Générique pour Applications Sans- l Embarquées
6 Développer ses propres applications                                                                                 37
   6.1 Description générale de la librairie PEGASE . . . . . . . . .                      .   .   .   .   .   .   .   37
   6.2 Description du contenu de la librairie PEGASE . . . . . . .                        .   .   .   .   .   .   .   38
   6.3 Exemples d'utilisation de la librairie PEGASE . . . . . . . .                      .   .   .   .   .   .   .   41
   6.4 Préambule à l'utilisation de la librairie dans son application                     .   .   .   .   .   .   .   42
       6.4.1 Compiler une fois la distribution LCPC 2011.1 . . . .                        .   .   .   .   .   .   .   42
       6.4.2 Repartir systématiquement de l'exemple donné . . . .                         .   .   .   .   .   .   .   42
       6.4.3 Zoom sur le chier Makele donné . . . . . . . . . .                         .   .   .   .   .   .   .   43
   6.5 Procédure pour créer et compiler son application . . . . . . .                     .   .   .   .   .   .   .   45
   6.6 Commandes d'accès distant depuis PEGASE . . . . . . . . .                          .   .   .   .   .   .   .   46
   6.7 Utilisation du debugger GDB . . . . . . . . . . . . . . . . .                      .   .   .   .   .   .   .   48

7 Liste des cartes lles                                                                                              50
   7.1    Carte de débug . . . . . . . . . . . . . . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   50
   7.2    Carte Multi-UART . . . . . . . . . . . . . . . . . .        .   .   .   .   .   .   .   .   .   .   .   .   50
   7.3    Carte Controller Area Network (CAN) . . . . . . .           .   .   .   .   .   .   .   .   .   .   .   .   51
   7.4    Carte Ethernet . . . . . . . . . . . . . . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   51
   7.5    Carte Convertisseur Analogique-Numérique, 8 voies           .   .   .   .   .   .   .   .   .   .   .   .   52

8 Fabriquer une carte lle                                                                                            52
9 FAQ                                                                                                                 53
10 Annexes                                                                                                            55
   10.1   Schémas de PEGASE . . . . . . . . . . . . . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   55
   10.2   Schémas de la carte lle de debug pour PEGASE           .   .   .   .   .   .   .   .   .   .   .   .   .   59
   10.3   Implantation des composants . . . . . . . . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   61
   10.4   Dimentions de PEGASE . . . . . . . . . . . . . .        .   .   .   .   .   .   .   .   .   .   .   .   .   62
   10.5   Détails des connecteurs . . . . . . . . . . . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   65

Table des gures
   1      Connecteurs d'extension de la carte mère . . . . . . . . .              .   .   .   .   .   .   .   .   .    2
   2      Exemples de cartes lles . . . . . . . . . . . . . . . . . .            .   .   .   .   .   .   .   .   .    3
   3      Architecture du système Linux . . . . . . . . . . . . . . .             .   .   .   .   .   .   .   .   .    3
   4      Origine de la distribution LCPC 2011.1 . . . . . . . . . .              .   .   .   .   .   .   .   .   .    4
   5      La pile TCP/IP . . . . . . . . . . . . . . . . . . . . . . .            .   .   .   .   .   .   .   .   .    6
   6      Modes de démarrage . . . . . . . . . . . . . . . . . . . .              .   .   .   .   .   .   .   .   .    9
   7      Disposition des connecteurs de PEGASE . . . . . . . . .                 .   .   .   .   .   .   .   .   .   10
   8      Alimentation directe . . . . . . . . . . . . . . . . . . . .            .   .   .   .   .   .   .   .   .   11
   9      Alimentation via une carte lle à concevoir . . . . . . . .             .   .   .   .   .   .   .   .   .   11
   10     La compilation croisée . . . . . . . . . . . . . . . . . . .            .   .   .   .   .   .   .   .   .   14
   11     Partitionnement de la mémoire NAND Flash . . . . . . .                  .   .   .   .   .   .   .   .   .   18
   12     Adresse MAC d'un module WiFi sur une carte PEGASE                       .   .   .   .   .   .   .   .   .   20
   13     Connexion au FTP de PEGASE . . . . . . . . . . . . . .                  .   .   .   .   .   .   .   .   .   26
   14     Nautilus en mode FTP sur PEGASE . . . . . . . . . . .                   .   .   .   .   .   .   .   .   .   26
   15     Serveur web - Page d'acceuil . . . . . . . . . . . . . . . .            .   .   .   .   .   .   .   .   .   27
   16     Serveur web - Script de démarrage . . . . . . . . . . . .               .   .   .   .   .   .   .   .   .   27

                                              V
Guide de mise en oeuvre de PEGASE Plateforme Experte Générique pour Applications Sans- l Embarquées
17   Serveur web - Liste des processus . . . . . . . . . . . . . . . . . . . . . .                               28
  18   Serveur web - Conguration réseau . . . . . . . . . . . . . . . . . . . . .                                 28
  19   Serveur web - Édition de la conguration réseau . . . . . . . . . . . . . .                                 29
  20   Serveur web - Édition de chier . . . . . . . . . . . . . . . . . . . . . . .                               29
  21   Évolution du courant consommé lors de la dés/activation du module WiFi                                      32
  22   Évolution du courant consommé lors de l'appel du script pegase-sleep.sh                                     33
  23   Un panneau solaire polycristallin . . . . . . . . . . . . . . . . . . . . . .                               35
  24   Principe du montage Boost et du MPPT sur PEGASE . . . . . . . . . .                                         35
  25   Future carte lle intermédiaire assurant l'autonomie de PEGASE . . . .                                      36
  26   Accès SSH à PEGASE depuis le navigateur de chiers Nautilus du PC .                                         47
  27   Carte lle - Debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                              50
  28   Carte lle - Multi-UART . . . . . . . . . . . . . . . . . . . . . . . . . . .                               50
  29   Carte lle - Controller Area Network . . . . . . . . . . . . . . . . . . . .                                51
  30   Carte lle - Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                             51
  31   Carte lle - Convertisseur Analogique-Numérique, 8 voies . . . . . . . . .                                  52
  32   Schéma de PEGASE - CPU, RAM, Flash (1/4) . . . . . . . . . . . . . .                                        55
  33   Schéma de PEGASE - GPS, Wi, RTC, Boot mode (2/4) . . . . . . . . .                                         56
  34   Schéma de PEGASE - Connectique (3/4) . . . . . . . . . . . . . . . . . .                                    57
  35   Schéma de PEGASE - Alimentation (4/4) . . . . . . . . . . . . . . . . .                                     58
  36   Schéma de la carte lle de debug pour PEGASE (1/2) . . . . . . . . . .                                      59
  37   Schéma de la carte lle de debug pour PEGASE (2/2) . . . . . . . . . .                                      60
  38   Schéma d'implantation des composants de PEGASE . . . . . . . . . . . .                                      61
  39   Dimensions globales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                             62
  40   Emplacements des percages . . . . . . . . . . . . . . . . . . . . . . . . .                                 63
  41   Emplacements des connecteurs d'extention . . . . . . . . . . . . . . . . .                                  64

Liste des tableaux
  1    Limites électriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                             8
  2    Consommation de la carte mère suivant l'utilisation des principaux péri-
       phériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                              8
  3    Liste des connecteurs de PEGASE . . . . . . . . . . . . . . . . . . . . . .                                 10
  4    Diérence entre le rmware principal et de secours . . . . . . . . . . . . .                                31
  5    Consommation du système PEGASE-CASC en fonction du temps d'ex-
       tinction du GPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                             34
  6    Description des connecteurs SV1 et SV2 . . . . . . . . . . . . . . . . . .                                  65
  7    Détails du connecteur SV3 . . . . . . . . . . . . . . . . . . . . . . . . . .                               66

Liste des codes sources
  1    Exemple d'écriture sur un port RS232 . . . . . . . .        .   .   .   .   .   .   .   .   .   .   .   .    5
  2    Exemple d'écriture sur une socket . . . . . . . . . .       .   .   .   .   .   .   .   .   .   .   .   .    6
  3    Fichier version . . . . . . . . . . . . . . . . . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   19
  4    Fichier wi.conf avec une conguration par DHCP .           .   .   .   .   .   .   .   .   .   .   .   .   20
  5    Fichier wi.conf avec une conguration manuelle . .         .   .   .   .   .   .   .   .   .   .   .   .   20
  6    Fichier autorun.sh . . . . . . . . . . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   23
  7    Exemple d'utilisation de la librairie PEGASE . . .          .   .   .   .   .   .   .   .   .   .   .   .   41

                                            VI
Guide de mise en oeuvre de PEGASE Plateforme Experte Générique pour Applications Sans- l Embarquées
8   Makele type pour l'utilisation de la librairie PEGASE . . . . . . . . . .   44

                                     VII
Guide de mise en oeuvre de PEGASE Plateforme Experte Générique pour Applications Sans- l Embarquées
1 Présentation générale                                                                     1

1 Présentation générale
1.1 Introduction
   Ce document constitue le guide de mise en oeuvre de la plateforme PEGASE d'IFST-
TAR. PEGASE signie Plateforme Experte Générique pour Applications Sans-l
Embarquées. Le but est de présenter à l'utilisateur, de façon précise, le fonctionnement
matériel et logiciel du système et de le rendre autonome, c'est à dire capable de l'utiliser
pour y implémenter ses propres applications.

   Issue de la capitalisation des travaux développés au département  Mesure, Ausculta-
tion et Calcul Scientique  d'IFSTTAR (Institut Français des Sciences et Techniques des
Transports de l'Aménagement et des Réseaux), cette plateforme s'adresse à des entre-
prises, bureaux d'études, laboratoires,... désirant développer des applications sur système
embarqué intelligent de type Linux, communiquant sans-l et orant de grandes capacités
réseau pour:
     L'instrumentation sans-l répartie
     Le monitoring / contrôle de structures
     La mesures hétérogènes / traitement de signal
     Les télécommunications, réseau IP
     Les communications Véhicules / Infrastructures
     Le géo-positionnement
     Le Prototypage sans-l
     etc.

   La mise en oeuvre, l'utilisation et le développement d'applications sur la base du sys-
tème PEGASE impliquent que l'utilisateur possède des compétences en Informa-
tique Industrielle, en programmation en langage C standard sous Linux. En
revanche, l'un des points fort du concept est que l'utilisateur n'a pas à se familiariser avec
le processeur retenu ni son mode de programmation spécique.

1.2 Un concept phare: la généricité
    PEGASE a été conçue pour factoriser les besoins redondants des projets d'instru-
mentation tels que la communication sans-l, la datation, le traitement de signal,. . . Elle
permet de mutualiser les coûts liés au choix des technologies à employer, les études ma-
térielles et logicielles, ainsi que les mises au points. Cette plateforme permet donc de
capitaliser un savoir faire entre de nombreux projets réduisant ainsi les coûts, et le cycle
de développement d'un nouveau système.

  PEGASE peut être utilisée comme un moyen de prototypage rapide, ou bien comme
solution technique dans un produit ni. Elle intégre une librairie partagée qui permet
de piloter la plupart des ports d'entrées/sorties, an de simplier et d'accélerer le de-
veloppement d'application. Elle permet aussi de gérer le fonctionnement des principaux
périphériques comme le CPU, le WiFi et le GPS, an de maîtriser la consommation éner-
gétique de PEGASE. Cette librairie PEGASE permet de concentrer principalement les
eorts de developpement sur la partie métier et intelligence de l'application.

Guide de mise en oeuvre de PEGASE                                               Version: 1.F
Guide de mise en oeuvre de PEGASE Plateforme Experte Générique pour Applications Sans- l Embarquées
1 Présentation générale                                                                    2

  La solution 100% sans-l peut être optenue en dénissant l'alimentation de PEGASE
sur un couple batterie et panneau solaire. Toutefois, PEGASE étant une plateforme gé-
nérique, chaque solution sur panneau solaire et batterie doit faire l'objet d'une étude
détaillée tenant compte du prol de consommation de l'application. Des éléments de
réponse sont fournis dans ce document.

  Généricité matérielle

  An de couvrir un spectre d'applications le plus large possible, PEGASE s'articule
autour d'un processeur DSP (Digital Signal Processor) c'est à dire un processeur orienté
traitement de signal possèdant de nombreux ports d'entrées/sorties. Outre la variété de
ses ports, le Blackn 537 d'Analog Device est un processeur 32 bits basse consommation
dont le routage est optimisé pour adresser des mémoires RAM et FLASH et un module
PCMCIA WiFi pour la communication sans-l (Voir 2).

   Sur une carte dite carte mère, PEGASE intègre le processeur Blackn 537, de la mé-
moire, un module de communication sans-l WiFi 802.11g et un module GPS. L'ensemble
des ports d'entrées/sorties du processeur sont routés sur deux connecteurs SV1 et SV2;
l'alimentation est accessible via le connecteur SV3, comme le montre la gure ci-dessous.

                  Figure 1  Connecteurs d'extension de la carte mère

   Ainsi, pour une application donnée, l'utilisateur aura à spécier et à concevoir une carte
électronique dite carte lle mettant simplement en oeuvre les fonctionnalités d'acquisition
(voire d'action) et le conditionnement associé. En général, la carte lle comprend quelques
composants discrets tels que:
     des capteurs: accéléromètre, jauge de température, débimètre, inclinomètre,...
     des convertisseurs analogique/numérique et leur conditionnement
     des actionneurs
     des relais
     des leds
     etc.

Guide de mise en oeuvre de PEGASE                                               Version: 1.F
Guide de mise en oeuvre de PEGASE Plateforme Experte Générique pour Applications Sans- l Embarquées
1 Présentation générale                                                                       3

  La carte lle, de conception généralement simple, pourra être réalisée ou sous-traitée
par l'utilisateur à bas coûts et dans des délais réduits. Elle s'interface avec la carte mère de
PEGASE via les connecteurs normalisés SV1, SV2 et SV3. En fonction de l'application et
des composants retenus pour concevoir la carte lle, l'utilisateur sélectionnera les ports
d'entrée/sortie nécessaires de la carte mère sur les connecteurs SV1 et SV2: port SPI,
GPIO, PWM, etc. Les dimensions de la carte mère, ainsi que le schéma de la carte lle
de debug sont disponibles en annexe, an de pouvoir réaliser soi-même une carte lle.

                           Figure 2  Exemples de cartes lles

  Généricité logicielle

   L'implémentation d'une couche d'abstraction logicielle entre les ressources physiques
liées au processeur Blackn 537 et les codes applicatifs métiers à développer rendent ces
codes sources indépendants des choix matériels. Cette couche d'abstraction correspond au
système Linux embarqué sur PEGASE. En outre, l'ensemble des codes que l'utilisateur
sera amené à développer sera portable et réutilisable sur d'autres plateformes à base de
Linux.

                              Application & Métier
                                                                Abstraction

                                       Shell

                                  Noyau Linux

                           Carte PEGASE (Matériel)

                        Figure 3  Architecture du système Linux

  La carte PEGASE est fournie opérationnelle et donc pré-ashée d'un noyau Linux
conguré pour les ressources de la carte. Cette conguration du noyau de base uClinux [3]
version 2009R1.1-RC4 en une version adaptée à PEGASE est ici dénommée distribution
LCPC 2011.1.

Guide de mise en oeuvre de PEGASE                                                 Version: 1.F
1 Présentation générale                                                                   4

                              Linux

                             uClinux                  LCPC 2011.1

                          Cible Multiple                PEGASE

                  Figure 4  Origine de la distribution LCPC 2011.1

  Ainsi, pour une application donnée, l'utilisateur aura à spécier et à développer le code
source permettant de piloter telle ou telle fonction de la carte mère ou de la carte lle.
Exemples:
    ouverture d'un port série RS232 (TTY)
    lecture de la trame GPS
    lecture d'échantillons sur le port SPI
    mise en place d'une interruption sur la montée d'un port ag GPIO
    écriture d'un état 0 ou 1 sur une LED
    mise en oeuvre d'un algorithme de calcul/mesure
    utilisation des fonctions du DSP: implémentation d'un modèle, FFT, ltrage, calcul
     matriciel,. . .
    etc.

   Pour démarrer les premiers développements il est fortement recommandé de s'inspirer
des exemples donnés dans le présent document au chapitre (Voir 6.1). Ils sont représenta-
tifs de l'utilisation de la chaîne de développement et du pilotage des ressources du Blackn
537 via Linux. Les développements seront réalisés typiquement en langage ANSI C stan-
dard, ou bien en language C++. Pour s'aider, l'utilisateur pourra également s'appuyer
sur la communauté de l'open source très active sur Internet.

  D'une façon générale, le développement d'applications s'exécutant sur noyau Linux
permet la production de codes sources concis et portables.

  Pour des applications très spéciques, l'utilisateur aguerri dispose de l'ensemble des
sources du noyau uClinux et de sa conguration pour produire la distribution LCPC
2011.1. Il pourra ainsi modier la conguration du noyau pour modier la priorité d'une
interruption, pour augmenter ou diminuer sa capacité à prendre en charge tel ou tel
driver, tel ou tel périphérique, etc.

   De même, pour piloter diéremment un périphérique existant (exemple: les ports ag
GPIO) ou pour que le noyau Linux embarqué pilote spéciquement un nouveau périphé-
rique, l'utilisateur pourra développer ses propres drivers.

Guide de mise en oeuvre de PEGASE                                              Version: 1.F
1 Présentation générale                                                                           5

                                                                                                           
     #include
     #include
1                < s y s / t y p e s . h>

     #include
2                < s y s / s t a t . h>

     #include
3                < f c n t l . h>

4                < u n i s t d . h>

     int        int      char
5

6         main       (          argc ,                 ∗∗ a r g v )

              int
7    {

              const char
8                            fd ;

9                                             buffer [ ]    =   " Hello   world   ! \ n" ;

10

11               /   ∗   Ouverture              ∗/

                 if
12               fd      =    open        ( " / d e v / t t y S 0 " , O_RDWR) ;

                                     return
13                       ( fd       <    0)

14                                                   − 1;
15

                     ∗                         ∗/
                                                            sizeof
16               /       Ecriture

17               write          ( fd ,        buffer ,                ( buffer ));

18

19               /   ∗   Fermeture              ∗/

                 return
20               close          ( fd ) ;

21                                  0;

22   }
                                                                                                           
                              Code source 1  Exemple d'écriture sur un port RS232

     1.3 Protocole TCP/IP via WiFi 802.11g
       Le mode de communication natif de PEGASE est l'Internet Protocol (IP). Ce protocole
     mondial et pérenne ( 40 ans) permet d'intégrer directement le système dans des réseaux
     hétérogènes, de grandes dimensions, c'est à dire indépendamment de la nature des autres
     entités du réseau IP: PC, imprimantes, routeurs, autres matériels IP. Le caractère stan-
     dard et massivement répandu de l'IP ( 98% des réseaux mondiaux) permet de déployer
     en quelques minutes et à bas coût un système à base de cartes PEGASE. Seuls un PC
     traditionnel et un point d'accès WiFi du commerce sont nécessaires.

        Physiquement, le protocole IP est indépendant de la solution matérielle choisie pour
     l'implémenter: Ethernet (802.3), TokenRing (802.5), GPRS, UMTS, WiFi (802.11x).
     Aussi, l'ensemble des codes développés sur PEGASE basés sur l'IP sera portable sur
     toute autre plateforme implémentant l'IP. Dans le cas de PEGASE, le standard physique
     d'implémentation est le WiFi 802.11b/g [4]. Cette norme est massivement déployée et
     permet d'envisager un débit théorique de 54 Mbits/s.

       Le protocole TCP/IP recommandé pour les développements permet d'établir des com-
     munications ables, haut débit, sans pertes de données, et avec vérication de l'intégrité
     de celle-ci.

     Guide de mise en oeuvre de PEGASE                                                       Version: 1.F
1 Présentation générale                                                                                                      6

                                   Application                         7                   Application

                                                                       6                   Présentation

                                                                       5                       Session

                                    Transport                          4                      Transport

                                       Internet                        3                       Réseau

                                                                       2               Liaison de donnée

                               Accès réseau                          1                      Physique

                                                      Figure 5  La pile TCP/IP
                                                                                                                                      
     #include
     #include
1               < n e t i n e t / i n . h>

     #include
2               < s y s / s o c k e t . h>

3               < u n i s t d . h>

     int        int      char
4

5        main       (          argc ,                   ∗∗ a r g v )

              int
6    {

              struct
7                           fd ;

              const char
8                                  sockaddr_in                config ;

9                                            buffer [ ]       =   " Hello        world     ! \ n" ;

10

11              /   ∗   Creation                ∗/

                if
12              fd      =    socket (            PF_INET ,        SOCK_STREAM,             0);

                                    return
13                      ( fd       <    0)

14                                                    − 1;
15

16              /   ∗   Connexion                ∗/
17              config . sin_family                                    = PF_INET ;

18              c o n f i g . s i n _ a d d r . s_addr                 =    inet_addr ( " 1 9 2 . 1 6 8 . 0 . 1 " ) ;

                                                                  sizeof
19              c o n f i g . sin_port                                 =    htons ( 2 2 ) ;

20              connect                ( fd ,    &c o n f i g ,                  ( config ));

21

                    ∗                                              ∗/
                                                             sizeof
22              /       Envoie            d ' un      message

23              send         ( fd ,       buffer ,                         ( buffer ) ,   MSG_CONFIRM ) ;

24

25              /   ∗   Fermeture                ∗/
26              shutdown                ( fd ,    SHUT_RDWR) ;

                return
27              close          ( fd ) ;

28                                 0;

29   }
                                                                                                                                      
                                   Code source 2  Exemple d'écriture sur une socket

     Guide de mise en oeuvre de PEGASE                                                                                  Version: 1.F
1 Présentation générale                                                                7

1.4 PEGASE: une plateforme télé-opérable
   Dès son démarrage, PEGASE lance l'exécution du noyau Linux. Les applications mé-
tiers peuvent être automatiquement lancées via les scripts de démarrage. La combinaison
de la communication WiFi et du service Telnet, SSH nativement inclu dans tout noyau
Linux, permet à l'utilisateur d'ouvrir à distance une session sur PEGASE. Exemple: de-
puis le PC de supervision du réseau WiFi, l'utilisateur se connecte à PEGASE en lançant
le client universel Telnet (disponible depuis tout PC sous Windows, Linux, Unix, etc.).

  Le développeur comme l'utilisateur nal pourra, à distance, arrêter une ap-
plication, la supprimer, télécharger une nouvelle application, arrêter un ser-
vice...sans avoir à démonter et à reprogrammer physiquement la plateforme
PEGASE de son lieu d'usage.

   Aussi, sauf panne ou évolution matérielle sur la conception du produit, le système
devient totalement téléopérable et permet d'envisager des économies vis à vis des coûts
liés aux opérations d'installation/démontage de tels systèmes.

1.5 Contenu du kit PEGASE
   Pour toute acquisition du kit PEGASE auprès de la société A3IP 1 , la livraison com-
prend :
    La (les) carte(s) PEGASE et les antennes GPS et WiFi
    Une carte lle de debug comportant : l'interface RS232, 6 leds, 3 boutons poussoirs
     (cf le détail en Annexes "Schémas")
    Le présent Guide de mise en oeuvre opérationnelle de PEGASE au format PDF
    Plusieurs documents techniques dont :
      La documentation du Blackn 537 distribué par Analog Device
      La documentation du module GPS Copernicus distribué par Trimble
    La toolchain uClinux : les compilateurs nécessaires au développement d'applications
     métier
    Les sources du noyau uClinux conguré pour PEGASE pour générer la distribution
     LCPC 2011.1
    Les sources des programmes de démonstration complet utilisant la plupart des
     classes disponibles dans la librairie PEGASE. Ceux-ci sont réutilisables pour lancer
     de nouveaux développements rapidement.
    Le schéma type de la carte lle livrée permettant d'envisager rapidement le routage
     de nouvelles cartes lles (Voir Annexe 10.2)

  En option :
    Un boitier étanche IP68 (référence : Rolec EK0282)
    Deux paires de connecteurs étanches (embase mâle et che femelle) IP68 4 broches
     (référence : Hypertac CUO412340 et CXU041124014)

  1. http://www.a3ip.com

Guide de mise en oeuvre de PEGASE                                           Version: 1.F
2 Présentation détaillée de PEGASE                                                                 8

2 Présentation détaillée de PEGASE
2.1 Principaux composants de la carte mère
   Les principaux composants de la carte mère sont :
    Processeur DSP, Blackn 537
    64Mo de SDRAM 100MHz (nouveauté V1.F)
    16Mo de NAND Flash (Système d'exploitation Linux)
    512Ko de eeprom (Bootloader U-Boot)
    Récepteur GPS Trimble Copernicus, avec antenne déportée
    Module WiFi Libertas 802.11b/g, avec antenne déportée
    3 connecteurs d'extentions : SV1, SV2, SV3

2.2 Caractéristiques de consommation électrique
   Le tableau ci-dessous présente les échelles de consommation de la carte PEGASE avec
une carte lle de debug, suivant l'utilisation du module WiFi, du GPS, et du mode veille
du DSP Blackn.
 Symbole        Paramètre                    Minimum       Typique Maximum                 Unité
 Vcc            Alimentation de la carte        8              12            24             V
                                Table 1  Limites électriques

                      Core
         Tension                                         Sleep         Icc         Power
                      Clock      WiFi        GPS
           (V)                                           mode         (mA)         (mW)
                     (MHz)
                                  Xa           X           ×           115          1380
                                  Xb           X           ×           130          1560
                      500
                                  ×            X           ×            44           528
           12
                                  ×            ×           ×            30          360
                      250         ×            ×           ×            22          264
                       -          ×            ×           X            16          192
  a. Mesures éectuées sans activité notable sur la carte WiFi
  b. Mesures éectées lors du téléchargement d'un chier à la vitesse maximum de 54Mb/s.

Table 2  Consommation de la carte mère suivant l'utilisation des principaux périphé-
riques

   La consommation augmente lors d'une charge CPU importante. Le fonctionnement
des programmmes doit donc être évènementiel et éviter toute forme de  polling . Ce
type de comportement est largement utilisé dans la librairie PEGASE grâce au mécanisme
des  Callback .

  Par défaut, le processeur Blackn 537 n'est pas en  Sleep mode . L'utilisateur pourra
activer celui-ci à l'aide du programme  pegase-sleep.sh , celui-ci prend en paramètre le
temps (en seconde) que la carte PEGASE passera dans ce mode endormi.

Guide de mise en oeuvre de PEGASE                                                   Version: 1.F
2 Présentation détaillée de PEGASE                                                    9

2.3 Mode de Démarrage
   La séquence de démarrage dépend de la présence, ou non, du jumper JP1(voir 2.4).
Sans JP1 Le Blackn 537 démarre dans le mode  SPI Maitre . Il exécute le programme
     U-Boot  contenu dans la mémoire  eeprom  qu'il adresse via sur le bus SPI.
    Ce bootloader permet de mettre en place le noyau Linux et de l'exécuter. Ce mode
    est le mode par défaut qu'il est recommandé de conserver.
Avec JP1 Le Blackn 537 démarre dans le mode  UART Esclave . C'est un mode
    de secours qui permet de reprendre la main lorsque le bootloader est défaillant ou
    inexistant, lors du premier démarrage en usine par exemple. Le processeur démarre
    sur un programme qui lui est transféré par le port série.

   Au démarrage, le bootloader  U-Boot  cherchera un environnement Linux valide à
l'adresse 0x300000 de la mémoire NAND Flash (partition mtd1 sous Linux). Si cet en-
vironnement est endommagé alors le bootloader cherchera automatiquement à charger
l'environnement de secours à l'adresse 0x0 (partition mtd0 sous Linux). Le partitionne-
ment est expliqué dans la section 5.2.

  Les modes de démarrage sont détaillés dans la documentation ocielle du Blackn
537 [6].

  PEGASE est livrée pré-ashée avec le bootloader  U-Boot  dans la mémoire  ee-
prom  et la distribution LCPC 2011.1 dans la mémoire  NAND Flash . L'utilisation
du mode de démarrage de secours est exceptionnel (lors d'une défaillance du bootloader
par exemple).

                       Mise sous Tension

                                        présent
                             JP1 ?                 UART Esclave
                        absent
                          SPI Maitre

                            U-Boot

                                           non
                          Autorun ?                Console U-Boot
                           oui
                     Chargement de Linux

                           Figure 6  Modes de démarrage

Guide de mise en oeuvre de PEGASE                                         Version: 1.F
2 Présentation détaillée de PEGASE                                                       10

          Désignation       Description
              J1            Connecteur de l'antenne WiFi secondaire
              J2            Connecteur de l'antenne WiFi principale
             JP1            Mode de démarrage
             JP2            Connecteur JTAG (IEEE 1149.1)
             SV1
             SV2            Connecteurs d'extension pour la carte lle
             SV3
              X1            Connecteur de l'antenne GPS
              X2            Alimentation
                     Table 3  Liste des connecteurs de PEGASE
2.4 Connectique
   Le détail des connecteurs SW1, SW2 et SW3 est donné en annexe (Voir 10.5).

                  Figure 7  Disposition des connecteurs de PEGASE
   Les connecteurs d'antennes J1 et J2 ne sont pas représentés sur la gure, car ils se
trouvent sur le module WiFi lui-même.

   En l'absence de carte lle, il est nécessaire de placer un jumper reliant SV3-3 (ou SV3-
5) à SV3-4 (ou SV3-6). Dans ce cas, la carte PEGASE est directement alimentée par le
potentiel appliqué sur le bornier X2. D'une manière générale, PEGASE n'est pas prévue
pour fonctionner sans carte lle. Il est vivement conseillé de garder la carte lle de debug
livrée avec PEGASE pour débuter les développements.

  Gestion de l'alimentation - Connecteur SV3

  PEGASE peut fonctionner sur une batterie (LiPo, Li-Ion, NiMH, Plomb) ou sur une
source de tension continue DC (8/24 V). L'utilisateur a la possibilité d'alimenter la carte
PEGASE:

Guide de mise en oeuvre de PEGASE                                              Version: 1.F
2 Présentation détaillée de PEGASE                                                                   11

    directement et simplement en reliant la tension batterie aux bornes du connecteur
     X2 de la façon suivante: X2-1 au 8-24V et X2-2 au GND. Dans ce cas l'utilisateur
     connecte un jumper sur le connecteur SV3 pour relier: SV3-3 à SV3-4 ou bien
     (résultat identique) SV3-5 à SV3-6.
    par une gestion intelligente de l'alimentation via une carte lle à concevoir. En
     eet, la tension batterie appliquée sur X2-1 est reportée sur le connecteur SV3-4
     (ou SV3-6), l'alimentation de la carte PEGASE dépend du potentiel appliqué sur
     SV3-3 (ou SV3-5). Aussi, la carte lle à concevoir intégrera une source additionnelle
     d'alimentation (panneau solaire, éolien,...) permettant l'alimentation de PEGASE
     sur SV3-3 (ou SV3-5) et la recharge de la batterie sur SV3-4 (ou SV3-6). Se rensei-
     gner auprès d'IFSTTAR pour obtenir du conseil dans le domaine de la récupération
     d'énergie.

   Les schémas ci-dessous illustrent ces 2 modes d'alimentation. Par défaut, la carte lle
livrée dans le kit PEGASE relie directement SV3-3 à SV3-4, aussi la carte PEGASE est
alimentée par le potentiel appliquée au bornier X2.

                                               Pas de carte fille
                                                (un cavalier)
               DC 8-24V

                                1        SV3.4               SV3.3           Alimentation
                                                                                 carte
                               X2                                             PEGASE
                                2                   SV3.7

                                    Figure 8  Alimentation directe

                                    Carte fille - Fusion d’énergie
                                    Panneau
                                     solaire

                                                                    Eolien

                                                       +

                                         SV3.4               SV3.3           Alimentation
                    Batterie

                                1
                                                                                 carte
                               X2                                             PEGASE
                                2                   SV3.7

                 Figure 9  Alimentation via une carte lle à concevoir

Guide de mise en oeuvre de PEGASE                                                           Version: 1.F
2 Présentation détaillée de PEGASE                                                       12

  L'alimentation possible de PEGASE à l'aide d'un couple batterie et panneau solaire
est illustré dans la librairie PEGASE dans la classe  CSolarManager . Cette classe
met en place un algorithme de MPPT (Maximum Power Point Tracking) et une solution
matérielle autour d'un montage  Boost  à implémenter sur une carte lle. L'utilisation
de cette solution nécessite une étude préalable, et il est conseillé de prendre contact avec
IFSTTAR ou A3IP.

Guide de mise en oeuvre de PEGASE                                              Version: 1.F
3 Démarrage rapide                                                                     13

3 Démarrage rapide
    Avant de mettre en place les environnements et les outils permettant d'exploiter les
ressources de la carte PEGASE, cette étape permet de mieux appréhender son bon fonc-
tionnement.

  1. Préparation de la carte

        Connecter prudemment la carte lle fournie dans le kit à la carte mère. Préparer
     (laisser OFF pour le moment) une alimentation stabilisée 12V DC sur le bornier
     X2 (12 Volts sur X2-1 et GND sur X2-2). Relier le port RS232 de la carte lle au
     port RS232 d'un PC à l'aide d'un câble série droit. Bien entendu, il est possible
     d'utiliser des adaptateurs USB vers port série si nécessaire.

  2. Préparation du PC

       Depuis le PC, ouvrir une application de type hyperterminal (minicom, putty)
     sur le port série sélectionné et le congurer de la façon suivante: 115200 bauds, 8
     bits de données, pas de parité, 1 bit de stop, pas de contrôle de ux (ni logiciel ni
     matériel).

  3. Démarrage

       Alimenter la carte. Sur l'hyperterminal, l'utilisateur voit s'exécuter toute la sé-
     quence de démarrage: U-Boot, Linux (Voir ??). A l'issue de la séquence de dé-
     marrage, l'invite de console apparaît. L'utilisateur peut saisir quelques commandes
     Linux: ls, ps, cd,. . .

       En particulier les commandes ifcong et iwcong permettent d'acher et de
     paramétrer la conguration IP et WiFi (Voir 5.4.2).

Guide de mise en oeuvre de PEGASE                                            Version: 1.F
4 Mise en place de l'environnement de travail                                               14

4 Mise en place de l'environnement de travail
    Prérequis: La suite de ce document explique l'installation de l'environnement de
travail sur un ordinateur fonctionnant avec la distribution Linux  Ubuntu 10.04 Desktop
i386 2 . Il est possible d'utiliser le système d'exploitation  Microsoft Windows , toutefois
ce document ne traite pas cette possibilité.

4.1 Principe de la compilation croisée
    Pour des raisons pratiques (absence de clavier, souris, compilateurs et de puissance
de calcul), les applications métiers qui fonctionnent sur la carte PEGASE seront déve-
loppées et compilées sur une autre machine, typiquement un PC. Une fois construites,
ces applications sont téléchargées et exécutées sur la carte cible. C'est le principe de la
compilation croisée.
                                   PC                 PEGASE

                                 Sources

                              Compilation

                                                      Exécution

                            Figure 10  La compilation croisée

  La compilation croisée permet de construire, sur un processeur donné (un PC) des
applications destinées à fonctionner sur processeur cible diérent. Ceci implique que l'or-
dinateur qui a construit le programme ne pourra pas exécuter l'application; en eet, le
programme utilise un jeu d'instruction propre à une architecture processeur diérente.

   Dans le cas de PEGASE, les programmes seront construits par un ordinateur compa-
tible avec l'architecture  x86  sous Ubuntu. Les chiers binaires issus de la construc-
tion des programmes seront compatibles avec l'architecture  Blackn . L'architecture
Blackn n'est pas nativement supportée dans Ubuntu, il n'est donc pas possible d'uti-
liser directement un compilateur natif tel que  gcc . Il est nécessaire d'installer des
compilateurs spéciques à l'architecture Blackn (voir 4.3). La suite du document décrit
l'installation et l'utilisation de la chaîne de développement.

4.2 Installation d'outils annexes
    La chaîne de développement contient essentiellement des compilateurs, il est nécessaire
d'installer des outils complémentaires pour dialoguer avec la carte ou supporter l'interface
graphique (Qt) des scripts de conguration de la distribution LCPC 2011.1. Les outils
sont par exemple :
  2. http://www.ubuntu.com/getubuntu

Guide de mise en oeuvre de PEGASE                                                Version: 1.F
4 Mise en place de l'environnement de travail                                        15

      minicom, putty : Programme de communication sur le port série.
      lrzsz : Pluggin pour Minicom pour supporter le protocole Y-Modem.
      tk : Ressource graphique pour les scripts écrits en Tcl.
      libqt3-mt-dev : Ressource graphique Qt.
      libncurses5-dev : Ressource graphique pour les terminaux.
      manpages-dev, manpages-posix-dev : Pages de manuel pour la programmation
       dans un environnement GNU/Linux (optionnel).

  La commande  apt , ci-dessous, permet d'installer tous les outils annexes [2] néces-
saires au bon fonctionnement. Copier/coller les lignes ci-dessous dans un terminal pour
tout installer simplement:
sudo apt-get install autoconf automake bash binutils bison bzip2 \
   coreutils flex gawk gcc gettext grep intltool iputils-ping libtool \
   libz-dev linux-libc-dev liblzo2-dev liblzo2-dev liblzo2-2 \
   libncurses5 libreadline5 libreadline5-dev libncurses5-dev m4 make \
   pax-utils pkg-config rpm texinfo zlib1g zlib1g-dev \
   g++ qt3-apps-dev libgtk2.0-dev libglade2-dev \
   manpages-dev manpages-posix-dev minicom lrzsz tk tree \
   camstream

  L'installation d'un paquet est expliquée en détail dans la documentation Ubuntu [7]

4.3 Installation du Kit de développement
    Le Kit de développement est composé d'une archive contenant les compilateurs né-
cessaires à la construction de la distribution LCPC 2011.1, des sources du noyau Linux,
des sources des programmes utilisateurs, les sources de U-Boot, et les sources de la do-
cumentation (comprenant ce document entre autre).

  1. Créer un dossier de travail Ce dossier va contenir les sources de Linux, de
     U-Boot, et les compilateurs.
       # cd ~
       # mkdir PEGASE

  2. Copier l'archive Le chier  pegase-snapshot-v1f.tar.gz  est fourni sur le CD
     livré avec la plateforme PEGASE. Copiez ce chier dans votre dossier de travail
      PEGASE .

  3. Extraire l'archive L'extraction des archives se fait avec les commandes suivantes
     depuis un terminal:
       # cd ~/PEGASE
       # tar -xzvf pegase-snapshot-v1f.tar.gz
       # tree -L 1
       .

Guide de mise en oeuvre de PEGASE                                          Version: 1.F
4 Mise en place de l'environnement de travail                                           16

     --   binary-images
     --   doc
     --   official-package
     --   open-terminal.sh
     --   scripts
     --   u-boot
     --   uClinux-dist

        Le chier  pegase-snapshot-v1f.tar.gz  peut être supprimé.

  4. Extraire la toolchain Lors du premier lancement de  open-terminal.sh , ce script
     extrait et installe la toolchain. Le premier lancement peut prendre quelques instants;
     les ouvertures suivantes du terminal à l'aide de ce script seront instantanées:
     # cd ~/PEGASE
     # ./open-terminal.sh

  5. Vérication de l'installation Pour vérier la bonne installation de la chaîne de
     développement, appeller un des programmes de celle-ci,  bn-linux-uclibc-gcc 
     par exemple. Pour cela, il convient d'ouvrir une console à l'aide du script  open-
     terminal.sh  qui dénit automatiquement les chemins vers la toolchain. Si une
     console est ouverte sans ce script, il est nécessaire de congurer soi-même les che-
     mins vers les compilateurs, en mettant à jour la variable  PATH  dans le chier
      .bashrc .
     # cd ~/PEGASE
     # ./open-terminal.sh
     # bfin-linux-uclibc-gcc --version
     bfin-linux-uclibc-gcc (GCC) 4.1.2 (ADI svn)
     Copyright (C) 2006 Free Software Foundation, Inc

4.4 La distribution LCPC 2011.1
   La carte PEGASE est livrée pré-ashée d'un noyau opérationnel (typiquement, un
chier noyau linux  uImage.initramfs  est ashé sur la partition de boot) ce noyau est
appelé: distribution LCPC 2011.1.

   Les paragraphes ci-dessous décrivent les actions possibles an de regénérer et modier
cette distribution LCPC 2011.1 comprenant le noyau et les programmes d'exemples. Tou-
tefois, modier, recompiler et mettre à jour un noyau uClinux sur la carte nécessitera un
certain recul et une certaine expertise en matière de noyaux Linux et de systèmes embar-
qués. Aussi, dans un premier temps, il est recommandé de développer des applications
sur la base du noyau LCPC 2011.1 pré-ashé qui intègre nativement la prise en charge
de la plupart des fonctions et des périphériques du Blackn 537.

Guide de mise en oeuvre de PEGASE                                             Version: 1.F
4 Mise en place de l'environnement de travail                                            17

  La distribution LCPC 2011.1 correspond à la version générique du noyau uClinux
2009R1.1-RC4 modié et conguré pour fonctionner sur la carte PEGASE. Elle contient
notamment les chiers de conguration permettant de générer le rmware principal (-
chier: uImage.initramfs) et de secours de PEGASE. Ces rmwares contiennent le noyau
Linux, les applications systèmes et une archive des applications métier à déployer lors du
premier démarrage dans la partition  /lcpc . Rappelons que cette partition est pérenne
car elle est sauvegardée en mémoire ash 5.2.

  En cas d'erreur, de mauvaise manipulation, . . . il sera toujours possible d'utiliser les
chiers pré-compilés fournis dans l'archive  pegase-snapshot-v1e.tar.gz . Utiliser le sup-
port d'A3IP ou d'IFSTTAR en cas de persistance du problème.

   Une fois la distribution décompressée dans un répertoire local du PC de développement,
deux actions minimales sur la distribution sont nécessaires à l'aide du Makele prévu pour
le noyau. Pour cela, il faut, avec open-terminal.sh, ouvrir un terminal dans le répertoire
racine de la distribution décompressée (.../pegase/uClinux-dist/)et saisir:
     make xcong: à partir d'une interface graphique (Qt) un ensemble de menus nor-
      malisés pour la conguration des noyaux Linux apparaissent. Ici la distribution
      proposée LCPC 2011.1 peut être modiée. Attention: bien sélectionner le construc-
      teur  Analog Device  et la cible: PEGASE.
     make : Construction du noyau Linux et des applications comprises dans la distri-
      bution. Attention, la première compilation peut prendre plusieurs minutes.

   Les commandes make xcong et make sont les commandes minimales. S'il n'y a pas
d'erreur de compilation, les chiers  uImage.initramfs  et  uImage.initramfs.md5  sont
disponibles dans le répertoire  uClinux-dist/images . Par ailleurs, pour aller plus loin
il existe d'autres régles dans ce Makele, comme :
     make menucong : Conguration du noyau Linux et de la distribution, avec une
       interface graphique (ncurses)
     make clean : Supprime tous les chiers générés lors des commandes précédentes.
     make mrproper : Supprime tous les chiers générés lors des commandes précé-
       dentes, ainsi que les modications des congurations.
     make romfs : Reconstruit le chier  uImage.initramfs  à partir du contenu du
       dossier  romfs . Aucune compilation n'est eectuée.

  La mise à jour de l'environnement Linux sur la carte PEGASE est expliquée dans la
partie 5.6 du document.

  Pour aller plus loin ou pour mieux comprendre et exploiter les congurations possibles
d'un noyau uClinux, se reporter à la documentation fournie par la communauté uCli-
nux.org [1]. Rappelons que le noyau LCPC 2011.1 proposé pour le produit PEGASE se
veut relativement exhaustif des capacités de la carte.

Guide de mise en oeuvre de PEGASE                                              Version: 1.F
5 Decouvrir et exploiter la distribution LCPC 2011.1                                    18

5 Decouvrir et exploiter la distribution LCPC 2011.1
    La distribution fournie pour PEGASE s'appelle  LCPC 2011.1 . Elle est basée sur
la distribution générique  uClinux  fournie originellement par www.uClinux.org. La
distribution  LCPC 2011.1  apporte de nombreuses modications par rapport à la
version précédente comme : un partitionnement diérent, le support du module WiFi, des
drivers spéciques, une interface web étendue, une séquence de démarrage plus élaborée. . .

  Le nom de la distribution est composé de  LCPC  qui indique que la distribution est
précongurée pour la plateforme développée par IFSTTAR (ex Laboratoire Central des
Ponts et Chaussées) et de  2011.1  qui signie qu'il s'agit de la version 1 de l'année
2011.

   Les paragraphes ci-dessous ont pour but de décrire les enrichissements apportés par
la distribution  LCPC 2011.1  dont en particulier: le partitionnement de la mémoire,
la conguration du réseau IP/WiFi de la carte, sa séquence de démarrage, les services
réseaux dont le site web embarqué et développé spéciquement pour la carte. Enn,
comme évoqué lors de l'étape précédente, le processus de mise à jour (éventuelle) du
noyau est décrit.

  Pour comprendre concrètement les notions développées, il est conseillé de manipuler
parallèlement sur la carte cible en reprenant la conguration décrite dans la partie 3 du
document.

5.1 Compte utilisateur
    La distribution LCPC 2011.1 possède un compte utilisateur unique :  root . Ce
compte est utilisé pour l'authentication sur les services SSH, Telnet et FTP sur la carte
PEGASE. Lors du déploiement opérationnel d'une application, il est conseillé de changer
le mot de passe, en éditant le chier  uClinux-dist/vendors/AnalogDevices/common/passwd .
Utilisateur : root
Mot de passe : uClinux (défaut )

5.2 Partitionnement
   La mémoire NAND Flash de 16Mo est partitionnée de la manière suivante :

              mtd0                 mtd1                         mtd2

              (3Mo)                (7Mo)                   (6Mo - Yaffs)

               Figure 11  Partitionnement de la mémoire NAND Flash

Guide de mise en oeuvre de PEGASE                                             Version: 1.F
5 Decouvrir et exploiter la distribution LCPC 2011.1                                       19

          mtd0 : Partition de 3Mo contenant la distribution LCPC 2011.1-RESCUE. Cette
           partition est une partition de secours permettant de recouvrer un environnement
           Linux opérationnel en cas de problème sur la partition principale. La distribution
           contenue dans cette partition est moins complète an de faire moins de 3Mo (Voir
           5.7).

          mtd1 : Partition de 7Mo contenant par défaut la distribution LCPC 2011.1 d'ori-
           gine. C'est la partition principale utilisée par défaut lors du démarrage de
           PEGASE. Cette partition pourra être mise à jour par l'utilisateur.

          mtd2 : Partition de 6Mo contenant un système de chier (Yas). Cette partition
           est dite métier. C'est dans cette partition que l'utilisateur stockera les applications
           métiers (chiers de conguration, de données, etc.).

      La partition  mtd2  est montée automatiquement au démarrage au point de montage
    nommé  /lcpc .

    5.3 Version
        Le chier  version  permet de connaitre la version de la distribution utilisée. Ce
    chier contient le nom de la distribution et la date de sa construction. Ce chier se situe
    à la racine du système de chier, soit  /version .
                                                                                                    
1   FW_NAME=LCPC        2011.1

2   FW_DATE=l u n d i   14   novembre   2011 ,   18:21:56   (UTC+ 0 2 0 0 )
                                                                                                    
                                   Code source 3  Fichier version

    5.4 Conguration
       Il existe deux chiers congurables an de personnaliser la conguration réseau et la
    séquence de démarrage de PEGASE.

    5.4.1 Réseau - Paramétrage
        Le chier  /lcpc/wi.conf  détermine la conguration réseau. Les paramètres qu'il
    contient sont utilisés par le script  /lcpc/connect.sh  an de xer la conguration WiFi
    et IP de la carte. Ce chier peut être édité et modié directement en ligne de commande,
    ou via l'interface web (Voir 5.5.4).

        Par défaut, le chier  /lcpc/wi.conf  xe les principaux paramètres suivant :
          SSID : AP_SSID_AP1 (par défaut). Représente le nom du réseau sans-l de l'uti-
           lisateur.
          SSID_KEY: (vide par défaut) Représente une clé WEP au format hexadécimal
           (10-24 digits), uniquement pour les réseaux sécuriser.

    Guide de mise en oeuvre de PEGASE                                                Version: 1.F
5 Decouvrir et exploiter la distribution LCPC 2011.1                                   20

         IP : Le mot clé  DHCP  (par défaut) indiquera une conguration IP par DHCP.
          Il est aussi possible de spécier manuellement une adresse IP.
         MASQUE : Masque de sous-réseau, uniquement pour une conguration manuelle.
         PASSERELLE : Passerelle internet, uniquement pour une conguration manuelle.
         DNS_1 : Serveur DNS principal, uniquement pour une conguration manuelle.
         DNS_2 : Serveur DNS secondaire, uniquement pour une conguration manuelle.
         DNS_3 : Serveur DNS secondaire, uniquement pour une conguration manuelle.

      Les deux exemples de chier  wi.conf , ci-dessous, montrent une conguration IP
    par DHCP dans le premier cas, et une conguration manuelle dans le second.
                                                                                                
1   SSID=AP_SSID_AP1

2   SSID_KEY=

3   IP=DHCP

4   MASQUE=

5   PASSERELLE=

6   DNS_1=

7   DNS_2=

8   DNS_3=
                                                                                                
                   Code source 4  Fichier wi.conf avec une conguration par DHCP

                                                                                                
1   SSID=AP_SSID_AP1

2   SSID_KEY=

3   IP = 1 9 2 . 1 6 8 . 0 . 1 0 4

4   MASQUE= 2 5 5 . 2 5 5 . 2 5 5 . 0

5   PASSERELLE = 1 9 2 . 1 6 8 . 0 . 1

6   DNS_1 = 8 . 8 . 8 . 8

7   DNS_2 = 8 . 8 . 4 . 4

8   DNS_3=
                                                                                                
                    Code source 5  Fichier wi.conf avec une conguration manuelle

      La mise en réseau typique de PEGASE consiste à déployer un réseau IP mettant en
    oeuvre un point d'accès WiFi et un serveur DHCP. Pour des raisons pratiques, l'utilisateur
    peut congurer un serveur DHCP avec table de baud xe (ou DHCP statique) attribuant
    une adresse IP prédénie à l'adresse MAC de la carte PEGASE. Ainsi, à chaque redémar-
    rage la carte PEGASE se verra attribuée la même adresse IP. Pour connaitre l'adresse
    MAC de PEGASE, l'utilisateur utilisera le résultat de la commande ifcong ou la lira
    directement sur le module WiFi comme indiqué dans la gure ci-dessous.

                                            000B6B114A24

                Figure 12  Adresse MAC d'un module WiFi sur une carte PEGASE

    Guide de mise en oeuvre de PEGASE                                             Version: 1.F
5 Decouvrir et exploiter la distribution LCPC 2011.1                                         21

5.4.2 Réseau - Stratégies de connexion
     PEGASE intégre plusieurs stratégies de conguration de son interface WiFi:

      managed only : dans cette stratégie (celle par défaut sur PEGASE), PEGASE
       cherche à se connecter à un réseau de type infrastructure dont le SSID est celui
       déni dans le chier  wi.conf . Ce mode de fonctionnement nécessite un point
       d'accés WiFi conguré à portée de PEGASE.En cas de déconnexion, il n'y a pas
       de reconnexion automatique (Exemple: redémarrage de l'Access Point).
      managed and ad hoc on error: dans cette stratégie PEGASE cherche à se
       connecter à un réseau de type infrastructure dont le SSID est celui déni dans le
       chier  wi.conf . En cas d'échecs multiples de connexion au point d'accès WiFi,
       PEGASE crée un réseau Ad hoc avec pour SSID  PEGASE . La carte PEGASE
       entrant dans ce mode démarre un serveur DHCP, an de faciliter la conguration
       des autres objets WiFi entrant dans ce réseau. Ce mode est considéré comme un
       mode de conguration disponible en sortie d'usine, c'est pour cela que la carte
       redémarrera automatiquement au bout de 15 minutes.
      ad hoc only: dans cette stratégie PEGASE crée immédiatement un réseau Ad hoc
       avec pour SSID celui déni dans le chier  wi.conf . La carte PEGASE démarre
       un serveur DHCP, an de faciliter la conguration des autres objets WiFi entrant
       dans ce réseau.

   Par défaut, le mode  managed only  est sélectionné. Toutefois, l'utilisateur pourra
choisir la stratégie qu'il souhaite utiliser en mettant à jour le lien symbolique dans la
partition  /lcpc  de la carte. En exécutant une des trois lignes commençant par  ln
-sf .
#   cd /lcpc
#
#   ln -sf connect-script/managed-and-adhoc-on-error.sh connect.sh
#   ln -sf connect-script/managed-only.sh connect.sh
#   ln -sf connect-script/adhoc-only.sh connect.sh

                Attention: le mode Ad-hoc n'est pas très able (mauvais portage de
                drivers WiFi dans le monde Linux par le constructeur du module WiFi)
                aussi il est conseillé d'en faire un usage limité ou spécique et, dans ce
                cas, consolidé par d'autres scripts vériant la stabilité de la connexion.

    Conseil: dans le répertoire  /lcpc  le chier de script AutoReconnect.sh est disponible
pour que la carte cherche, en permanence, à maintenir la bonne connexion IP/WiFi avec
le réseau. Ce script peut être utile dans les cas où la carte PEGASE doit être connectée
en permanence. Il sut alors de lancer ce script en tâche de fond, en ligne de commande
ou à la n du chier de démarrage Autorun.sh:
# cd /lcpc
# AutoReconnect.sh&
#

Guide de mise en oeuvre de PEGASE                                               Version: 1.F
Vous pouvez aussi lire