Cours #2 Amorçage du système

Documents pareils
Systèmes Embarqués Libres

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

Systèmes embarqués D.Rossier

Linux embarqué: une alternative à Windows CE?

Session 8: Android File System

Administration de Parc Informatique TP07 : Installation de Linux Debian

Virtualisation CITRIX, MICROSOFT, VMWARE OLIVIER D.

Construction et sécurisation d'un système Linux embarqué. Frédéric AIME

Mise en œuvre d une solution de virtualisation

Exigences système Edition & Imprimeries de labeur

Département de génie électrique. ELE784 - Ordinateurs et programmation système. Laboratoire #1

Systèmes informatiques

1. Présentation du TP

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

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Exigences système Edition & Imprimeries de labeur

Notice d Installation et d utilisation d une liaison Bluetooth avec un PDA ipaq.

VMWARE VSPHERE ESXI INSTALLATION

Naissance d'un REPTAR

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

Gestion de clusters de calcul avec Rocks

MANUELS NUMÉRIQUES PROCÉDURE DE TÉLÉCHARGEMENT

Machine virtuelle W4M- Galaxy : Guide d'installation

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

TD 1 - Installation de système UNIX, partitionnement

Authentification à deux facteurs Cryptage portable gratuit des lecteurs USB Cryptage du disque dur

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Présentation Utilisation. VirtualBox. Firas Kraïem. 22 février 2014

ndv access point : Installation par clé USB

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

SQL Server 2008 et YourSqlDba

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

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

Tivoli Endpoint Manager Introduction IBM Corporation

IV- Comment fonctionne un ordinateur?

Traitement de données

Windows 7, Configuration

Démarrage à partir du réseau

Installation et prise en main d UBUNTU

Virtualisation sous Linux L'age de raison. Daniel Veillard

SUSE LINUX Enterprise Server START-UP GUIDE

Administration UNIX. Le réseau

Enoncé du TP 8 Système

LYCEE DE BRAS PANON MAPA MAI 2015

FOG : Free Open-Source Ghost. Solution libre de clonage et de déploiement de systèmes d'exploitation.

40èmes Olympiades des métiers

Spécifications techniques

DESKTOP Internal Drive. Guide d installation

Sans trop entrer dans les détails, la démarche IO Model consiste à : Pour cela, Microsoft découpe la maîtrise de l infrastructure en quatre niveaux :

SRS Day. Attaque BitLocker par analyse de dump mémoire

Mise en oeuvre TSM 6.1

Howto: Comment faire cohabiter Backtrack et un Windows?

Guide de mise à niveau pas à pas vers Windows 8 CONFIDENTIEL 1/53

LES OLYMPIADES DES METIERS. paration aux sélections s. Guide de préparation. régionalesr. Métier n 39 : GESTION DES RESEAUX INFORMATIQUES

Boot Camp Guide d installation et de configuration

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

Plan de cette matinée

Exigences système Commercial & Digital Printing

Bac Professionnel Systèmes Electroniques Numériques

Le stockage. 1. Architecture de stockage disponible. a. Stockage local ou centralisé. b. Différences entre les architectures

CIE 1 : Mise en service d un PC, y compris le domaine de la sécurité informatique :

Virtualisation open source État de l'art

Projet VDI le futur poste de travail

Prestations informatiques Taux horaires. Prix / T.T.C 35 TTC 15 (offert si réparer par nos soins) Problème materiel :

Plan de cet après-midi

TP développement : portage d applications sur le Cloud IaaS

Présentation Windows 7 &

SOMMAIRE. Installation et utilisation HP RDX.doc

Stockage des machines virtuelles d un système ESXi jose.tavares@hesge.ch & gerald.litzistorf@hesge.ch

Expérience d un hébergeur public dans la sécurisation des sites Web, CCK. Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet

Détection de pollution maritime avec GNU/Linux. Eric Bénard - eric@eukrea.com - 08 juillet 2010

Fiche Pratique. Présentation du problème. Installation du logiciel. Etape 1. MAJ le 17/10/2011

Automatisation des sauvegardes

Virtualisation de serveur grâce à Linux-

OSCAR Un outil gratuit libre d images disque

Outils en ligne de commande

ALLIANZ MODE OPERATOIRE DE MIGRATION D UNE AGENCE WINDOWS Août Version du document : 010

machine cible machine hôte architecture cible différente de la machine hôte

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

Mode d emploi pour lire des livres numériques

Installation de ndv 5

