Etude et mise en oeuvre de PREEMPT-RT et Xenomai sur cible DSP Blackfin BF537



Documents pareils
MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

Linux embarqué: une alternative à Windows CE?

CAHIER DES CHARGES D IMPLANTATION

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

MI03 TP. Objectifs du TP 1ère séance. 2ème séance. Construction d'un système linux embarqué complet

Systèmes d exploitation

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

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

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

Le Programme SYGADE SYGADE 5.2. Besoins en équipement, logiciels et formation. UNCTAD/GID/DMFAS/Misc.6/Rev.7

Utilisation de matériels industriels avec des outils de virtualisation open source. Open Source dans le monde industriel

Catalogue des stages Ercom 2013

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

Présentation d HyperV

Alexandre Buge Epitech 5 Promo Soutenance de stage du 01/03/2004 au 31/08/2004

Communications performantes par passage de message entre machines virtuelles co-hébergées

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

Linux embarqué Retour d expérience et temps réel. Denis Coupvent-Desgraviers

Tests de performance du matériel

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

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

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

Parallels Transporter Lisez-moi

Linux 1: Présentation

Plan de la conférence. Virtualization. Définition. Historique. Technique. Abstraction matérielle

Virtualisation open source État de l'art

Windows 2000: W2K: Architecture. Introduction. W2K: amélioration du noyau. Gamme windows W2K pro: configuration.

Module : Virtualisation à l aide du rôle Hyper-V

ERP Service Negoce. Pré-requis CEGID Business version sur Plate-forme Windows. Mise à jour Novembre 2009

Présentation des intervenants. Pourquoi cette conférence? Logiciel libre : notions essentielles. Le logiciel libre pour les projets industriels

Systèmes informatiques

Chapitre 2 : Abstraction et Virtualisation

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

La Virtualisation Windows chez CASINO. Philippe CROUZY Responsable Infrastructure Equipes Systèmes -Stockage

Système Principal (hôte) 2008 Enterprise x64

Architecture des Ordinateurs. Partie II:

Parallels Desktop 5 Switch to Mac - Lisez-moi

Présentation Windows 7 &

Qu est ce qu un un serveur?

Retrouver de vieux programmes et jouer sur VirtualBox

Guide d installation JMap 5.0

Virtualisation CITRIX, MICROSOFT, VMWARE OLIVIER D.

«Les documents référencés ci-dessus étant protégés par les droits d auteur et soumis à la déclaration au Centre Français d exploitation du droit de

Etude d architecture de consolidation et virtualisation

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

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée Virtual Server de Microsoft

Découverte des Logiciels Libres. Gilles Dequen

Potentiels de la technologie FPGA dans la conception des systèmes. Avantages des FPGAs pour la conception de systèmes optimisés

UN EXEMPLE DE CYBERENSEIGNEMENT EN CHIMIE

Exigences système Edition & Imprimeries de labeur

en version SAN ou NAS

WSM la solution complète de provisionnement de bureaux virtuels

Atelier : Virtualisation avec Xen

REALISATION d'un. ORDONNANCEUR à ECHEANCES

La gestion du poste de travail en 2011 : Panorama des technologies

Virtualisation de serveurs Solutions Open Source

vbladecenter S! tout-en-un en version SAN ou NAS

Prototypage électronique

NatRcs Ce document présente la liste des nouvelles fonctionnalités de la 7.00, disponible à partir de Mars 2011.

Alcatel OmniPCX Enterprise TSC-IP V1 (4098RE)

Spécifications Techniques Générales. Techno Pole Internet. Lycée Djignabo / Ziguinchor

VMWARE VSPHERE ESXI INSTALLATION

Développement d une carte à processeur linux

«Le malware en 2005 Unix, Linux et autres plates-formes»

Virtualisation & Sécurité

La Continuité d Activité

Performance et usage. La différence NETGEAR - R7000. Streaming HD illimitée

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

HP 600PD TWR i G 4.0G 39 PC

Virtualisation sous Linux L'age de raison. Daniel Veillard

