RTS12. Linux embarqué : construire son OS. Tanguy Risset. prénom.nom@insa-lyon.fr Labo CITI, INSA de Lyon, Dpt Télécom. jan. 2011



Documents pareils
Systèmes Embarqués Libres

Naissance d'un REPTAR

Linux embarqué: une alternative à Windows CE?

Systèmes embarqués D.Rossier

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

ST50 Projet de fin d études Noyau Linux et multi-processeur pour une plateforme embarquée

Session 8: Android File System

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

Compilation croisée sous Linux et Windows

Développement sur Gumstix

Guide d installation JMap 5.0

Catalogue des stages Ercom 2013

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

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

[DEVELOPPEMENT SUR LA CIBLE 2440] 19 avril 2010

Systèmes d exploitation

Créer. Deuxième partie II. Ajouts d utilisateurs. Formation à Linux Embarqué. Résolution DNS. mot de passe

Traitement de données

Formation à Linux Embarqué. Jérôme Pouiller

Manuel de System Monitor

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Prototypage électronique

Installation et compilation de gnurbs sous Windows

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

Solutions de Virtualisation du poste de travail. ViewSonic vous présente le poste de travail virtuel du futur

Mode d emploi pour lire des livres numériques

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

Leçon 1 : Les principaux composants d un ordinateur

Machine virtuelle W4M- Galaxy : Guide d'installation

Série Pro Toshiba Business Vision

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

Exigences système Edition & Imprimeries de labeur

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

Robot WIFIBOT Lab V4. Lab V4.

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

Chapitre 2 : Abstraction et Virtualisation

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

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Concept de machine virtuelle

Windows 10 Technical Preview

ndv access point : Installation par clé USB

JOSY VIRTUALISATION 9 ET 10 JUIN 2011 POSTE DE TRAVAIL ET VIRTUALISATION. Sébastien Geiger IPHC

Serveur VoIP sur platine ARM et CANOpen

Gestion de clusters de calcul avec Rocks

Développement d une carte à processeur linux

Exigences système Edition & Imprimeries de labeur

WinReporter Guide de démarrage rapide. Version 4

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

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

phidget_v1.odt - Système embarqué sous Linux - rev.139 PHIDGET SBC (SINGLE BOARD COMPUTER)

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

Introduction à l informatique en BCPST

PDF created with pdffactory Pro trial version

Guide de démarrage ebox-3300-msjk Windows Embedded CE 6.0 R2

Quel terminal et quel logiciel choisir pour votre solution de mobilité?

Comment travailler avec les logiciels Open Source

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

-1 - Postes de travail graphiques

Openmoko, free your phone!

Projet De Stijl Plate-forme pour robots mobiles

Parallels Transporter Lisez-moi

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

Premiers pas sur l ordinateur Support d initiation

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

COLLEGE ADRIEN CERNEAU

Clé Flash USB2.0 Acer

Spécifications détaillées

Panasonic Toughbook présente ses derniers modèles au salon Equip Auto du 13 au 18 octobre au Parc des Expositions Paris Nord

Installation de Premium-RH

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

Installation software

Travailler à l'ensimag avec son matériel personnel

Virtualisation CITRIX, MICROSOFT, VMWARE OLIVIER D.

Options indispensables, fortement conseillées pour démarrer sans soucis

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

Projet de fin d études Technology & Strategy Engineering

DESCRIPTIF DES PROJETS 3EME ANNEE QUI SERONT PRESENTES LORS DE LA JOURNEE DE PROJET DE FIN D ETUDE LE 26/01/2012

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

Initiation à l informatique. Module 1 : Le Matériel

Tropimed Guide d'installation

Comment installer la configuration des salles sur son ordinateur personnel?

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

Les tablettes. Présentation tablettes Descriptif Fournisseurs Caractéristiques Comparatifs Conseils Perspectives Démonstration

Plan de cette matinée

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

Conférence sur les microcontroleurs.

L intelligence intégrée et connectée au cœur de vos projets. Dossier de presse

Auteur LARDOUX Guillaume Contact Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

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

Virtual Box Mettez un PC dans votre... PC

Une solution complète pour télésurveiller et télégérer vos installations photovoltaïques

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

Installation et prise en main

Environnement Informatique EMSE Linux

Démarrage à partir du réseau

Retrouver de vieux programmes et jouer sur VirtualBox

ÉCOLE POLYTECHNIQUE DE MONTRÉAL. Département de Génie Électrique. La technologie de TEXAS INSTRUMENTS DSP pour le cours Analyse des Signaux ELE2700

Chi rement des postes PC / MAC / LINUX