Gérard Castagnoli OSU PYTHEAS 25/06/2013 VVT2013 1

Personnes ressources Tice. Académie de Rouen

13/11/2009 DUT-MUX-0185 /V2.0

Exigences système Commercial & Digital Printing

NON URGENTE TEMPORAIRE DEFINITIVE OBJET : RÉCUPÉRATION DES DONNÉES CLIENT SUR DISQUE DUR DÉFECTUEUX OU INVALIDÉ

Commandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT

Atelier : Virtualisation avec Xen

Retrouver de vieux programmes et jouer sur VirtualBox

et de suivi de la corpulence des enfants

Documentation FOG. Déploiement d images de systèmes d exploitation à travers le réseau.

VMware vsphere 5 Préparation à la certification VMware Certified Professional 5 Data Center Virtualization (VCP5-DCV) - Examen VCP510

Tutorial uclinux ARM7 Development Starter Kit. Pragmatec Produits et services dédiés aux systèmes embarqués. uclinux - Mise en oeuvre

Éléments d'architecture des ordinateurs

Guide de l utilisateur

VMWare. Vmware: machine virtuelle Un véritable pc avec : VmWare

PostgreSQL, le cœur d un système critique

Retrospect 7.7 Addendum au Guide d'utilisation

Menu Fédérateur. Procédure de réinstallation du logiciel EIC Menu Fédérateur d un ancien poste vers un nouveau poste

Transcription:

ELE-674 Systèmes embarqués avancés Cours #2 Amorçage du système Bruno De Kelper Site internet : http://www.ele.etsmtl.ca/academique/ele674/ 1 Plan d aujourd hui 1. Amorçage d un système 1. Démarrage du CPU 2. Démarrage sur un PC 3. Démarrage sur un système embarqué 4. Partie OS de l amorçage 2. 1. Survol des composantes du système 2. Chargeur d amorçage (BootLoader) 3. Noyau du système d exploitation 4. Système de fichiers 3. Outils de conception du système 1. Émulation avec QEMU 2. avec BuildRoot 2 Cours # 1 ELE784 - Ordinateurs et programmation système 1

Amorçage d un système 1.1 - Démarrage du CPU Lorsque l alimentation est appliquée, le CPU se réveille sans rien connaitre de son environnement. Alimentation RAM Flash La seule chose qu il connait est sa ROM interne. ROM Celle-ci contient un peu de code qui permet de commencer l initialisation du système Port série Port USB 3 Ethernet 1.2 - Démarrage sur un PC Amorçage d un système Beaucoup de l environnement du CPU est connu d avance BIOS ou équivalent Initialise les composantes du système, tels que les contrôleurs : RAM, interruptions, bus PCI, Fournit un pilote de base pour le Disque Dur. Se charge en mémoire Démarre le chargement du «BootLoader» : Peut être d assez grosse dimension Pour finir, le BIOS se met en mode «service». BootLoader Sert essentiellement à démarrer l OS et disparait ensuite Linux GRUB, LILO, Windows NTLDR, 4 Cours # 1 ELE784 - Ordinateurs et programmation système 2

Amorçage d un système 1.3 - Démarrage sur un système embarqué Le CPU «saute» à une adresse bien précise de la ROM ROM code L environnement du CPU est très variable, d un système à un autre Initialise quelques composantes essentielles du CPU : Horloge, Mémoire-interne, Périphériques de base Cherche un dispositif contenant un BootLoader valide. Charge le BootLoader trouvé en mémoire-interne : ROM-interne assez petite (initialisée par le fabricant) BootLoader Linux + (ARM, PowerPC) U-Boot SD Flash NAND, NOR Pour finir, le ROM code se retire du système. Fait le gros de l initialisation du système : Bus, cache et Mémoire externe Principaux périphériques du système Interruptions, Charge et décompresse l OS en mémoire Son travail fait, le BootLoader disparait du système Linux RedBoot, Yamon, Grub, LILO, U-Boot, 5 1.4 - Partie OS de l amorçage Boot Loader Système fonctionnel paramètres de démarrage Amorçage d un système 1 Initialise Noyau 2 Monte RootFS Init Système prêt Finalise l initialisation tel que le MMU (virtualisation de la mémoire), Récupère, décompresse et installe le RootFS. Exécute «linuxrc», démarre les pilotes et les Daemons. Démarre la 1 ière tâche : INIT 3 Le 1 er RootFS provient d un fichier «initrd» Système de fichier «initramfs» chargé dans un «RAM Disk» Ce RootFS contient : Fichiers des modules et pilotes du système Fichiers des librairies et de configurations Outils, logiciels, Surtout, le RootFS permet la «virtualisation» du système voir les composantes du système comme des «fichiers virtuels» 6 4 Cours # 1 ELE784 - Ordinateurs et programmation système 3

