Fast boot sur Mini2440
|
|
- Marie-Thérèse Charpentier
- il y a 8 ans
- Total affichages :
Transcription
1 ENSEIRB-MATMECA 1, Avenue du Dr. Albert Schweitzer F Talence Cedex Spécialité Électronique - Option SE - 3 e Année Projet Avancé Fast boot sur Mini2440 Quentin Parrod, Fabien Forest, Jonathan Tirach, Nicolas Calmels, Jean-Baptiste Théou
2 Table des matières 1 Introduction Le projet Notre approche Les outils Compilation croisée Installation Création de la chaîne de compilation Utilisation Rootfs Construction Création de l image initramfs Busybox Configuration Application Compilation des bibliothèques Compilation de l application du Concours Linux Optimisation Optimisation de la chaîne de compilation Compilation avec la bibliothèque uclibc Configuration de uclibc Augmentation de l horloge, Timing de Nand Timing de Nand Augmentation de l horloge Optimisation du bootloader Les bootloaders évolués Les autres Optimisation de vboot Les optimisations Optimisation du noyau Partie 1 - Sans DHCP (ip static) État des lieux Conclusion - Sans DHCP Bonus - Patch de la pile
3 3.4.5 Partie 2 - Avec DHCP Conclusion - Avec DHCP Optimisation de l application Choix pour l application Analyse des sections Stack protector Unwind exceptions Suppression du code mort Piste Installation en Nor Conclusion 25 6 Références 26 7 Annexes 27 Quelques définitions 28 3
4 1 Introduction Le projet avancé de 3ème année, réalisé en équipe de 4 ou 5 personnes, a pour but de travailler sur un sujet touchant aux systèmes embarqués sur les aspects matériels et/ou logiciels. Nous allons en quelques mots présenter le projet et notre approche pour réduire le temps de boot. 1.1 Le projet Ce projet, initialement proposé par la société OpenWide dans le cadre d un concours, a été repris par notre groupe. L objectif de ce projet est d optimiser le temps de boot (démarrage à froid) d une application bien définie et cela sur la carte mini2440. L application est basée sur un noyau Linux. Les contraintes de ce projet sont spécifiées dans le cahier des charges du concours et ont été inchangées. Ces spécifications sont les suivantes : Démarrage d un noyau Linux sur une carte Mini2440 Obtention d une adresse IPv4 par DHCP Affichage de l adresse IP obtenue : Au format décimal séparé par des points Au centre de l écran en format paysage En noir sur fond rouge Avec une police non connue à l avance Avec une taille en pixel contenue dans le nom de fichier de la police Utilisation de la police de caractères TrueType (pour afficher l adresse IP) se trouvant dans la première partition (en ext4) de la carte SDHC (Sandisk 30 MB/s), et dont le nom commence par "concours-" suivi de la taille en pixel et de l extension ".ttf". Présence d une zone tactile, dans le coin inférieur droit, entraînant l affichage du nom de l auteur ou de l équipe, déclenchement de l action liée au bouton lors d un appui sur la surface de celui-ci (le reste de l écran ne doit pas déclencher cette action) Nous avons réalisé ce cahier des charges de la façon suivante, en ce qui concerne l interface graphique (page suivante) : 4
5 Figure 1.1 Interface graphique du concours 1.2 Notre approche Souhaitant maîtriser complètement notre projet, nous n avons pas voulu utiliser d outils tels que OpenEmbedded ou Buildroot, qui "cache" de notre point de vue une partie du travail, et qui donc ne sont pas appropriés dans le contexte actuel. Ensuite, d après le cahier des charges, notre système doit contenir les choses suivantes : Un noyau linux (minimal) avec les drivers pour : MMC (Memory card), LCD, TCP/IP Une bibliothèque pour gérer la police de type TTF Une bibliothèque pour gérer le tactile Un serveur DHCP Quelques outils de base pour récupérer les informations comme la taille de la police Après une recherche, nous avons fait le choix des outils suivant : Une bibliothèque pour gérer la police de type TTF : FreeType2 Une bibliothèque pour gérer le tactile : Tslib Quelques outils de base : Busybox La première partie du projet concerne donc la mise en place du projet, de façon fonctionnelle (avant toute tentative d optimisation). La seconde partie concerne nos différentes optimisations et leurs résultats. 5
6 2 Les outils 2.1 Compilation croisée La compilation croisée permet de compiler des programmes sur un hôte différent de la cible. Dans notre cas, la compilation est faite sur x86 (PC) à destination d un coeur ARM. Pour la création de la chaîne de compilation croisée, nous avons utilisé le script crosstool-ng. Il permet de compiler de A à Z une chaîne de compilation (en résumé, gcc + la bibliothèque C), avec un niveau d optimisation avancé, via l utilisation de menuconfig Installation Pour l installation, il faut récupérer la dernière version sur le site du projet puis se positionner dans le dossier "Compilation" pour pouvoir respecter l organisation présentée dans l introduction. Listing 2.1 Compilation de Crosstool-ng cp../ Sources / crosstool -ng -*. tar. bz2 tar xvzf crosstool -ng -*. tar. bz2 cd crosstool - ng -*./ configure make make install Nous avons maintenant l outil ct-ng à disposition Création de la chaîne de compilation Maintenant l outil à disposition, il faut le configurer. Pour configurer crosstool-ng, exécuter : Listing 2.2 Configuration de l outil./ ct - ng menuconfig On peut sélectionner les différents éléments de la chaîne de compilation. Une fois fait, on peut lancer la compilation. Listing 2.3 Compilation de la chaîne de compilation./ct -ng build.4 6
7 2.1.3 Utilisation La nouvelle chaîne de compilation est maintenant disponible (par défaut) dans le dossier personnel, dans le répertoire x-tools. Pour permettre une utilisation facile dans les compilations, on peut mettre en place les chemins dans le.bashrc Listing 2.4 Utilisation de la chaîne de compilation # Configuration de la chaine de compilation PATH = $HOME /x- tools /arm -<le nom de votre chaine ( none par defaut ) >- linux - < le nom de votre libraire C >/ bin : $PATH export PATH CROSS_ COMPILE = arm - < le nom de votre chaine ( none par defaut ) >- < le nom de votre libraire C >- CC ="${ CROSS_COMPILE } gcc -march =< votre architecture > -mtune =< votre processeur >" export CROSS_ COMPILE export CC Dans notre cas, avec la carte Mini2440 comme cible, cela donne : Listing 2.5 Utilisation de la chaîne de compilation PATH = $HOME /x- tools /arm - jbtheou - linux - uclibcgnueabi / bin : $PATH export PATH CROSS_COMPILE =arm - jbtheou - linux - uclibcgnueabi - CC ="${ CROSS_COMPILE } gcc -march = armv4t -mtune = arm920t " export CROSS_ COMPILE export CC La chaîne de compilation est donc maintenant pleinement utilisable. 2.2 Rootfs Nous allons maintenant créer notre système de fichier, qui sera utilisé, soit via un système de fichiers "usuel" (ext4, jffs2, etc), soit via un "système de fichiers" interne au noyau, initramfs. Dans le cadre de notre projet, nous avons fait le choix d utiliser initramfs comme système de fichiers Construction En respectant l organisation présentée en introduction, nous allons créer ce système de fichier dans le dossier rootfs. On crée tout d abord la structure standard du système de fichier de linux (page suivante) : 7
8 Listing 2.6 Création de l arborescence mkdir dev mkdir -p etc / init.d mkdir lib mkdir mnt mkdir proc mkdir sys mkdir - m 777 tmp mkdir var Nous avons le système de fichier "minimium". Il s agit de le "remplir" selon les besoins. Dans le cadre du concours, ce système de ficher est minimal. Il ne contient que le strict nécessaire (voir en Annexes) Création de l image initramfs. Pour créer une image initramfs de notre système de fichier, nous exécutons la commande suivante (en respectant toujours la structure en présentation) : Listing 2.7 Image pour l initramfs find. cpio - H newc - o >../ linux / initramfs. cpio Cette image peut être maintenant utilisée par le noyau linux. Dès qu on modifie le système de fichier (Modification d un fichier de configuration, ajout de binaire, etc), il faut recréer l image du système de fichier. 2.3 Busybox Dans l état actuel, nous avons un rootfs minimal qui nous permettra de démarrer dans le user-space. Cependant, il n est capable de rien faire. Pour avoir accès à une "trousse" minimum d applications, au sein d un seul exécutable, on utilise la boite à outils busybox Configuration Pour choisir les outils utiles, nous utilisons l outil de configuration "usuel" : Listing 2.8 Configuration make ARCH = arm menuconfig ( console ) make ARCH = arm xconfig ( graphique X) On peut compiler l outil en lui indiquant la localisation du système de fichier, pour l installation de l exécutable et des liens symboliques Listing 2.9 Compilation make ARCH = arm On installe l exécutable et les liens symboliques (qui pointe tous vers l exécutable busybox) dans le système de fichier root : 8
9 Listing 2.10 Installation make ARCH = arm CONFIG_PREFIX =$( pwd ) /../ rootfs install Nous avons donc un système de fichier avec quelques outils de base. 2.4 Application Nous avons donc un système de fichier de base, avec les exécutables fournis par busybox dont nous avons besoin. Il nous faut maintenant compiler notre programme dédié au cahier des charges du concours Compilation des bibliothèques Pour compiler notre application utilisateur, nous avons besoin de deux bibliothèques : FreeType et tslib. Freetype Nous avons configuré la bibliothèque pour contenir le strict minimum pour notre application. Une fois configurée, nous pouvons la compiler avec la commande suivante : Listing 2.11 Compilation de Freetype./ configure -- host = arm make -j2 La bibliothèque est maintenant disponible, sous le nom libfreetype.a. tslib Cette bibliothèque fonctionne sur un principe de module. Souhaitant utiliser uniquement des choses statiques sur notre système, nous avons mis en place un patch disponible sur internet pour fonctionner en statique. La compilation se passe de la façon suivante : Listing 2.12 Compilation de tslib./ autogen.sh./ configure -- host = arm --enable - linear = static --enable - dejitter = static --enable - variance = static --enable - pthres = static --enable - input = static --disable - linear - h disable - ucb1x00 --disable - corgi --disable - collie --disable - h disable - mk712 --disable - arctic2 --disable - tatung --disable - dmc --disable - touchkit make -j2 On peut voir que l on désactive tout les modules qui nous sont inutiles, et qu on positionne en statique les modules que nous souhaitons utiliser. On obtient la bibliothèque sous le nom libts.a. 9
10 2.4.2 Compilation de l application du Concours Une fois nos deux bibliothèques disponible, on peut compiler notre application : Listing 2.13 Compilation de notre application arm - jbtheou - linux - uclibcgnueabi - gcc - static - ffunction - sections - fdata - sections -Wl,--gc - sections Concours.c -march = armv4t -mtune = arm920t -I../ freetype2 /. -I../ freetype2 / include / -I../ tslib / -I../ tslib / src -I../ tslib / tests -L../ freetype2 / objs /. libs / - lfreetype -L../ tslib / src /. libs / -lts -Wall -Os -o Concours Il ne nous reste plus qu a insérer notre application dans le rootfs Listing 2.14 Copie dans le rootfs cp Concours../ rootfs / bin Notre système de fichier contient maintenant le nécessaire pour fonctionner correctement, en respectant le cahier des charges. Avant d insérer le rootfs, on "strip" les exécutables, c est-à-dire on retire les entêtes disponibles dans le format ELF (Le format de nos exécutables). Ainsi, on perd des capacités des débuggages, mais on gagne encore un peu de place. Comme nous avons modifié le rootfs, il faut recréer l initramfs, via la commande : Listing 2.15 Regénération de l initramfs cd../ rootfs find. cpio - H newc - o >../ linux / initramfs. cpio La prochaine étape permet de compiler le noyau, avec le rootfs fonctionnel. 2.5 Linux Nous avons pour le moment une chaîne de compilation, et un système de fichier minimal. Il faut maintenant compiler le noyau linux, avec les optimisations souhaitées. Pour ce faire, on exécute la commande "usuel" : Listing 2.16 Configuration make menuconfig ( Affichage standard ) make xconfig ( Affichage evolue avec une interface qt) make gconfig ( Affichage evolue avec une interface gtk ) Il s agit de configurer le noyau selon les besoins. Dans le cas de la Mini2440, il existe un fichier de configuration par défaut. Pour le charger, il faut exécuter la commande : Listing 2.17 Initialisation make mini2440_ defconfig Pour utiliser le système de fichier en initramfs que nous avons défini précédemment, il faut juste ajouter, via la commande de configuration vu ci-dessus, l option et le chemin dans 10
11 Listing 2.18 Configuration -- > General setup -- > Initial RAM filesystem and RAM disk ( initramfs / initrd ) support -- > Initramfs source file : initramfs. cpio On peut créer l image du noyau (ici une image non compressée) via la commande : Listing 2.19 Création de l image make Image - j4 11
12 3 Optimisation Durant ce projet, le principe de base avant toute optimisation d ordre technique (modification, patch, etc), est le principe du strict minimum. Tous les outils utilisés sur la cible contiennent juste le nécessaire pour leur exécution, sans code superflu. De plus, ils sont compilés en statique sans les options de débug (-g). 3.1 Optimisation de la chaîne de compilation Dans le cas de l optimisation de la chaîne de compilation croisée, nous avons utilisé une bibliothèque C plus légère que glibc, la bibliothèque par défaut. Nous vous présentons comment utiliser cette bibliothèque Compilation avec la bibliothèque uclibc Dans un but d optimisation de la chaîne de compilation, nous avons fait le choix de la bibliothèque uclibc. En effet, elle est optimisée pour présenter une empreinte mémoire plus faible. Il faut donc faire le choix dans le menuconfig de crosstool-ng (Revoir la page sur la compilation de crosstool-ng). Une fois le choix fait, lancer une première fois la compilation via la commande (Le.4 permet de lancer 4 processus en parrallèle). Listing 3.1 Construction./ct -ng build.4 Il va télécharger les paquets, puis commencer la compilation. Lors de l accès aux sources de uclibc, il donne une erreur, l absence du fichier de configuration. Il faut tout d abord configurer uclibc, puis donner le lien à crosstool-ng Configuration de uclibc Pour accéder aux sources de uclibc, il faut se rendre à : Listing 3.2 Dossier cd. build / src / uclibc * On configure uclibc via la commande 12
13 Listing 3.3 Configuration make menuconfig Une fois la configuration effectuée, il la sauvegarde dans le fichier.config. Il suffit maintenant de revenir sur la configuration de crosstool-ng : Listing 3.4 Configuration de crosstool-ng cd../../.../ ct - ng menuconfig Et dans le menu C-Library, mettre le chemin suivant dans le champs pour le fichier de configuration : Listing 3.5 Configuration de crosstool-ng./ build / src / uclibc -< mettre la version >/. config La compilation devrait maintenant fonctionner jusqu au bout. 3.2 Augmentation de l horloge, Timing de Nand Timing de Nand Par défaut, les timings d accès à la Nand (Configuré dans le bootloader) sont les plus lents possibles (Comptabilité avec toutes les marques de Nand). Dans notre cas, on optimise les timings d accès pour avoir le temps le plus court. Listing 3.6 Timing de nand # define TACLS 0 # define TWRPH0 1 # define TWRPH Augmentation de l horloge Par défaut (Configuration "normal" des bootloaders), le s3c2440 fonctionne à 405 Mhz. Hors le ARM920t, le coeur ARM embarqué dans le SoC, peux fonctionner à 533 Mhz sans overclocking. On peut donc augmenter la cadence du processeur. Cependant, on souhaite conserver notre timing de la Nand, car le temps le plus long reste la copie, donc l augmentation de l horloge doit être limité. Listing 3.7 Configuration initiale S3C244X : core MHz, memory MHz, peripheral MHz Après différents tests, on peut augmenter la cadence du CPU jusqu à Mhz sans avoir à modifier les temps d accès à la Nand. On gagne donc de la vitesse de calcul pour l initialisation de Linux. 13
14 Listing 3.8 Configuration finale S3C244X : core MHz, memory MHz, peripheral MHz 3.3 Optimisation du bootloader L optimisation du bootloader est un élément important dans notre projet. C est la partie qui effectue les initialisations de très bas niveau (Mémoire, Nand, CPU, etc). Il existe deux types de bootloader : Les évolués Les autres Les bootloaders évolués Les bootloaders évolués sont des bootloaders qui embarquent les fonctionnalités supplémentaires, non requises pour le démarrage de l OS. Par exemple, on peut citer : U-boot Barebox (aka U-boot v2). Ces bootloaders se séparent en deux parties : Une partie commune (Les fonctionnalités supplémentaires) Une partie propre au matériel (Initialisation) Ces bootloaders sont très pratiques durant le développement. En effet, on peut charger un noyau depuis le réseau, formater la Nand, avoir accès à un terminal pour interagir sur la configuration, etc. Dans notre optique d optimisation, ils sont trop lourds. On peut toujours optimiser en retirant des fonctionnalités, mais ils ne sont pas fait pour être très rapides, ils sont fait pour être très fonctionnels. De plus, cette façon de procéder n est pas optimale. On peut retirer des choses, mais on a assez difficilement une visibilité globale du fonctionnement et retirer certaines parties peut être assez compliqué, car le logiciel n a pas été prévu pour ça. Il vaut donc mieux partir du minimum, et construire dessus Les autres Les autres constituent les bootloaders "simples", c est-à-dire qui ne réalisent que les opérations suivantes, sans possibilités d interagir : Initialisation du matériel Récupération du noyau (ROM, Flash, etc) Exécution du noyau Ces bootloaders sont très efficaces, mais très dépendants du matériel, avec des capacités limitées. Cependant, sur notre carte, la mémoire Nor embarque un bootloader évolué qui permet de récupérer le noyau via USB et de mettre à jour le bootloader sur la Nand. On peut donc se contenter d un bootloader très limité, mais très efficace sur la Nand. Nous avons utilisé ce type de bootloaders dans notre projet. 14
15 Comme on ne reinvente pas la roue quand elle existe, nous nous sommes basé sur le projet vboot disponible sur le site de FriendlyARM. Nous avons optimisé le code pour répondre à notre besoin, en initialisant uniquement le strict minimum Optimisation de vboot Même si vboot est un bootloader léger, il n est pas forcement optimisé à son maximum (selon notre application bien évidemment). Pour s en convaincre, voici trois sorties du très pratique logiciel tstamp, qui permet d horodater les sorties sur UART (coté PC). Le temps 0 correspond à l envoi du caractère "CR" par le bootloader (Juste après la configuration de l UART). La seconde ligne est la première sortie sur UART de linux. La version initiale de vboot (Disponible sur le site FriendlyARM), en supprimant la vérification de l entête de la zimage (On n utilise pas d image compressé) Listing 3.9 Configuration initiale : : Linux version FriendlyARM ( breizhpc@ breizhpc - laptop ) ( gcc version ( prerelease ) ( crosstool - NG ) ) # 564 Thu Nov 17 20: 32: 01 CET 2011 Le temps passé dans le bootloader (+ temps d envoi des caractères) est donc de 773 ms. La version précédente très légèrement modifiée : On ne copie plus 0x octets depuis la Nand, mais juste la taille du noyau (dans l exemple, ). Listing 3.10 Configuration intermédiaire : : Linux version FriendlyARM ( breizhpc@ breizhpc - laptop ) ( gcc version ( prerelease ) ( crosstool - NG ) ) # 564 Thu Nov 17 20: 32: 01 CET 2011 Le temps n est plus que de 336 ms. On affiche déjà un gain de 56.5 % en utilisant juste la bonne taille pour la copie. La version actuelle du bootloader (Largement modifiée, on détaille les modifications dans la suite) Listing 3.11 Configuration finale : : Linux version FriendlyARM ( breizhpc@ breizhpc - laptop ) ( gcc version ( prerelease ) ( crosstool - NG ) ) # 564 Thu Nov 17 20: 32: 01 CET 2011 Le temps n est plus que de 176 ms. On affiche un gain de 47.6 % par rapport au cas précédent, et de 77.2 % par rapport au cas initial. En collant au plus près des besoins, on peut donc gagner un temps considérable Les optimisations Pour se rendre compte des optimisations dans le bootloader, le plus simple reste encore de regarder le code. Autrement, les différents axes sont : 15
16 Simplification au maximum (Pas d ATAGS, tout en statique dans le noyau) Initialisation du strict minimum (Juste les ports utiles, etc) Adaptation des timings (CPU, Flash, etc) Maximum du code en assembleur directement (Plus de contrôle sur le code) 3.4 Optimisation du noyau Dans cette partie, nous allons détailler les différentes étapes d optimisations du noyau, avec leurs impacts en terme de temps et de taille. On utilise le noyau linux disponible sur le site de friendlyarm. On utilise pour système de fichier root un initramfs optimisé, de taille (352 Ko) octets. On travaille uniquement avec des archives non compressées (linux+initramfs) Partie 1 - Sans DHCP (ip static) Conditions initiales On compile le noyau, en l adaptant à la carte via la commande : Listing 3.12 Initialisation make mini2440_ defconfig On rajoute uniquement dans la configuration la localisation de l initramfs. On obtient un noyau final de (4.3 Mo) octets. Etape 1 : Retrait des drivers inutiles Dans un premier temps, on supprime les drivers inutiles pour notre application : 16
17 Driver Wifi Driver MTD Driver RTC etc On supprime aussi les systèmes de fichiers inutiles : ext2, ext3, etc. On met en correspondance le noyau avec nos besoins (Type de LCD, support du ext4, etc). On désactive dans la partie kernel hacking les outils de trace (utile pour l optimisation) et l utilisation du debugfs (plus généralement, tout les outils de debug). On désactive le chargement des modules (On souhaite obtenir un noyau statique). C est la première étape de l optimisation. La mise en conformité des attentes de notre produit, et des drivers chargés. La taille du noyau résultat est considérablement réduit, tout comme le temps de chargement (Voir graphique final). Etape 2 : Service TCP/IP Au niveau des services réseaux, nous n avons besoin que de la pile TCP/IP et des sockets. On supprime tout le reste (Multicast, etc.) Etape 3 : Finalisation du retrait des drivers A cette étape, nous avons presque fini de nettoyer notre noyau avec les drivers inutiles. Par analyse du log, on voit que deux drivers nous ont échappé : DMA et sdhci. On les supprime. Notre noyau colle maintenant parfaitement à nos besoins. On peut encore pousser l optimisation. Etape 4 : Simplification de noyau - Partie 1 Pour simplifier le noyau, on supprime les éléments suivants : La gestion du power management Les formats de binaires autre que ELF Les appels système Kexec La possibilité d utiliser des exécutables compilés avec THUMB Etape 5 : Simplification du noyau - Partie 2 Sachant que notre application utilisateur est très simple (Pas de communication avec d autres applications, etc), on peut retirer tous les éléments du noyau dédié à la communication entre tâches : Swap, IPC, Queue IO policy Data Integrity Relayfs A ce niveau, toutes les modifications possibles de base ont été faites. 17
18 Etape 6 : Option Embedded Dans le noyau, la sélection de l option Embedded permet de modifier plus finement le noyau. On choisit pour la gestion du noyau SLOB, un ordonnanceur bien plus léger et simple On retire toutes les nouvelles options, sauf printk pour permettre d obtenir les traces. Avec ces modifications, nous avons fait le maximum d optimisation pour notre cas via la commande menuconfig. Etape 7 : Calibration loop Dans l initialisation du noyau, on peut voir qu il effectue à chaque démarrage une boucle de calibration. Listing 3.13 Calibration loop Calibrating delay loop BogoMIPS ( lpj =528384) Or cette calibration dépend du matériel, et notre matériel est fixe. On fixe donc la valeur dans les arguments de boot (lpj=528384). Ceci permet de gagner environ 100 ms. Etape 8 : Mem size Notre carte embarque 64M de Ram. Au tout début de son initialisation, Linux traite cet espace mémoire pour préparer son arrivée. Dans notre cas, notre système nécessite peu de mémoire. On fonctionne très bien avec 4M de Ram. On peut donc réduire la taille donnée à Linux par un argument de boot (mem=4m) État des lieux A ce stade, pour ne pas avancer dans le noir, on utilise un outil de trace fourni par le noyau. Il permet de tracer les initcall, avec le temps mis par chacun. Pour l utiliser : Rajouter l option pour avoir les symboles dans les options du menu Embedded Rajouter la fonction de Tracer dans les kernel hacking Rajouter les arguments suivants pour le boot : printk.time=1 initcall_debug Augmenter la mémoire à 16M On obtient le graphique suivant (page suivante) : 18
19 On peut voir que les postes les plus longs sont : s3c_arch_init : L initialisation de l architecture (11,773 ms) inet_init : L initialisation des composants réseaux (29,708 ms) populate_rootfs : Mise en place du système de fichier root (22,412 ms) s3c2410fb_init : Initialisation du framebuffer (21,612 ms) s3c2440_serial_init : Initialisation de l interface série (13,647 ms) dm9000_init : Initialisation du contrôleur réseau (11,580 ms) s3c2410ts_init : Initialisation du touchscreen (11,398 ms) Pour un temps total de sec sur sec. On peut donc explorer les drivers pour voir si, dans notre cas précis, on peut les optimiser. Optimisation de s3c2440_serial_init A la fin, ce driver n est plus utile. En effet, les sorties sur UART ne sont utiles dans notre cas que pour du débug. Aucune modification n est utile ici car il sera supprimé. Optimisation de inet_init Lors de la configuration du réseau, on ne peut pas, a priori, intervenir facilement sur les services chargés (TCP,UDP,ARP,ICMP,etc). La stack TCP/IP n est pas prévue dans une idée modulaire. Dans notre cas, on souhaite uniquement communiquer via UDP (DHCP s appuie sur la couche de transport UDP). A défaut de retirer les sources de TCP & Co, ce qui serait long pour un gain de temps a priori négligable, on va retirer les initialisations de tous les services mis à part le service UDP dans le fichier af_inet.c (Initialisation du réseau). Ainsi, on obtient : 29,708 7,738 ms Le gain est conséquent, pour un effort minime. 19
20 Autre Il semble compliqué de gagner du temps sur l optimisation de ces modules, sachant de plus que le ratio gain/temps sera très défavorable. On gagne donc 35,617 ms en supprimant le driver série + la modification de la pile IP. Dernière optimisation : Suppression du printk Notre noyau est déjà bien optimisé. Il reste une grosse optimisation : La suppression des printk. L envoi des messages de debug via UART prend beaucoup de temps, et de place dans le noyau. Maintenant que notre noyau est optimisé et que nous n avons plus à le modifier, on peut supprimer les printk. Cette suppression nous permet de gagner 200 ms Conclusion - Sans DHCP à Au niveau du temps, on passe de : Listing 3.14 Sortie initiale : : Linux version ( breizhpc@ breizhpc ) ( gcc version ( prerelease ) ( crosstool - NG ) ) #6 Wed Dec 7 19: 54: 51 CET : CPU : ARM920T [ ] revision 0 ( ARMv4T ), cr = c : CPU : VIVT data cache, VIVT instruction cache : Machine : FriendlyARM Mini2440 development board [...] : Freeing init memory : 516 K : eth0 : link down : s3c - sdi s3c sdi : running at 399 khz ( requested : 400 khz ) : s3c - sdi s3c sdi : running at khz ( requested : khz ) : s3c - sdi s3c sdi : running at khz ( requested : khz ) : mmc0 : new SDHC card at address a : mmcblk0 : mmc0 : a741 SD08G GiB : mmcblk0 : p : mount : mounting / dev / block / mmcblk0p1 on / mnt / sdcard failed : Unknown error : ls: / mnt / sdcard / concours -*: Unknown error : Application user ( null ) HOME =/ : : Please press Enter to activate this console. eth0 : link up, 100 Mbps, full - duplex, lpa 0 xcde1 Listing 3.15 Sortie finale : : Application user / mnt / sdcard / concours ttf 20
21 Grâce à l optimisation du temps de chargement du noyau et de sa taille (Dans l exemple de fin, la taille de copie optimisée est mise en place dans le bootloader), on gagne 80% du temps de chargement. Au travers de ces différentes optimisations, le temps de chargement est réduit de façon importante, et la taille du noyau diminue elle aussi. Sachant que le temps passé dans le bootloader est linéaire à la taille de l image, c est une donnée très importante Bonus - Patch de la pile Par défaut, dans la pile TCP/IP de linux, nous n avons pas le choix des protocoles. En effet, dans une utilisation "normale" de linux, nous avons 99% de chance d avoir besoin du protocole TCP si on active la pile. Cependant dans notre cas, le cahier des charges demande uniquement au chapitre connectivité de pouvoir faire une acquisition d adresse via DHCP. Le protocole DHCP utilise la couche UDP pour son transport. Nous avons donc mis en place une possibilité de configuration des protocoles embarqués dans la pile via menuconfig. Comme il serait très compliqué de rendre réellement modulaire les protocoles dans la pile, nous avons utilisé de fausses définitions (vides) des fonctions utilisées par TCP par exemple lorsque l on désactive le protocole TCP (voir le fichier de patch du noyau). Ainsi, en conservant uniquement le protocole UDP, on gagne en place et en temps d initialisation. Cependant, hors du cadre du concours, ce patch a peu de sens, car il existe très peu de systèmes fonctionnant uniquement sur UDP Partie 2 - Avec DHCP Le cahier des charges demande de récupérer une adresse IP par DHCP. L une des solutions est d utiliser le client DHCP présent dans busybox. Cependant, il se déclenche au dernier moment (user space). Nous avons préféré mettre en place l autoconfiguration ip du noyau. Il existe un module qui permet de demander une adresse DHCP dans l espace noyau (ipconfig). L intérêt de cette solution est que l on peut déclencher la demande bien plus tôt, et donc accélérer le démarrage de l application. Par défaut, l envoi de la requête DHCP bloque le démarrage du noyau, jusqu à obtention de l adresse. Il existe un système introduit dans le noyau pour faire fonctionner une initialisation de façon asynchrone. Nous avons mis en place cette méthode. Ainsi, le démarrage est plus rapide. Pour augmenter encore la vitesse de démarrage, nous avons remonté dans l ordre chronologique des initialisations, l initialisation du driver ethernet et le lancement de la requête en définissant de nouveau niveaux d initcall. En effet, l ordre des initialisations est défini par le niveau d initcall. Par exemple, la macro module_init correspond au niveau 6. Nous avons donc défini deux nouveaux initcall : Listing 3.16 Nouveau initcall earlydeviceinitcall earlyconfiginitcall Ainsi, les deux sont chargés plus tôt, et on optimise encore le temps. 21
22 3.4.6 Conclusion - Avec DHCP à : Avec nos optimisations, on passe de : Listing 3.17 Nouveau initcall : : Application user / mnt / sdcard / concours ttf Listing 3.18 Nouveau initcall : : Application user / mnt / sdcard / concours ttf On gagne donc beaucoup de temps avec nos modifications. Cependant, par rapport à nos 450 ms, on peut voir que le DHCP prend énormément de temps. Cela est du au temps de mise en place du link up. Malheureusement, nous n avons trouvé aucun moyen pour réduire ce délai, qui semble être un délais d activation matérielle. 3.5 Optimisation de l application Choix pour l application Pour l application, nous avons fait le choix de ne pas utiliser de "sur-couche" graphique (QT, GTK, etc) pour faire le plus léger possible. On s appuie directement sur le framebuffer, c est-à-dire que l on écrit directement dans la mémoire dédié à la vidéo. On utilise FreeType2 pour la gestion de la police TTF, et la bibliothèque tslib pour la gestion du tactile Analyse des sections Pour réduire la taille des exécutables, il peut être utile de vérifier le code généré en assembleur. On peut le faire à l aide de l outil suivant : Listing 3.19 Appel dessasembleur arm - jbtheou - linux - gnueabi - objdump -D Ainsi, nous avons pu remarquer dans le code assembleur qu il y avait deux types de sections rajoutés automatiquement par le compilateur : Des appels liés à l option Stack-protector Des appels liés à la gestion des exceptions (unwind). Par exemple (page suivante) : 22
23 Listing 3.20 Exemple d appel unwind 0002 f1a4 < gnu_unwind_frame >: 2 f1d8 : ebffff0b bl 2 ee0c < gnu_ unwind_ execute > 2 f27c : 652 f7475 strvs r7, [pc, # -1141]! ; 2 ee0f < gnu_unwind_execute +0x3 > Stack protector Pour le premier cas, nous avons rajouté l option gcc -fno-stack-protector lors de nos compilations, et décoché la case correspondante dans la configuration de uclibc (autrement, la bibliothèque est compilée avec cette option, ce qui ajoute de facto les sections). Cette option de gcc permet de ne pas utiliser la fonction de protection de la "stack", dont nous n avons pas besoin ici Unwind exceptions Pour le second cas, il semble que ces exceptions fassent parties de l AEABI. Après quelques recherches, nous avons pas trouvé de moyen simple de les retirer proprement. Nous avons donc mis en place dans nos deux executables (busybox et Concours) de fausses définitions des sections en questions. C est une modification pas très propre, mais fonctionnelle dans notre cas. Par exemple, sur l exécutable Concours, on peut observer le gain en taille : Listing 3.21 Comparaison - rwxr - xr - x. 1 root root Dec 22 10: 52 Concours - avec - unwind - rwxr - xr - x. 1 root root Dec 22 10: 51 Concours - sans - unwind On gagne donc 26k. Ce qui n est pas négligable, sachant qu il y a un gain aussi avec busybox Suppression du code mort La compilation peut générer du code mort (Variables inutiles, etc). Il existe une option dans le linker qui permet de supprimer ce code mort : Le garbage collector (Ramasse miette). On l active de la façon suivante dans une compilation : Listing 3.22 Garbage collector -Wl,--gc - sections Et pour être certain que le garbage collector puisse faire son travail, on met le maximum de choses dans des sections séparées via les options : Listing 3.23 Séparer dans des sections - ffunction - sections - fdata - sections Nous avons mis en place ces options dans toutes nos compilations pour être sur de n embarquer que le nécessaire. 23
24 4 Piste 4.1 Installation en Nor Sachant que notre noyau fait au final 1.7 Mo, il rentre dans les 2 Mo de la Nor. Sachant que la Nor est directement adressable par le CPU, on peut retirer la copie du noyau vers la RAM. En utilisant la technique d exécution sur place (XIP), on peut gagner du temps. Sachant que la principale lourdeur au niveau code du bootloader provient de la copie de donnée depuis la Nand, on peut aussi simplifier le bootloader. Par manque de temps, nous n avons pas mis en place cette solution. 24
25 5 Conclusion Au travers de ce projet, nous avons pu aborder quelques solutions d optimisations pour les plateformes à base de Linux. Comme nous avons pu le voir, l optimisation est un problème très dépendant de la plateforme, de l application, des contraintes. Cependant, l approche que nous avons eu est une approche reconductible, qui se base sur les aspects suivants : Une analyse du cahier des charges Des tests à chaque étapes, pour évaluer leurs influences La juste mesure : n embarquer que le nécessaire Nous avons pu voir qu avec de l optimisation, nous pouvions gagner un facteur très important sur les temps de démarrage, ce qui est un facteur non négligeable dans nombre d applications. Ce projet résonne donc au delà son cadre. Il nous a permis d acquérir des bases et des méthodes pour réaliser des systèmes embarqués qui ne font pas que fonctionner, mais qui fonctionne au mieux des capacités qui nous sont fournies. 25
26 6 Références Comme dans tout projet open source, l information est disponible à de nombreux endroits, et il est souvent nécessaire de voir de multiples sources pour comprendre complètement un problème, une technique, etc. De ce fait, ces références sont non complètes, et comme d habitude lors d un projet, le maître mot est la recherche sur internet, pour ne pas réinventer la roue lorsqu elle existe. Idée de l utilisation de nouveau initicall, et de l utilisation des fonctions asynchrone : Pour le démarrage, le blog de notre enseignant à l ENSEIRB, Patrick Kadionik : Le groupe du concours (Merci pour l outil flashimg, les patchs, etc!) : groups.google.com/group/concours-linuxembedded Les exemples fournis avec tslib, qui nous ont servit de base pour l application utilisateur. Pour retirer la gestion des unwinds, de façon un peu brutal : org/viewtopic.php?f=2&t=2944 Nous tenions à dire un grand merci à toutes les personnes qui donnent de leurs temps pour des projets libres, et qui fournisse des outils de grandes qualités : Linux, crosstool-ng, busybox, etc. Enfin, un remerciement appuyé à la société Open Wide, pour l organisation de ce concours, qui nous a permis d apprendre beaucoup autour du Linux embarqué. 26
27 7 Annexes Listing 7.1 Contenu du rootfs [ root@ breizhpc rootfs ]# ls - Rl.: total 40 drwxr - xr - x. 2 root root janv. 10: 49 bin drwxr - xr - x. 4 root root janv. 10: 46 dev drwxr - xr - x. 3 root root janv. 10: 46 etc lrwxrwxrwx. 1 root root 9 14 janv. 10: 48 init - > sbin / init drwxr - xr - x. 3 root root janv. 10: 46 mnt drwxr - xr - x. 2 root root janv. 10: 46 proc drwxr - xr - x. 2 root root janv. 10: 48 sbin drwxr - xr - x. 2 root root janv. 10: 46 sys drwxrwxrwx. 2 root root janv. 10: 46 tmp drwxr - xr - x. 4 root root janv. 10: 48 usr drwxr - xr - x. 2 root root janv. 10: 46 var./ bin : total rwxr - xr - x. 1 root root janv. 10: 48 busybox - rwxr - xr - x. 1 root root janv. 10: 49 Concours lrwxrwxrwx. 1 root root 7 14 janv. 10: 48 grep - > busybox lrwxrwxrwx. 1 root root 7 14 janv. 10: 48 hush - > busybox lrwxrwxrwx. 1 root root 7 14 janv. 10: 48 ls - > busybox lrwxrwxrwx. 1 root root 7 14 janv. 10: 48 mount - > busybox lrwxrwxrwx. 1 root root 7 14 janv. 10: 48 sh - > busybox./ dev : total 8 drwxr - xr - x. 2 root root janv. 10: 46 block drwxr - xr - x. 2 root root janv. 10: 46 input./ dev / block : total 0./ dev / input : total 0./ etc : total 12 -rwxr -xr -x. 1 root root janv. 10:46 fstab drwxr -xr -x. 2 root root janv. 10:46 init.d - rwxr - xr - x. 1 root root janv. 10: 46 inittab 27
28 ./ etc / init.d: total 4 -rwxr -xr -x. 1 root root janv. 10:46 rcs./ mnt : total 4 drwxr - xr - x. 2 root root janv. 10: 46 sdcard./ mnt / sdcard : total 0./ proc : total 0./ sbin : total 0 lrwxrwxrwx. 1 root root janv. 10: 48 ifconfig - >../ bin / busybox lrwxrwxrwx. 1 root root janv. 10: 48 init - >../ bin / busybox./ sys : total 0./ tmp : total 0./ usr : total 8 drwxr - xr - x. 2 root root janv. 10: 48 bin drwxr - xr - x. 3 root root janv. 10: 46 local./ usr / bin : total 0 lrwxrwxrwx. 1 root root janv. 10:48 cut ->../../ bin / busybox./ usr / local : total 4 drwxr - xr - x. 3 root root janv. 10: 46 tslib./ usr / local / tslib : total 4 drwxr - xr - x. 2 root root janv. 10: 46 etc./ usr / local / tslib / etc : total 4 -rwxr -xr -x. 1 root root janv. 10:46 ts. conf./ var : total 0 28
29 Quelques définitions ATAGS Arguments donnés par le bootloader au noyau Linux pour lui transmettre des informations sur la machine (Mémoire, ligne de commande pour le boot, etc.). 16 Buildroot Outil de génération automatique de linux embarqué. 5 DHCP Service réseau qui permet, entre autre, l acquisition d une adresse IP. 4 DMA Direct Memory Access, c est un périphérique qui permet de gérer la mémoire sans utiliser de temps CPU. 17 ELF Format portable pour exécutable. Format principal sur les noyaux récents. 10 ext4 Système de fichier pour Linux. 4, 7 gcc Compilateur C issu du projet GNU. 6 IPC Inter-processus communication. C est une norme pour faire communiquer des processus. 17 IPv4 Version de la norme IP, qui fourni des adresses du type jffs2 Système de fichier adapté aux mémoires de type Flash.. 7 MTD Memory Technology Device, c est le driver qui permet d interagir avec les mémoires de type Flash. 17 Nand Type de mémoire Flash. 13, 14 29
30 Nor Un autre type de mémoire Flash. 14 OpenEmbedded Outil de génération automatique de linux embarqué. 5 RTC Real Time Clock, une horloge temps réel. 17 SDHC Secure Digital High Capactity, nouvelle norme pour les carte mémoires de type SD. 4 SoC System on chip. C est une puce contenant un micro-contrôleur, avec des périphériques supplémentaires. 13 Swap Permet d augmenter les capactiés de mémoires en effectuant un tampon sur un disque dur.. 17 TCP/IP Utilisé pour décrire la bibliothèque contenant le nécessaire pour utiliser le réseau. 17 THUMB Jeux d instruction compressé proposé par ARM.. 17 TrueType Type vectoriel de police de caractère. 4 tstamp Petit utilitaire qui permet d horodater les sorties faites sur UART. 15 UART Protocole de communication sur port série. 19 UDP Protocole de communication réseau
Session 8: Android File System
Session 8: Android File System LO52 - Automne 2014 Fabien BRISSET 2 mai 2014 fabien.brisset@utbm.fr www.utbm.fr Droits de reproduction Copyright 2013-2014, Fabien Brisset, Copyright 2004-2014, Free Electrons
Plus en détailNaissance d'un REPTAR
Naissance d'un REPTAR "Bringing spirit into an hardware skeleton" R.Bornet - HEIG-VD/REDS - Mars 2014 Plan Introduction Démarche générale Premiers signes de vie Bootloader Kernel Userspace Les bonnes adresses
Plus en détail[DEVELOPPEMENT SUR LA CIBLE 2440] 19 avril 2010
I n s t a l l a t i on e t U t i l i sa t i o n : C I B L E 2 4 4 0 Sommaire 1. Introduction... 3 2. Dialogue avec la cible 2440... 4 1. Par Port Série... 4 2. Par TFTP... 8 3. Par FTP... 14 4. par NFS...
Plus en détailTutorial uclinux ARM7 Development Starter Kit. Pragmatec Produits et services dédiés aux systèmes embarqués. uclinux - Mise en oeuvre
Pragmatec Produits et services dédiés aux systèmes embarqués Tutorial uclinux ARM7 Development Starter Kit 15 Octobre 2006 Rev 1.06 1 / 36 2 / 36 Le kit de développement ARM7 est un kit réalisé par la
Plus en détailMI03 TP. Objectifs du TP 1ère séance. 2ème séance. Construction d'un système linux embarqué complet
MI03 TP Objectifs du TP 1ère séance Construction d'un système linux embarqué complet 2ème séance Mise en place d'un environnement de développement croisé Intégration de l'extension temps réél Xenomai La
Plus en détailConstruction et sécurisation d'un système Linux embarqué. Frédéric AIME faime@janua.fr 0 950 260 370
Construction et sécurisation d'un système Linux embarqué Frédéric AIME faime@janua.fr 0 950 260 370 Différentes approches Création d'une distribution From Scratch Nécessite un investissement intellectuel
Plus en détailSystèmes Embarqués Libres
Systèmes Embarqués Libres Djalal Harouni tixxdz@opendz.org Pr. Mohamed Benmohammed Laboratoire Informatique LIRE, Université Mentouri Constantine Sofware Freedom Day 2011 Algeria. 1 Systèmes Embarqués
Plus en détailCréer. Deuxième partie II. Ajouts d utilisateurs. Formation à Linux Embarqué. Résolution DNS. mot de passe
Résolution DNS Ajout de la résolution DNS host$ echo nameserver 192.168.1.254 > etc/ resolv.conf target% ping www.google.com Formation à Linux Embarqué Jérôme Pouiller Utiliser
Plus en détailFormation à Linux Embarqué. Jérôme Pouiller <j.pouiller@sysmic.org>
Formation à Linux Embarqué Jérôme Pouiller Deuxième partie II Créer Sysmic - J. Pouiller Formation à Linux Embarqué 65 / 241 7 Booter par réseau Le bootloader TFTP NFS 8 Compilation
Plus en détailLa mémoire. Un ordinateur. L'octet. Le bit
Introduction à l informatique et à la programmation Un ordinateur Un ordinateur est une machine à calculer composée de : un processeur (ou unité centrale) qui effectue les calculs une mémoire qui conserve
Plus en détailCommandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT
Commandes Linux Gestion des fichiers et des répertoires Lister les fichiers Lister les fichiers cachés Lister les répertoires d un répertoire Lister les fichiers par date Les droits Types de fichier Supprimer
Plus en détailIl est courant de souhaiter conserver à
Il est courant de souhaiter conserver à la fois Linux et Windows sur un même ordinateur, en particulier pour découvrir Linux, pour garder un filet de sécurité, ou pour continuer à jouer à des jeux récents
Plus en détailChapitre IX : Virtualisation
Chapitre IX : Virtualisation Eric Leclercq & Marinette Savonnet Département IEM http://ufrsciencestech.u-bourgogne.fr http://ludique.u-bourgogne.fr/~leclercq 5 mai 2011 1 Principes Problématique Typologie
Plus en détailPRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille
PRESENTATION RESSOURCES Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille 1) Introduction, Objectifs et Intentions Le BTS SN (Systèmes Numériques) intègre la formation
Plus en détailDebian Lenny - Virtualisation avec Libvirt/KVM Debian GNU/Linux
Debian Lenny - Virtualisation avec Libvirt/KVM Debian GNU/Linux Matthieu Vogelweith 13 janvier 2009 Résumé L objectif de ce document est de détailler l installation d un serveur KVM [1] (Kernel based Virtual
Plus en détailLinux embarqué: une alternative à Windows CE?
embarqué: une alternative à Windows CE? : une alternative à Windows CE Présentation Mangrove Systems Distribution embarqué Perspective WinCe / Questions Mangrove systems Créé en 2001 Soutien Soutien Ministère
Plus en détailPersonnes ressources Tice. Académie de Rouen
Personnes ressources Tice Académie de Rouen Objectifs Acquérir les connaissances de base concernant Linux Découvrir la solution technique SambaEdu3 : serveur de fichiers sous Linux Mettre en oeuvre cette
Plus en détailAmiens 2007. Métier 39 : Gestion des réseaux informatiques. Jour 2, première partie. Durée : 3 heures
39 èmes Olympiades des Métiers Amiens 2007 Métier 39 : Gestion des réseaux informatiques Jour 2, première partie Durée : 3 heures N ote : La correction de cette épreuve se déroulera tout au long de la
Plus en détailCompilation croisée sous Linux et Windows
Compilation croisée sous Linux et Windows Pierre Ficheux (pierre.ficheux@openwide.fr) Mai 2005 Résumé Cet article décrit la mis en place d'une chaîne de compilation croisée utilisable dans l'environnement
Plus en détailSystèmes embarqués D.Rossier
D.Rossier Manuel IEM (v0.2) Manuel d'utilisation pour les laboratoires IEM Auteur: G. Boutillier / C. Bardet Objectif Cette documentation donne de brèves explications sur l'utilisation des différents outils,
Plus en détailDétection de pollution maritime avec GNU/Linux. Eric Bénard - eric@eukrea.com - 08 juillet 2010
Détection de pollution maritime avec GNU/Linux Eric Bénard - eric@eukrea.com - 08 juillet 2010 Conception de produits électroniques intégrant des logiciels libres : u-boot, barebox, linux Développement
Plus en détailAdministration de Parc Informatique TP07 : Installation de Linux Debian
Institut Galilée L2 Info S1 Année 2012 2013 1 Une machine virtuelle Administration de Parc Informatique TP07 : Installation de Linux Debian Le but du TP est d installer Linux (en l occurrence la distribution
Plus en détailpfsense Manuel d Installation et d Utilisation du Logiciel
LAGARDE Yannick Licence R&T Mont de Marsan option ASUR yannicklagarde@hotmail.com Manuel d Installation et d Utilisation du Logiciel Centre Hospitalier d'arcachon 5 allée de l'hôpital - BP40140 33164 La
Plus en détail2X ThinClientServer Guide d utilisation
2X ThinClientServer Guide d utilisation Page 1/23 Sommaire 2x Thin Client Server Boot PXE Edition... 3 Connections Manage... 3 Connections Manage Users... 3 Connections Manage Full Desktops... 4 Connections
Plus en détailLinux et le Shell. Francois BAYART. Atelier du samedi 20 Novembre 2010 http://www.loligrub.be
Linux et le Shell Francois BAYART Atelier du samedi 20 Novembre 2010 http://www.loligrub.be 1 Le «système» 2 FHS http://fr.wikipedia.org/wiki/filesystem_hierarchy_standard Filesystem Hierarchy Standard
Plus en détailNON URGENTE TEMPORAIRE DEFINITIVE OBJET : RÉCUPÉRATION DES DONNÉES CLIENT SUR DISQUE DUR DÉFECTUEUX OU INVALIDÉ
COMMUNICATION TECHNIQUE N TC0536 Ed. 01 OmniPCX Enterprise Nb de pages : 11 Date : 12-03-2004 URGENTE NON URGENTE TEMPORAIRE DEFINITIVE OBJET : RÉCUPÉRATION DES DONNÉES CLIENT Cette communication technique
Plus en détailManuel de System Monitor
Chris Schlaeger John Tapsell Chris Schlaeger Tobias Koenig Traduction française : Yves Dessertine Traduction française : Philippe Guilbert Traduction française : Robin Guitton Relecture de la documentation
Plus en détailChi rement des postes PC / MAC / LINUX
Mohammed Khabzaoui UMR 8524 Université Lille1 13 fevrier 2014 Plan Chi rement des portables Outil de chi rement matériel Disque auto-chi rant Outils de chi rement logiciel FileVault pour MAC Dm-crypt pour
Plus en détailRESEAUX MISE EN ŒUVRE
RESEAUX ROUTEUR MISE EN ŒUVRE [1/13] RESEAUX MISE EN ŒUVRE Objectif : Ce TD/TP consiste à appliquer les concepts théoriques concernant les routeurs à un cas pratique afin d assimilerlesnotionsélémentairesdeprotocole,deroutage,etpluslargementl
Plus en détailCONFIGURATION FIREWALL
Diffusion : Libre Expert en Réseaux & Télécoms Restreinte Interne CONFIGURATION FIREWALL Version : 2.0 Date : 29/08/2009 RESIX - 8, rue germain Soufflot - Immeuble le sésame - 78180 Montigny le Bretonneux
Plus en détailTraitement de données
Traitement de données Présentation du module TINI Présentation du module : Le module Tini se décline en plusieurs versions, il est constitué d une carte d application et d un module processeur : Les modules
Plus en détailItium XP. Guide Utilisateur
Itium XP 06/2007 - Rev. 3 1 Sommaire 1 Sommaire... 2 2 Généralités... 3 3 ItiumSysLock... 4 3.1 Enregistrer l état actuel du système... 4 3.2 Désactiver ItiumSysLock... 5 3.3 Activer ItiumSysLock... 5
Plus en détailOpenMediaVault installation
OpenMediaVault installation 2013-01-13/YM: version initiale 1 Introduction L'installation de OpenMediaVault, basé sur Debian, présente quelques difficultés pour l'utilisateur de Windows. Cette procédure
Plus en détailINSTALLATION DE WINDOWS 2000 SERVER POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé
INSTALLATION DE WINDOWS 2000 SERVER POUR BCDI3 par G.Haberer, A.Peuch, P.Saadé Table des matières 1. Installation de Windows 2000 Server.............................................. 2 2. Installation
Plus en détailInstallation de ndv 5
Installation de ndv 5 Réf : NDV50-NI02-Installation-fr-140123 www.neocoretech.com Présentation Le déploiement de l infrastructure ndv se fait à partir d un fichier.iso (Boot BIOS) ou à partir d une clé
Plus en détailTD 1 - Installation de système UNIX, partitionnement
Département des Sciences Informatiques Licence Pro R&S 2009 2010 Administration Système T.T. Dang Ngoc dntt@u-cergy.fr TD 1 - Installation de système UNIX, partitionnement 1 Préambule Il existe de très
Plus en détailSauvegarde et protection des documents
Sauvegarde et protection des documents 16 avril 2013 p 1 Sauvegarde et protection des documents Sauvegarder un document consiste à en conserver une copie, pour le mettre à l abri ou pour y revenir ultérieurement.
Plus en détailSauvegarde de postes clients avec BackupPC
Sauvegarde de postes clients avec BackupPC Plan Expression des besoins Cahier des charges Présentation de BackupPC Installation et configuration Mise en pratique à l'observatoire Administration des Sauvegardes
Plus en détailDépartement de génie électrique. ELE784 - Ordinateurs et programmation système. Laboratoire #1
Département de génie électrique ELE784 - Ordinateurs et programmation système Laboratoire #1 Développement des composantes logicielles de base d un système informatique Description sommaire : Dans ce laboratoire,
Plus en détailCapture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark. Etape 1 : Lancement des machines virtuelles VMWARE et de Wireshark
Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark Wireshark est un programme informatique libre de droit, qui permet de capturer et d analyser les trames d information qui transitent
Plus en détailST50 Projet de fin d études Noyau Linux et multi-processeur pour une plateforme embarquée
Mitsubishi Electric ITE-TCL 1, allée de Beaulieu CS 10806 35708 Rennes CEDEX 7 France Tel. +33 (0) 2 23 45 58 58 ST50 Projet de fin d études Noyau Linux et multi-processeur pour une plateforme embarquée
Plus en détailTHEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs
Architecture Matérielle des Systèmes Informatiques. S1 BTS Informatique de Gestion 1 ère année THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT Dossier 1 L environnement informatique. Objectifs Enumérer et
Plus en détailDOCKER MEETUP. Christophe Labouisse / @XtlCnslt
DOCKER MEETUP Christophe Labouisse / @XtlCnslt #ME, #MYSELF AND #I CHRISTOPHE LABOUISSE Développeur Freelance Java mais pas que Côté front : Angular, Ionic Sous le capot : Linux, Docker DOCKER @ HOME Retour
Plus en détailMon premier rpm. http://alexandre-mesle.com 7 juin 2010. 1 Avant de commencer 2 1.1 RPM... 2 1.2 URPMI... 2 1.3 RPMBUILD... 2
Mon premier rpm http://alexandre-mesle.com 7 juin 2010 Table des matières 1 Avant de commencer 2 1.1 RPM....................................................... 2 1.2 URPMI.....................................................
Plus en détailWORKSHOP OBIEE 11g (version 11.1.1.5) PRE-REQUIS:
WORKSHOP OBIEE 11g (version 11.1.1.5) Durée du workshop: 2 jours Profil des participants du workshop: Profil fonctionnel ou technique Notions de modélisation multidimensionnelle et du décisionnel NB :
Plus en détailLE MICRO ORDINATEUR. Introduction Architecture Les supports amovibles Les composants Le système d exploitation Les portables
LIONEL FRANC Introduction Architecture Les supports amovibles Les composants Le système d exploitation Les portables L'INTRODUCTION Micro ordinateur portable ou fixe Système pluri- technologiques (mécanique,
Plus en détailPlan de cette matinée
Plan de cette matinée Windows 2008 Les différentes versions Migration Rôles et fonctionnalités Présentation des nouveautés Windows 2008 R2 Les apports de cette nouvelle version Windows 7 Les différentes
Plus en détailFOG : Free Open-Source Ghost. Solution libre de clonage et de déploiement de systèmes d'exploitation.
FOG : Free Open-Source Ghost Solution libre de clonage et de déploiement de systèmes d'exploitation. JoSy-Plume 22 novembre 2010 Logiciel développé par Chuck Syperski et Jian Zhang, IT à l'université "DuPage"
Plus en détailLinux embarqué Retour d expérience et temps réel. Denis Coupvent-Desgraviers
Linux embarqué Retour d expérience et temps réel 1 Denis Coupvent-Desgraviers Introduction Bien connaître les bases d un système d exploitation Utilisation de GNU/Linux Bonnes connaissances en langage
Plus en détailRobot WIFIBOT Lab V4. Lab V4. www.wifibot.com
Lab V4 Robot WIFIBOT Lab V4 4 roues motrices avec 4 PID indépendants et motorisation sans balais Architecture modulaire et ouverte Contrôlable en RS232 ou en Wifi PC x86 embarqué avec une image Win7 ou
Plus en détailIntroduction à l informatique en BCPST
Introduction à l informatique en BCPST Alexandre Benoit BCPST L informatique en BCPST «L enseignement de l informatique en classes préparatoires de la filière BCPST a pour objectif d introduire puis de
Plus en détailService de Virtualisation de la DSI UJF
Service de Virtualisation de la DSI UJF Félicitations, vous pouvez désormais utiliser une machine virtuelle sur la plateforme de la DSI! A ce titre vous êtes maintenant responsable de celle ci en ce qui
Plus en détailNRPE. Objectif. Documentation. Procédures
NRPE Objectif NRPE est un addon de Nagios permettant d établir une connexion sécurisée entre deux machines sous Linux. L intérêt est de lancer les commandes de vérifications sur la machine cliente afin
Plus en détailClariLog - Asset View Suite
ClariLog - Asset View Suite Architecture et Prérequis v. 20140601 TABLE DES MATIERES 1 Architecture et principe de mise en place... 3 2 Serveur (stockage)... 4 2.1 Ressource réseau partagée... 4 2.2 Base
Plus en détailHiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique
Architecture d ordinateur : introduction Dimitri Galayko Introduction à l informatique, cours 1 partie 2 Septembre 2014 Association d interrupteurs: fonctions arithmétiques élémentaires Elément «NON» Elément
Plus en détailSur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)
1/ Généralités : Un ordinateur est un ensemble non exhaustif d éléments qui sert à traiter des informations (documents de bureautique, méls, sons, vidéos, programmes ) sous forme numérique. Il est en général
Plus en détailHaka : un langage orienté réseaux et sécurité
Haka : un langage orienté réseaux et sécurité Kevin Denis, Paul Fariello, Pierre Sylvain Desse et Mehdi Talbi kdenis@arkoon.net pfariello@arkoon.net psdesse@arkoon.net mtalbi@arkoon.net Arkoon Network
Plus en détailStockage Réseau. Le stockage s'échappe du système pour devenir une fonction réseau
Stockage Réseau Le stockage s'échappe du système pour devenir une fonction réseau Philippe Latu Université Toulouse III Paul Sabatier www.inetdoc.net Philippe.latu(at)inetdoc.net Introduction Les enjeux
Plus en détailProgrammation C. Apprendre à développer des programmes simples dans le langage C
Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités
Plus en détailTP LINUX : MISE EN PLACE DU SERVEUR DE MESSAGERIE QMAIL
TP LINUX : MISE EN PLACE DU SERVEUR DE MESSAGERIE QMAIL Au cours de ce TP, vous allez installer un serveur de courrier sur un réseau local. Les étapes par lesquelles vous allez passer sont les suivantes
Plus en détailComment configurer Kubuntu
Comment configurer Kubuntu Configuration du réseau... 1 Configurer votre système Linux sur le réseau...1 Vérifier manuellement l adresse IP...5 Connecter un lecteur réseau distant Windows/Mac grâce au
Plus en détailCertificat Informatique et internet Niveau 1 TD D1. Domaine 1 : Travailler dans un environnement numérique évolutif. 1. Généralités : Filière
Certificat Informatique et internet Niveau 1 Filière TD D1 Domaine 1 : Travailler dans un environnement numérique évolutif Nom N étudiant 1. Généralités : 1.1. Un ordinateur utilise des logiciels (aussi
Plus en détailVisualization sur Ubuntu: Quels Choix? Nicolas Barcet <nick.barcet@canonical.com>
Visualization sur Ubuntu: Quels Choix? Nicolas Barcet Ubuntu Server Product Manager 24/03/09 2 Agenda Définitions Outils de Virtualization Serveur Outils de Virtualization Poste
Plus en détailEN Télécom & Réseau S Utiliser VMWARE
EN Télécom & Réseau S Utiliser VMWARE Utiliser les machines virtuelles VMWARE Nom : Prénom : Classe : Date : Appréciation : Note : Objectif : Être capable de créer et configurer une machine virtuelle Configuration
Plus en détailWindows 2000: W2K: Architecture. Introduction. W2K: amélioration du noyau. Gamme windows 2000. W2K pro: configuration.
Windows 2000: Introduction W2K: Architecture Système d'exploitation multitâche multithread 32 bits à architecture SMP. Multiplateforme: intel x86, Compaq Alpha Jusqu'à 64 Go de mémoire vive Système d'exploitation
Plus en détailServeur VoIP sur platine ARM et CANOpen
51, rue Barthélémy de Laffemas 26901 Valence Cedex 9 Z.I. Les Illons, 07250 Le Pouzin Serveur VoIP sur platine ARM et CANOpen ROGER Mathieu Licence Pro. SIL option SIRE Maître de Stage : M. Christophe
Plus en détailUnix/Linux I. 1 ere année DUT. Université marne la vallée
Unix/Linux I 1 ere année DUT Université marne la vallée 1 Introduction 2 Fonctions et spécifité d Unix Architecture 3 4 5 Fichier Unix Arborescence de fichiers Quelques commandes sur les fichiers Chemins
Plus en détailCOLLEGE ADRIEN CERNEAU
COLLEGE ADRIEN CERNEAU MARCHE A PROCEDURE ADAPTÉE (MAPA) DE FOURNITURES D EQUIPEMENTS INFORMATIQUES CAHIER DES CHARGES (CLAUSES ADMINISTRATIVES ET TECHNIQUES) Lot 1 : Tablettes tactiles Android Lot 2 :
Plus en détailExigences système Edition & Imprimeries de labeur
Exigences système Edition & Imprimeries de labeur OneVision Software France Sommaire Asura 9.5, Asura Pro 9.5, Garda 5.0...2 PlugBALANCEin 6.5, PlugCROPin 6.5, PlugFITin 6.5, PlugRECOMPOSEin 6.5, PlugSPOTin
Plus en détailTutoriel Création d une source Cydia et compilation des packages sous Linux
Tutoriel Création d une source Cydia et compilation des packages sous Linux 1. Pré-requis 1. Quelques connaissances sous Linux 2. Avoir à disposition un Serveur FTP pour héberger votre source 3. Un thème
Plus en détailRobot WIFIBOT Lab V3. 4 roues motrices
4 roues motrices Lab V3 Robot WIFIBOT Lab V3 Architecture modulaire et ouverte Contrôlable en RS232 ou en Wifi PC x86 embarqué avec une image Xpe ou Linux Ubuntu Le Wifibot Lab est une plate forme robotique
Plus en détailProcédure pas à pas de découverte de l offre. Service Cloud Cloudwatt
Procédure pas à pas de découverte de l offre Service Cloud Cloudwatt Manuel Utilisateur 03/07/2014 Cloudwatt - Reproduction et communication sont interdites sans autorisation 1/45 Contenu 1. Introduction...
Plus en détailLeçon 1 : Les principaux composants d un ordinateur
Chapitre 2 Architecture d un ordinateur Leçon 1 : Les principaux composants d un ordinateur Les objectifs : o Identifier les principaux composants d un micro-ordinateur. o Connaître les caractéristiques
Plus en détailExigences système Edition & Imprimeries de labeur
Exigences système Edition & Imprimeries de labeur OneVision Software France Sommaire Asura 10.2, Asura Pro 10.2, Garda 10.2...2 PlugBALANCEin10.2, PlugCROPin 10.2, PlugFITin 10.2, PlugRECOMPOSEin 10.2,
Plus en détailVMware ESX/ESXi. 1. Les composants d ESX. VMware ESX4 est le cœur de l infrastructure vsphere 4.
VMware ESX/ESXi 1. Les composants d ESX VMware ESX4 est le cœur de l infrastructure vsphere 4. C est un hyperviseur, c est à dire une couche de virtualisation qui permet de faire tourner plusieurs systèmes
Plus en détailStockage des machines virtuelles d un système ESXi jose.tavares@hesge.ch & gerald.litzistorf@hesge.ch
Titre Stockage des machines virtuelles d un système ESXi Auteurs jose.tavares@hesge.ch & gerald.litzistorf@hesge.ch Classification Document publique Date dernière modification 12 Mai 2009 Chemin\NomFichier
Plus en détailConfigurez votre Neufbox Evolution
Configurez votre Neufbox Evolution Les box ne se contentent pas de fournir un accès au Web. Elles font aussi office de routeur, de chef d'orchestre de votre réseau local, qu'il faut savoir maîtriser. Suivez
Plus en détailNetfilter & Iptables. Théorie Firewall. Autoriser le trafic entrant d'une connexion déjà établie. Permettre le trafic entrant sur un port spécifique
Page 1 sur 5 Article original traduit par Kmeleon, refonte de eks. Provenant de ubuntu-fr.org Netfilter & Iptables Netfilter est un module du noyau Linux (depuis la version 2.4) qui offre la possibilité
Plus en détailComment travailler avec les logiciels Open Source
Conférence / Débat C. Charreyre Comment travailler avec les logiciels Open Source Conférence / Débat - RTS 2008-3 Avril 2008 1 Licence Paternité-Pas d'utilisation Commerciale-Partage des Conditions Initiales
Plus en détailManuel de l utilitaire Computer Setup (F10) HP Compaq Business Desktops Modèles d220 et d230
Manuel de l utilitaire Computer Setup (F10) HP Compaq Business Desktops Modèles d220 et d230 Référence : 331599-051 Juin 2003 Ce manuel contient le mode d emploi de l utilitaire de configuration Computer
Plus en détailTP1 - Prise en main de l environnement Unix.
Mise à niveau UNIX Licence Bio-informatique TP1 - Prise en main de l environnement Unix. Les sujets de TP sont disponibles à l adresse http://www.pps.jussieu.fr/~tasson/enseignement/bioinfo/ Les documents
Plus en détailTour d'horizon Bureau client Daemon's Aller plus loin
Logiciels Libres? Distribution Spécificités Arborescence Joseph Maillardet Assistant Ingénieur de Recherche et Formation *** IUT de Nîmes Université de Montpellier II Logiciels Libres? Distribution Spécificités
Plus en détailVMWare. Vmware: machine virtuelle Un véritable pc avec : VmWare
1 Présentation de VmWare workstation 4 et 5 Auteur: P. Petit Date: 01/2004 Mise à jour : 11/09/2006 Version: 1.3 Licence: Ce document est sous licence GFDL (cf notes) VMWare Permet de simuler un ou plusieurs
Plus en détailCours 13. RAID et SAN. 2004, Marc-André Léger
Cours 13 RAID et SAN Plan Mise en contexte Storage Area Networks Architecture Fibre Channel Network Attached Storage Exemple d un serveur NAS EMC2 Celerra Conclusion Démonstration Questions - Réponses
Plus en détailAtelier : Virtualisation avec Xen
Virtualisation et Cloud Computing Atelier : Virtualisation avec Xen Plan Présentation de Xen Architecture de Xen Le réseau Gestion des domaines DomU dans Xen Installation de Xen Virt. & Cloud 12/13 2 Xen
Plus en détailLiveUSB clefisn. Meilland jean claude et Kbida Abdellatif. 16 septembre 2012
LiveUSB clefisn Meilland jean claude et Kbida Abdellatif 16 septembre 2012 Table des matières 1 Présentation de la clefisn 2 1.1 liveusb......................................... 2 1.2 Le boot.........................................
Plus en détailCONVERTISSEUR RS 232/485 NOTICE
CONVERTISSEUR RS 232/485 068745 068745 NOTICE Ce convertisseur TCP/IP permet de convertir tous équipements à liaison série et de les superviser sur un réseau LAN. Sommaire 1 Description du produit...2
Plus en détailSans 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 :
Windows Server 2008 Les fondations du système... 15 La virtualisation... 16 La sécurité... 18 Le Web... 20 Fonctionnalité disponible dans... 21 Installation et configuration... 22 Installer... 23 Les services
Plus en détailChapitre 3 : Système de gestion de fichiers
: 3.1- Introduction Le système de gestion de fichiers (SGF) est la partie la plus visible d un système d exploitation qui se charge de gérer le stockage et la manipulation de fichiers (sur une unité de
Plus en détailDocumentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :
Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante : http://www.hegerys.com/documentation/magicsafe-windows-doc.pdf
Plus en détailProtocoles DHCP et DNS
Protocoles DHCP et DNS DHCP (Dynamic Host Configuration Protocol) est un protocole qui permet à un serveur DHCP (Unix, Windows, AS400...) d'affecter des adresses IP temporaires (et d'autres paramètres)
Plus en détailMigration NT4 vers Windows 2003 Server
Migration NT4 vers Windows 2003 Server Networking Intelligence Agency 07 janvier 2007-1 - 1. INTRODUCTION...- 3-2. DEFINITION...- 4-2.1. ANALYSE DE L EXISTANT... - 4-2.2. OBJECTIFS DE LA MIGRATION... -
Plus en détailPartie 7 : Gestion de la mémoire
INF3600+INF2610 Automne 2006 Partie 7 : Gestion de la mémoire Exercice 1 : Considérez un système disposant de 16 MO de mémoire physique réservée aux processus utilisateur. La mémoire est composée de cases
Plus en détailDE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51
DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de
Plus en détailGestion de clusters de calcul avec Rocks
Gestion de clusters de calcul avec Laboratoire de Chimie et Physique Quantiques / IRSAMC, Toulouse scemama@irsamc.ups-tlse.fr 26 Avril 2012 Gestion de clusters de calcul avec Outline Contexte 1 Contexte
Plus en détailProcédure d installation d AMESim 4.3.0
Procédure d installation d AMESim 4.3.0 B2i Automotive Yahia BOUZID 18/07/2006 SOMMAIRE SOMMAIRE... 2 LISTE DES FIGURES... 3 HISTORIQUE DES MODIFICATIONS... 4 1. INTRODUCTION... 5 1.1. OBJET DU DOCUMENT...
Plus en détail