Transcription:

RTS12 : Linux embarqué : 1 RTS12 Linux embarqué : construire son OS Tanguy Risset prénom.nom@insa-lyon.fr Labo CITI, INSA de Lyon, Dpt Télécom jan. 2011

RTS12 : Linux embarqué : Introduction 2 Historique Linux embarqué Nombreuses versions de Linux embarqué pour différents types de matériel (Téléphones portable, PDA, set-top boxes,...). Les caractéristiques de ces systèmes : peu de RAM mémoire Flash (pas de disque dur) De nombreux périphériques spécifiques Noyau Linux léger, souvent temps réel Quelques solutions Linux embarqué : Distribution Linux Familiar (PDA) Open Moko (smart phones) Busy Box (commandes essentielles Unix en un seul fichier) Open Zaurus (PDA Sharp)...

RTS12 : Linux embarqué : Introduction 3 Construire un Linux embarqué Devant le nombre croissant de plate-formes apparaissant, les développeurs ont mis en commun leurs efforts pour développer des plate-formes de construction de linux embarqué. CrossTools OpenEmbedded Construire un noyau simple pour l architecture cible Sélectionner seulement les paquets nécessaires Mettre en place le système de boot Construire un environnement de compilation croisée

Architecture globale RTS12 : Linux embarqué : Introduction 4

RTS12 : Linux embarqué : Introduction 5 Matériel embarqué Le matériel embarqué est différent du matériel classique : Diverses architectures de processeur : ARM, MIPS, PowerPC... et x86 aussi Stockage en mémoire Flash (de type NAND ou NOR), limitée en capacité (quelques MB à quelque centaine de MB) RAM à capacité limitée (Quelques MB à quelques dizaines de MB) Différents bus spécifiques : I2C, SPI, CAN... Existence de cartes de développement avec des facilités de téléchargement du code et de debug.

RTS12 : Linux embarqué : Introduction 6 Exemple Beaglboard Arm Cortex A8 1 GHz DaVinci digital media processor (DM3730, ARM+DSP) Puce graphique 3D 512 MB of DDR SDRAM 4GB SD-Card I 2 C, SPI, DVI-D, S-Video, 4 port USB Hub, Stereo In/Out, Ethernet 10/100... Open Moko ARM 920T 400 MHz, Samsung 2442B 2 MB of NOR flash 128 MB of RAM 256 MB of NAND flash 640x480 touchscreen, Bluetooth, GSM, serial, GPS, sound, 2 buttons, Wifi, USB, etc.

RTS12 : Linux embarqué : Introduction 7 Configuration minimale pour Linux embarqué Un CPU supporté par GCC et le noyau linux CPU 32 bits Les CPU sans MMU sont aussi supportés à travers le projet ucinux Au moins 4 à 8 MB de RAM Au moins 2 à 4 MB de stockage mémoire Linux n est pas adapté aux systèmes basés sur les petits micro-controleurs comme l EZ430 (quelque centaines de kb de Flash et RAM), pour ces systèmes là : Pas d OS OS dédié (Contiki, FreeRTOS...)

RTS12 : Linux embarqué : Introduction 8 Composants logiciels Une chaîne de compilation croisée Compilateur qui tourne sur la machine de développement mais qui génère du code pour la plate-forme embarquée. Bootloader Démarré par le matériel directement, responsable des initialisations de base, du chargement et de l exécution du noyau Noyau Linux Responsable de la gestion des différents services pour les applications (processus, mémoire virtuelle, pile réseau, pilote de périphérique,...) Librairie C Interface entre le noyau linux et les applications de l espace utilisateur Librairies et application Votre programme...

RTS12 : Linux embarqué : Introduction 9 Système de fichier Root Dans un système Linux, plusieurs systèmes de fichiers peuvent être montés et créer un hiérarchie globale de fichiers et répertoires Un système de fichier particulier, le système de fichier root est monté en /. Sur les Linux embarqués, le système de fichier root contient toutes les librairies, applications, et données du système. Construire ce système de fichier est l une des tâche essentielle de l intégration de Linux sur la plate-forme embarquée. En général le noyau est séparé du système de fichier root

Chaîne de compilation croisée La chaîne de compilation classique est une chaîne de compilation native Pour les systèmes embarqués, on utilise une chaîne de compilation croisée (cross-compiling toolchain). Elle est généralement composée de Binutils : as, ld, objdump, nm, strip,... En-têtes du noyau (kernel header) Compilateur GCC peut cibler différents CPU : ARM, AVR, Blackfin, CRIS, FRV, M32, MIPS, MN10300, PowerPC, SH, v850, i386, x86_64, IA64, Xtensa, etc Bibliothèque C/C++ Composant essentiel, permet l interaction entre les programmes et le noyau De nombreuses déclinaisons :glibc, uclibc, eglibc, dietlibc, newlib La libc est choisie en même temps que la chaîne de compilation croisée, gcc étant compilé avec. Débugger GDB RTS12 : Linux embarqué : Chaînes de compilation croisées 10