Conférence sur les microcontroleurs.

Synerway Guide de Compatibilité. Version 4.0

Windows Server Chapitre 1: Découvrir Windows Server 2008

Point sur la virtualisation

Plan global Outils de développement et compilation. Ce que l on veut éviter. Plan. Git : gestion de code source et versionnement.

COLLEGE ADRIEN CERNEAU

Comment reproduire les résultats de l article : POP-Java : Parallélisme et distribution orienté objet

Exigences système Edition & Imprimeries de labeur

Exchange 2007 : Améliorations et nouvelles fonctionnalités Atelier 136. Société GRICS

cc.region.beaujeu@wanadoo.fr Site Internet Actuellement nous trouvons ce schéma réseau :

Editeur de solutions innovantes C 3. Solution globale managée de communication et de téléphonie sur IP

Concept de machine virtuelle

Hyper-V v2 : une évolution majeure des services de virtualisation

Livre Blanc - septembre 2007 MAC OS X & WINDOWS : RÉUSSIR LA COHABITATION

Hyperviseur vs Docker. le choc des virtualisations

Serveur Lynx CALLEO Application 2240 Fiches Technique

Bénéficiez d'un large choix d'applications novatrices et éprouvées basées sur les systèmes d'exploitation i5/os, Linux, AIX 5L et Microsoft Windows.

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server

PPE 1 PRISE EN MAIN DE VMWARE VSPHERE 5.5 & CONFIGURATION D UNE MACHINE VIRTUELLE

Sommaire. Systèmes d Exploitation Intégration Sage 100 Sage CRM Disponibilité Client Bases de données... 3

LES SOLUTIONS OPEN SOURCE RED HAT

ANTI-VIRUS / PROTECTION DES POSTES DE TRAVAIL ET DES SERVEURS DE FICHIERS

EN Télécom & Réseau S Utiliser VMWARE

Rationalisation de votre flux de travail

Transcription:

ENSEIRB-MATMECA Rapport de projet avancé 3 ème année électronique Etude et mise en oeuvre de PREEMPT-RT et Xenomai sur cible DSP Blackfin BF537 Etudiants : Alexandre Braconnier Axel Chevalier Jean-Marc Lenoir Professeur : Patrice Kadionik 2013-1014

Table des matières 1 Présentation du projet 2 1.1 Objectifs du projet.................................... 2 1.2 Cahier des charges.................................... 2 2 Présentation de la carte Blackfin BF537 3 3 Présentations des outils 5 3.1 Présentation du noyau Linux.............................. 5 3.2 Présentation de Xenomaï................................ 6 3.3 Présentation de Adeos.................................. 6 3.4 Présentation de PREEMPT-RT............................. 7 4 Conclusion 9 Bibliography 10 1

Chapitre 1 Présentation du projet 1.1 Objectifs du projet Le projet consiste à étudier le portage de deux systèmes d exploitation temps réel, le noyau Xenomai fonctionnant dans l environnement Linux et PREEMPT-RT, sur le processeur Blackfin BF537. Après avoir porté ces deux OS, le but sera de mettre en place des benchmarks à l aide d outils standards afin de réaliser des mesures de temps de latence. Ces mesures nous permettront de vérifier que ces deux systèmes d exploitation temps réel tiennent bien la charge et de comparer leurs performances entre eux et par rapport à un noyau Linux standard. D un point de vue pédagogique, ce projet nous permet de mieux connaître les noyaux temps réel qui existent et qui peuvent être utilisés en parallèle de Linux, ainsi que d apprendre à les configurer et les compiler pour une cible particulière (notion de cross-compilation). Il nous permet également de nous familiariser avec les outils standards utilisés pour réaliser des benchmarks. Enfin, nous pourrons constater concrètement quels sont les gains en temps de traitement de ces noyaux temps réel par rapport à des noyaux standards. 1.2 Cahier des charges Le portage des systèmes d exploitation temps réel devra se faire sur le processeur Blackfin BF537. Pour installer ces OS et les tester, nous avons à notre disposition une carte cible DSP EZ-kit. Les deux systèmes d exploitation que nous avons à installer sur la carte sont des extensions d un noyau Linux standard. Nous devrons les installer à partir de la récente version 3.10.10 du noyau Linux. Ces OS temps réel sont les suivants : - Xenomai. Cette extension du noyau Linux est en fait un second noyau qui fonctionne en parallèle de Linux. Pour faire fonctionner ces deux noyaux ensemble, nous aurons également besoin d installer la couche de virtualisation ADEOS. - PREEMPT-RT, qui est un patch à appliquer au noyau Linux au moment de la compilation. Le système généré ne nécessite donc pas de couche de virtualisation puisqu il n y a qu un seul noyau. Une fois l installation effectuée, nous devrons effectuer des benchmarks à l aide des outils suivants : - stress - hackbench - cyclitest - latency Notre environnement de travail sera un ordinateur fonctionnant sur la distribution Linux Fedora. Celle-ci contient déjà l outil GCC qui nous permettra de compiler nos systèmes d exploitation pour le processeur Blackfin. La communication entre le PC et la carte se fera par un câble Ethernet, à l aide du programme Minicom. 2