2.1 - Survol des composantes du système Boot Loader Noyau RootFS Choisir un BootLoader U-Boot Configurer le BootLoader Datasheet Compiler le BootLoader Toolchain Choisir un emplacement de stockage NAND, SD, UART, USB Choisir un Noyau Linux Configurer le Noyau Requis du système Compiler le Noyau Toolchain Choisir un emplacement de stockage Choisir un emplacement de montage Choisir un type de RootFS Configurer et peupler le RootFS Linux NAND, SD, UART, USB, NFS NAND, SD, NFS, RAM Requis du système 7 2.2.1 - Rôle et défis d un chargeur d amorçage Rôle : Le rôle du chargeur d amorçage (BootLoader) est de rendre le système suffisamment fonctionnel pour que d autres programmes puissent être exécutés. Au démarrage, le CPU est dans un état prédéfini et commence son exécution à une adresse bien précise dans la mémoire permanente du système. Aucunes des composantes du système ne sont fonctionnelles, y compris la mémoire RAM, et c est le rôle du BootLoader de leur «insuffler la vie». Défis : Au début de son exécution, le BootLoader n a pas accès ni à de la mémoire RAM pour stocker ses données, ni à une pile. Une 1 ière tâche du BootLoader est de rendre disponible la mémoire RAM et la pile, en initialisant correctement le contrôleur de DRAM et en configurant le CPU. Sa 2 ième tâche importante est de se copier lui-même dans la mémoire RAM, afin de poursuivre son exécution plus aisément. Finalement, le BootLoader doit récupérer le Noyau, selon l emplacement où celuici se trouve, le décompresser et l installer dans la mémoire RAM. 8 Cours # 1 ELE784 - Ordinateurs et programmation système 4

2.2.2 - Choix d un chargeur d amorçage Souvent, le chargeur d amorçage (BootLoader) est fournit par le fabricant de la plateforme de développement utilisée. Par contre, si celui-ci est bien adapté pour l architecture matérielle de la plateforme de développement, il ne l est pas nécessairement pour un système personnalisé. Dans la plupart des cas, un BootLoader doit être choisit et adapté à un Design spécifique de système embarqué. De nombreux BootLoader sont disponibles, tant commercialement que publiquement (à code ouvert). De ceux-ci, certainement le plus populaire pour les projets basés sur Linux est Das U-Boot, communément appelé U-Boot, de Wolfgang Denk (DENX Software Engineering). À la base, U-Boot a été développé spécifiquement pour les systèmes embarqués basé sur les ARM et PowerPC, mais supporte maintenant une vaste gamme de processeurs. 9 2.2.3 - Chargeur d amorçage U-Boot U-Boot est disponible à partir de plusieurs sources, dont la principale est : http://www.denx.de/wiki/u-boot Outre sa grande popularité pour les systèmes embarqués basés sur Linux, U-Boot a les avantages suivants : Est très configurable Est capable d amorcer un Noyau à partir de différentes sources : TFTP IDE SCSI UART USB NAND NOR SD Supporte une vaste gamme de systèmes de fichiers : Cramfs ext2 FAT JFFS2 Fournit un interpréteur de commandes (shell) Bien documenté Supporté par une large communauté Support pour une vaste gamme de processeurs : ARM AVR32 Blackfin Motorola 68K Microblaze Xilinx MIPS NIOS NIOS2 PowerPC Super-H Fournit une riche gamme de commandes 10 Cours # 1 ELE784 - Ordinateurs et programmation système 5