RTS12 : Linux embarqué : Chaînes de compilation croisées 11 Librairie C glibc GNU Lib C 2.5MB pour ARM eglibc embedded glibc uclibc, librairie très légère Dietlibc ( 70KB) Newlib Exemples de tailles de programmes :

RTS12 : Linux embarqué : Chaînes de compilation croisées 12 Construire une chaîne de compilation Bien distinguer La machine sur laquelle est construite la chaîne de compilation (build machine) La machine sur laquelle la chaîne de compilation va être exécutée (host machine) La machine sur laquelle les binaires générés par la chaîne de compilation vont être exécutés (target machine). En général, host et build machines sont les mêmes. Choisir la libc Choisir les versions des différents composants Configurer la chaîne : format binaire, ABI (Application Binary Interface) calcul flottant? Locale, IPV6, etc...

RTS12 : Linux embarqué : Chaînes de compilation croisées 13 Étapes de construction Une fois tous les choix effectués (ou.. pour toutes les configurations choisies) : Extraire et installer les en-têtes du noyau Extraire, configurer et installer les binutils Extraire, configurer et installer une première version de gcc qui va générer les binaires pour la cible. Extraire, configurer et compiler la libc en utilisant le compilateur construit à l étape précédente Configurer et compiler le cross-compilateur gcc

RTS12 : Linux embarqué : Chaînes de compilation croisées 14 Construire une chaîne de compilation croisée On peut le faire soi-même... en théorie... On peut utiliser une chaîne de compilation pré-compilée CodeSourcery, http://www.codesourcery.com http://elinux.org/toolchains Mais, aucune prise sur la configuration (paquets installés, target machine...) Ou on peut utiliser des outils de génération de chaînes de compilation CrossTools, Le précurseur (Dan Kegel), plus maintenu http://www.kegel.com/crosstool Crosstool-ng, http: //ymorin.isageek.org/dokuwiki/projects/crosstool buildroot, http://buildroot.uclibc.org PTXdist, http://www.pengutronix.de/software/ptxdist OpenEmbedded, le plus complet http://www.openembedded.org/

RTS12 : Linux embarqué : La sequénce de boot 15 Le bootloader Sur les architectures embarquées, le boot de bas niveau est très dépendant du CPU et de la plate-forme. Certaines cartes ont une Flash à partir de laquelle le CPU boote après un reset Certains CPU ont un morceau de code intégré dans une ROM qui charge automatiquement une petite portion de Flash dans la RAM Il existe de nombreux bootloader open-source génériques, parmis eux : U-Boot, Universal boot, standard de facto, maintenu par Denx http://www.denx.de/wiki/uboot Barebox, successeur d U-boot, mais ne supporte pas encore autant de matériels

RTS12 : Linux embarqué : La sequénce de boot 16 U-boot U-boot doit être installé dans la mémoire Flash pour être exécuté par le matériel : La carte propose un moniteur de boot qui permet de flasher le bootloader de second niveau (c est le cas sur la beagleboard) U-boot est déjà installé et peut être utilisé pour se re-flasher (attention, peut rendre la carte inutilisable!) La carte propose une interface JTAG qui permet d écrire dans la Flash sans aucun system tournant sur la carte. Une fois installé, U-boot propose, par l intermédiaire du port série, un certain nombre de commandes. U-boot est alors utilisé pour charger et booter sur une image noyau (uimage ou U-boot image), mais il peut aussi changer l image noyau ou le système de fichier root présent sur le système. La communication avec l hôte se fait par Ethernet (tftp) ou le port série

RTS12 : Linux embarqué : La sequénce de boot 17 Linux : Séquence de boot traditionnelle 1. Bootloader Exécute par le CPU à une adresse fixe en ROM/Flash Initialize le support du matériel ou se trouve le noyau (Flash, réseau, SD-card...) Charge l image du noyau dans la RAM Lance l exécution du noyau 2. Noyau Se décompresse lui-même Initialise le noyau et les pilotes compilés statiquement utilisés pour accéder le système de fichier root monte le système de fichier root exécute le premier programme utilisateur (spécifié par le parametre init du noyau). 3. Premier programme utilisateur Configure l espace utilisateur et démarre les services systèmes