Chapitre 2 Présentation de la carte Blackfin BF537 Figure 2.1 la carte DSP EZ-kit sur laquelle se trouve le Blackfin BF537 Le Blackfin BF537 est le processeur sur lequel nous devons installer les OS temps réel. Ce processeur est fabriqué par Analog Devices, mais a été co-développé avec Intel. Il s agit d un processeur de type DSP, donc optimisé pour exécuter des applications de traitement numérique du signal. Il est donc particulièrement adapté à des contraintes de temps réel, d où son intérêt dans le cadre de ce projet. Dans la famille des processeurs Blackfin, le BF537 est le plus performant. Il est celui qui possède la plus grande quantité de mémoire, ce qui lui permet par exemple d être utilisé dans des systèmes de vidéo-surveillance. Il fonctionne sur 16 ou 32 bits. Son jeu d instructions est de type RISC. Il possède un système de DMA (direct Access Memory) pour un transfert rapide des données. Il dispose également d une fonctionnalité de Dynamic Power Management (DPM) afin de gérer au mieux sa consommation électrique. Il peut fonctionner à plus de 600MHz. 3

CHAPITRE 2. PRÉSENTATION DE LA CARTE BLACKFIN BF537 Figure 2.2 Architecture matérielle du BF537 Au niveau de la mémoire, il possède 132kB de mémoire SRAM interne pour le cache et la mémoire de données. Comme dans la plupart des processeurs de type DSP, il possède une mémoire d instructions différente de la mémoire de données (il s agit d une machine de type Harvard). Cette mémoire d instructions dispose elle aussi d un cache. Un contrôleur permet de gérer des mémoires externes synchrones (SDRAM) ou asynchrones. Ces mémoires peuvent être gérées sur 8 bits ou 16 bits. Ce processeur prend en charge un grand nombre de bus de données : CAN, UART, SPI, I2C, USB 2.0, Ethernet... 4

Chapitre 3 Présentations des outils 3.1 Présentation du noyau Linux Le noyau Linux est un noyau basé sur UNIX. Il a été créé en 1991 par Linus Torvalds. A la base seulement compatible avec l architecture x86, il a été depuis porté sur un grand nombre d autres architectures, dont celle utilisée par notre processeur Blackfin BF537. Ce noyau est aujourd hui un logiciel libre et gratuit, distribué sous la licence publique GNU et développé en grande partie par des bénévoles. Il est essentiellement codé en langage C. Au moment de la rédaction de ce rapport, la dernière version de Linux est la 3.13.1, celle que nous utilisons pour le projet est la 3.10.10. C est un noyau de type multi-utilisateur et multitâche. Il est également monolithique, c est-à-dire que l ensemble des fonctions du système et des pilotes sont regroupés dans un seul bloc de code et un seul bloc binaire généré à la compilation. Figure 3.1 Architecture du fonctionnement du noyau Linux 5