2.2.4 - Configurer U-Boot Pour une plateforme supportée U-Boot a été adapté pour plus de 300 plateformes différentes et de nombreux processeurs U-Boot include Pour configurer et compiler U-Boot pour une de ces plateformes, il suffit d exécuter les commandes suivantes : 1 make mrproper Pour faire le ménage configs 2 make omap3630sdp_config Pour établir la configuration Réfère à une règle du fichier Makefile de U-Boot 3 make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- all Architecture du CPU Compilateur «croisé» à utiliser Ces commandes font référence aux inscriptions suivantes du Makefile de U-Boot : omap3630sdp_config : unconfig @./mkconfig $(@:_config=) arm omap3 omap3630sdp Réfère au fichier de configuration : include/configs/omap3630sdp.h 11 2.2.4 - Configurer U-Boot Pour une plateforme non-supportée 1 Pour une nouvelle plateforme, le mieux est d abord d identifier une plateforme existante similaire et si possible de l utiliser comme point de départ. Il s agit ensuite de procéder aux étapes suivantes : /include/configs/omap3630sdp.h copier fichier Plateforme omap3630sdp comme point de départ /include/configs/omap3630new.h 2 /board/omap3630sdp copier répertoire /board/omap3630new 3 Ajouter la règle suivante au fichier Makefile : omap3630new_config : unconfig @./mkconfig $(@:_config=) arm omap3 omap3630new Pour finir, il s agit de modifier les fichiers «clonés» selon les caractéristiques de la nouvelle plateforme et selon les besoins. Ce dernier point requière une bonne connaissance de la plateforme matérielle et du processeur qu elle contient (voir Datasheets du CPU et des composantes). 12 Cours # 1 ELE784 - Ordinateurs et programmation système 6

2.2.4 - Configurer U-Boot Pour un CPU non-supportée Pour un nouveau processeur, le travail de configuration est beaucoup plus ardu et requière une connaissance profonde du fonctionnement du nouveau CPU. Ici aussi, le mieux est d abord d identifier un CPU existant similaire et si possible de l utiliser comme point de départ. Aux étapes précédentes s ajoute alors l étape suivante : 2.1 /cpu/omap3 copier répertoire /cpu/omap3new Processeur OMAP3 comme point de départ Certains fichiers de ce répertoire sont en code Assembleur et s occupe des toutes premières phases de démarrage du processeur (ex. : start.s). Pour finir, il s agit de modifier les fichiers «clonés» selon les caractéristiques de la nouvelle plateforme, du nouveau processeur et selon les besoins. 13 2.2.4 - Configurer U-Boot U-Boot est principalement par le «fichier de configuration» adapté pour la plateforme choisie : /include/configs/<plateforme>.h Ce fichier contient de nombreuses déclarations prenant les formes suivantes : Options configurables par l usager qui active #define CONFIG_XXXX des fonctionnalités spécifiques. #define CONFIG_SYS_XXXX #define CONFIG_CMD_XXXX Incorporation de commandes standards choisies à la liste des commandes exécutables. Par exemple, certaines déclarations usuelles : CONFIG_ETHADDR Réglages spécifiques, souvent de type «réglages matériels». CONFIG_SYS_CONSOLE_INFO_QUIET CONFIG_IDENT_STRING CONFIG_BOOTDELAY CONFIG_BOOTCMD CONFIG_SYS_CLK_FREQ CONFIG_CMD_FLASH CONFIG_CMD_DHCP 14 Cours # 1 ELE784 - Ordinateurs et programmation système 7