RTS12 : Linux embarqué : La sequénce de boot 18 Mais... Cette séquence implique que tous les pilotes de périphériques sont compilés statiquement dans le noyau. Cette hypothèse est valide dans le monde embarqué ou le noyau est paramétré en fonction du matériel, elle l est beaucoup moins pour les PC de bureau. Le système de boot actuel contient donc le mécanisme initramfs (ex-initrd) Un petit système de fichier contenu dans le noyau lui-même Il peut détecter le matériel, charger les modules du noyau nécessaires Il monte alors le système de fichier root et exécute l init

RTS12 : Linux embarqué : La sequénce de boot 19 Connaissance pour Linux embarqué La mise ne place d un linux embarqué nécessite de connaître un peu le mécanisme de boot, notamment pour parametrer correctement la commande de lancement du noyau. Il faut aussi connaître l administration linux (gestion de paquets, installation driver, etc.) Enfin suivant le type de stockage physique disponible, le système de fichier peut être spécifique Pour énormément de plates-formes existantes, les configurations requises sont disponibles dans les outils de construction de chaîne de compilation comme OpenEmbedded

RTS12 : Linux embarqué : OpenEmbedded 20 OpenEmbedded Initié par les développement mis en commun de la distribution OpenZaurus pour les PDA Sharp Zaurus et de la distribution Familiar pour PDAs. Rejoint ensuite par de nombreuses distributions : OpenSimpad, GPE Phone Edition, Ångström, OpenMoko... Basé sur bitbake : un énorme Makefile mondial OpenEmbedded contient actuellement (2011) 2097 packages dans recipes/ 7294 versions de packages dans recipes/<tool>/*.bb 305 machines définies dans conf/machine 34 distributions définies dans conf/distro

RTS12 : Linux embarqué : OpenEmbedded 21 BitBake BitBake est le composant permettant à OpenEmbedded d exister Implémenté en python à partir de l outils de gestion des la distribution Gentoo (emerge) BitBake peut : Télecharger les sources sur internet (.tgz, svn, git,...) Appliquer les patches Construire les composants Construire le compilateur et le cross-compilateur Configurer, compiler la libc Créer le système de fichier root, Créer et installer les packages additionel necessaires (système de gestion de paquets ipkg)

BitBake RTS12 : Linux embarqué : OpenEmbedded 22

RTS12 : Linux embarqué : OpenEmbedded 23 Utilisation d OpenEmbedded : beaglboard Procédure suivie pour la mise en place de ce cours Distribution Angstrom : http://www.angstrom-distribution.org/ git clone git://gitorious.org/angstrom/angstrom-setup-scripts.git (installe bitbake et openembedded, tout est fait dans le repertoire angstrom-setup-scripts.) export MACHINE=beagleboard bitbake console-image... Quelques heures et 5 Gigas plus tard...

RTS12 : Linux embarqué : OpenEmbedded 24 Déploiement d Angstrom avec OpenEmbedded dans le repertoire angstrom-setup-scripts/build/tmp-angstrom_2008_1/ deploy/glibc/images/beagleboard fichiers u-boot, uimage Système de fichier root Angstrom-console-image-glibc-ipk-2010. 7-test-20110111-beagleboard.rootfs.tar.bz2 Modules modules-beagleboard.tgz Une fois tout cela installé sur la carte SD...

beaglboard booting Angstrom Texas Instruments X-Loader 1.4.4ss (Jul 28 2010-16:59:13) Beagle xm Rev A Reading boot sector Loading u-boot.bin from mmc U-Boot 2010.03 (Aug 06 2010-11:28:56) [...] reading boot.scr ** Unable to read "boot.scr" from mmc 1:1 ** reading uimage [...] Loading Kernel Image... OK OK Starting kernel... Uncompressing Linux... [ 0.000000] Linux version 2.6.32 (koen@dominion) (gcc version 4.3.3 (GCC) ) 0 [...] Starting GPE display manager: gpe-dm.-------..-. -----.-----.-----..----..-----.-----. ---' '--..-' --- --' ' '---'---'--'--'--. -----''----''--' '-----'-'-'-' -' '---' The Angstrom Distribution beagleboard ttys2 Angstrom 2009.X-test-20100104 beagleboard ttys2 beagleboard login: root root@beagleboard:~# RTS12 : Linux embarqué : OpenEmbedded 25

RTS12 : Linux embarqué : OpenEmbedded 26 Références Certains slides et illustrations proviennent de Free Electrons : http://free-electrons.com/ Présentations BeagleBoad : http://beagleboard.org/esc