3.2. PRÉSENTATION DE XENOMAÏ CHAPITRE 3. PRÉSENTATIONS DES OUTILS Le principal défaut du noyau dans le cadre qui nous intéresse est le fait qu il ne soit pas temps réel, c est à dire qu il ne garantisse pas un temps de traitement maximum dans les tâches. C est pourquoi nous aurons besoin de modifier son comportement à l aide des outils Xenomai et PREEMPT-RT pour lui permettre de devenir un système d exploitation temps réel dur. 3.2 Présentation de Xenomaï Xenomai est un système d exploitation temps réel dur totalement indépendant de Linux, bien que fonctionnant en parallèle de celui-ci. Il s agit en fait du système d exploitation principal de la machine, sur lequel tourne Linux en temps que tâche de fond. Linux est donc une tâche apériodique de Xenomai, qui est activée seulement lorsque toutes les tâches périodiques de Xenomai sont terminées. Cela permet aux tâches périodiques d avoir une garantie d exécution en temps réel dur, bien que Linux n ait pas cette propriété. Xenomai fonctionne sur les architectures matérielles les plus courantes comme x86, ARM, Power PC, AMD ou l architecture Blackfin que nous utilisons dans notre projet. Dans l utilisation de Xenomai, le problème est le fait que deux noyaux (Xenomai et Linux) tournent en même temps sur la machine, le partage des ressources et la gestion des interruptions entre ces deux systèmes peut donc poser problème. C est pourquoi ces noyaux seront exécutés sur une couche de virtualisation, appelée ADEOS que nous verrons ci-après. 3.3 Présentation de Adeos Figure 3.2 Le positionnement de ADEOS par rapport au matériel et aux OS virtualisés ADEOS (Adaptive Domain Environment for Operating Systems) est une couche d abstraction logicielle (aussi appelée hyperviseur) permettant de faire tourner deux noyaux sur un même matériel. Son but est de récupérer les évènements (comme des interruptions matérielles, des signaux logiciels, des créations ou suppressions de tâche de l un des noyaux) et de les envoyer au noyau le plus prioritaire pour qu il puisse les traiter. Dans notre cas d utilisation (Xenomai et Linux comme OS cible) la plupart du temps il enverra d abord ces événements à Xenomai, et si celui-ci les ignore, ils seront alors transmis au noyau 6

3.4. PRÉSENTATION DE PREEMPT-RT CHAPITRE 3. PRÉSENTATIONS DES OUTILS Figure 3.3 Gestion de l envoi des interruptions aux différents OS cibles Linux. Mais dans certains cas, par exemple si la tâche la plus prioritaire se trouve être une tâche Linux, alors l événement sera envoyé à Linux en premier. 3.4 Présentation de PREEMPT-RT PREEMPT-RT est un patch dont le but est de modifier le noyau Linux afin de lui donner un comportement temps réel dur. Pour cela, la majeure partie du noyau, dont les sections critiques et les gestionnaires d interruptions, a été rendue préemptible. D autres parties du code ont été modifiées pour réduire le temps de latence induits par le fonctionnement du système. L avantage par rapport à une solution telle que le couple Xenomai/ADEOS est qu il n y a pas de second noyau donc pas de couche de virtualisation, ce qui allège le système résultant et diminue le temps CPU utilisé pour les opérations réalisées par le noyau. D autre part, les applications fonctionnant sur un noyau Linux standard n ont pas besoin d être modifiées pour tourner sur PREEMPT-RT. Gestion de l envoi des interruptions aux différents OS cibles Dans un premier temps, il est utile de lister les opérations devant être effectuées pour installer un noyau Linux sur la carte Blackfin BF357. La première étape est de choisir le package correspondant au noyau que l on souhaite installer et à la carte que l on utilise. Dans notre cas, nous avons télécharger le package buildroot du noyau Linux 3.10.10 adapté à la carte Blackfin BF357 à l adresse : http ://blackfin.uclinux.org/doku.php Une fois le package téléchargé, on peut le décompresser et l installer. Il convient alors de réaliser la configuration du noyau. Deux options sont possibles : soit une configuration manuelle, soit une configuration à l aide du menuconfig (assistant graphique pour une configuration simplifiée). Dans notre cas, nous avons tout d abord utilisé l outil menuconfig. Plusieurs paramètres doivent être définis afin de réaliser le boot du noyau : - le choix de la carte : BF537 - le choix de la version : 3.10.10 - les patches qui doivent être ajoutés : Adeos Xenomai, PREEMPT-RT... Après plusieurs essais, nous avons aussi réalisé la configuration manuellement pour résoudre les problèmes que nous avons rencontrés lors de la compilation. Nous avons notamment tenter d activer le patch Xenomai manuellement car son ajout grâce au menuconfig ne fonctionnait pas. Il s avère que cette tentative a échoué (nous verrons plus tard pourquoi). Une fois la configuration réalisée, il est possible de compiler le noyau, c est à dire construire l image du noyau configuré avant de le télécharger sur la carte cible. Si la compilation se déroule sans problème, on copie le fichier image créé sous /tftpboot. 7