2.2.5 - Utiliser U-Boot Quelques exemples U-Boot fournit jusqu à 70 commandes standards servant à contrôler ses actions. help bootm loadb Obtenir de l aide sur les commandes Démarrer le code se trouvant en mémoire Charger en mémoire à l aide du lien série printenv Ces commandes sont accessibles grâce à l interpréteur de commandes de U-Boot. Pour finir, U-Boot exige de recevoir le Noyau dans un certain format et fournit un script qui permet de faire la conversion : Adresse mémoire Type d OS du chargement Nom du script Architecture cp bootp Afficher les variables d environnement Copie de la mémoire RAM vers la mémoire Flash Charger un Noyau à partir d un site DHCP Type de fichier mkimage A arm O linux T kernel a 0x30008000 Note : Les Noyaux Linux e 0x30008000 n zimage uimage récents font cette Fichier résultant conversion. Adresse mémoire Fichier à du point d entrée convertir 15 2.2.6 - Cas particulier : Amorçage d un OMAP de Texas Instruments Les processeurs OMAP de TI utilisent une séquence d amorçage en 4 étapes : Power ON Vecteur de Reset (voir http://omappedia.org/wiki/bootloader_project) ROM code X-Loader U-Boot Noyau La raison de cette division du BootLoader est de fournir un BootLoader «minimal» pouvant être chargé dans la petite mémoire RAM interne du processeur. ROM code ROM interne Initialise une configuration minimale des horloges, de la mémoire et des périphériques Cherche un dispositif ayant une image d amorçage valide Charge X-Loader dans la mémoire interne et le démarre SYSBOOT GPIO pins RAM interne RAM externe RAM externe BootLoader divisé en 2 morceaux X-Loader Attribue les fonctionnalités des signaux externes Initialise les horloges et la mémoire externe Charge U-Boot dans la mémoire externe et le démarre U-Boot Finalise l initialisation de base du système Établit les arguments de démarrage du Noyau Démarre le Noyau à partir de son image 16 Cours # 1 ELE784 - Ordinateurs et programmation système 8

2.3 - Noyau du système d exploitation 2.3.1 - Rôle et défis du Noyau Rôle : Le Noyau est le cœur du système et rend accessible l ensemble des ressources du système aux applications-usagers. Il s assure de maintenir la cohérence et la stabilité du système, tout en assurant un accès performant aux ressources. Il offre un interface d accès (API) standardisé aux ressources, afin de rendre le système indépendant des caractéristiques sous-jacentes des ressources. Défis : Au début de son exécution, le Noyau reçoit du BootLoader un système partiellement fonctionnel et il doit en compléter l initialisation. L initialisation étant terminée, le Noyau se place en mode «service», mais reste en mémoire pendant toute la «vie» du système. Le Noyau d un système embarqué doit limiter ses fonctionnalités aux seules qui sont vraiment requises car l espace-mémoire est habituellement très limité. Finalement, le Noyau doit offrir des mécanismes efficaces qui permettent au système de répondre aux évènements dans les délais spécifiés. 17 2.3.2 - Choix d un Noyau 2.3 - Noyau du système d exploitation De nombreux Noyaux conçus spécifiquement pour les systèmes embarqués sont disponibles, tant commercialement que publiquement ou même artisanales. À prime abord, ce qu on recherche d un Noyau, ce sont ses fonctionnalités et sa capacité d être adapté à une plateforme spécifique (configurable). Mécanismes de réponse aux évènements Gestion des ressources et outils disponibles Fonctionnalités Interfaces d accès aux ressources Robustesse, fiabilité, prédictibilité Taille et charge imposés par le Noyau Configurable Prise en charge des ressources spécifiques Extensibilité, adaptabilité, Mais de nombreuses autres considérations rentrent en ligne de compte dans le choix d un Noyau : Compatibilité Documentation Outils Coûts Dépendance Support Réutilisation Base de connaissance Disponibilité Standards 18 Cours # 1 ELE784 - Ordinateurs et programmation système 9

2.3.2 - Choix d un Noyau 2.3 - Noyau du système d exploitation Critères Commerciale Publique Coûts Achat de licence, Royautés Gratuit, Achat de version «clé en main» Support Support «expert», contrat de support Communauté, Version «clé en main» Compatibilité Spécifique à l architecture Très varié (CPU 32 bits et +) Disponibilité Limitée, Marché d échelle illimitée Documentation Limitée par la propriété commerciale Très vaste, peut manquer de fiabilité Base de connaissance Bassin de clientèle Vaste communauté Réutilisation Limitée Très grande Outils Propriétaires Variés et publiques Standards Certains standards repectés Établit des standards Dépendance Grande vis-à-vis le fournisseur Aucune Pour toutes ces raisons et d autres, Linux s impose de plus en plus comme choix privilégié pour les nouveaux projets de systèmes embarqués au près des entreprises 19 2.3 - Noyau du système d exploitation 2.3.3 - Noyau Linux pour système embarqué Il n y a pas de Noyau-Linux spécifiquement conçu pour les systèmes embarqués. Linux étant très «configurable», il se prête bien à ce type de système. En fin de compte, Linux-embarqué est un Noyau-Linux customisé. Par contre, Linux n est pas bien adapté pour les petits systèmes embarqués, dont les ressources sont très limitées. CPU 32 bits Linux Mémoire ROM 32 MB embarqué Mémoire RAM 64-128 MB Outre ces limitations, Linux est bien adapté à une très large gamme de plateformes et fournit une infrastructure solide de réseau (très recherché dans les systèmes embarqués modernes). Pour les aspects de contraintes Temps-Réel, Linux est très performant pour le respect de contraintes dites «fermes» et «molles». Certains ajouts à Linux, tels que Xenomai et la patch Real-Time, permettent de s approcher grandement du respect de contraintes Temps-Réel dites «dures». Bien que beaucoup de la patch Real-Time a trouvé sont chemin dans le Noyau-Linux officiel, ces dernières années 20 Cours # 1 ELE784 - Ordinateurs et programmation système 10