3.4. PRÉSENTATION DE PREEMPT-RT CHAPITRE 3. PRÉSENTATIONS DES OUTILS Enfin, on peut télécharger le fichier à travers le réseau éthernet depuis le bootloader. Finalement, après connexion grâce à l outil minicom, on lance le noyau depuis la carte cible. Cette procédure correspond aux étapes réalisées lors d un implémentation sans problème. Dans notre cas, plusieurs soucis se sont présentés : les deux principaux correspondent à la configuration des outils tels que Xenomai et la compatibilité entre les outils. En effet, même lors de nos tentatives de configuration manuelle afin de résoudre les problèmes de compilation, il s avère que la compilation révélait des erreurs dues à une incompatibilité entre Xenomai et les autres outils. Ces erreurs de compilation sont effectivement apparues dès le moment où nous avons activé l outil Adeos/Xenomai afin de réaliser des calculs de latence. Pour résoudre ces problèmes, nous avons donc rechercher des documents concernant la configuration du buildroot, l utilisation des outils Adeos/Xenomai, le menuconfig et l implémentation des noyaux Linux sur carte. Ces éléments nous ont permis de résoudre certains problèmes de compilation, pour d autres nous avons tenté de configurer manuellement le noyau Linux. Il s avère finalement que cette étape de recherche documentaire aurait due être réalisée plus tôt afin de détecter un maximum de problèmes ou de paramètres à utiliser. En résumé, nous avions pour objectifs d implémenter les patches Xenomai et Preempt- RT afin de tester les capacités de la carte BF357. Il s avère que nous sommes parvenus à télécharger le noyau Linux sans patch et configurer le buildroot avec le patch Xenomai. Malheureusement, suite à l activation de ce patch, des erreurs de compilation sont apparues. Étant donné le fait que le patch Adeos/Xenomai est utilisable avec les versions antérieures de Linux nous en avons déduis que ce patch n est pas compatible avec la version 3.10.10. 8

Chapitre 4 Conclusion Bien que nous n ayons pas pu avancer très loin dans le projet, celui-ci nous aura permis d apprendre un certain nombre de choses à propos des systèmes d exploitation temps réel, comme ceux qui peuvent être utilisés dans un environnement Linux et comment les configurer pour les installer. Nous aurons également pu nous renseigner sur leur manière de fonctionner (par exemple leur gestion des priorités des tâches, le partage des ressources et des interruptions matérielles avec Linux dans le cas de Xenomai... ). Ce projet nous aura également permis de nous retrouver dans une situation d ingénieur, dans le cadre d un problème qui n a pas de solution toute faite et de tenter de réagir en conséquence. 9

Bibliographie [1] Pierre Ficheux et Eric Bénard, "Linux embarqué",(june 2011). [2] www.blackfin.uclinux.org/doku.php,"analog Devices Open Source Projects". [3] www.xenomai.org/documentation,"life with Adeos". 10