Mise à jour : 12-Fév-2009

uClinux.logo.gif (5085 octets)

BIENVENUE DANS L'UNIVERS DE
LINUX EMBARQUE
bar_blue.gif (315 octets)

| Présentation et documents | Livres | Portails et magazines | Linux embarqué commercial | Montavista | LinuxWorks/BlueCat | RedHat/embedded | Linux embarqué libre | LRP | ELKS | Tom's Boot Root | Small Linux | PeeWee Linux | µClinux | Temps Réel | RTLinux | RTAI | eCos | TimeSys | Outils | Liens |

| µClinux/68K | µClinux/ColdFire | µClinux/NIOS | µClinux/NIOS II | µClinux/Microblaze | µClinux/Samsung | µClinux/H8S | µClinux/V850 | µClinux/Blackfin |

| Porter Linux | Linux/x86 | Linux/68K | Linux/PPC | Linux/sans MMU | Linux/StrongARM/XScale | Linux/Alpha | Linux/SuperH | Linux/IA-64 | Linux/MIPS | Linux/SPARC | Hardware |

bar_blue.gif (315 octets)

Cette page contient des informations spécifiques à Linux embarqué et au problème du portage de Linux sur une carte électronique. C'est le complément de la page générale consacrée aux systèmes embarqués.

Le panorama et les tendances du marché Linux embarqué. Une enquête de linuxdevices.com. L'enquête complète ici.

PRESENTATION ET DOCUMENTS

Vous trouverez ici un certain nombre d'informations sur ce sujet :

bar_blue.gif (315 octets)

LIVRES

Voici une liste de livres traitant des systèmes embarqués et des systèmes Temps Réel. La plupart sont en anglais.

TOP 5:

  1. Linux embarqué. P. Ficheux
  2. Embedded Linux System Design and Development. P. Raghavan, A. Lad, S. Neelakandan
  3. Building Embedded Linux Systems. K. Yaghmour
  4. Embedded Linux. J. Lombardo
  5. Embedded Linux. C. Hollabaugh

Codification :

 

bar_blue.gif (315 octets)

PORTAILS ET MAGAZINES

On pourra consulter les portails sur les systèmes (Temps Réels) et linux embarqués suivants :

 

On pourra consulter et/ou s'abonner en ligne aux magazines suivants :

bar_blue.gif (315 octets)

LINUX EMBARQUE COMMERCIAL

Des éditeurs de logiciels proposent des solutions professionnelles clé en main pour construire un Linux embarqué sur différentes cibles :

g_green_anim.gif (878 octets) Montavista

Montavista propose différentes solutions Linux embarqué en fonction d'un profil métier et des besoin (Java/Linux, GUI pour l'embarqué...) :

Montavista avec sa version professionnelle propose des solutions Linux embarqué (ses kits) pour processeurs :

g_green_anim.gif (878 octets) LinuxWorks

LinuxWorks propose sa distribution Linux embarqué BlueCat pour processeurs :

On peut télécharger BlueCat pour évaluation pour une cible x86

 

g_green_anim.gif (878 octets) RedHat

RedHat propose une distribution Linux embarqué :

bar_blue.gif (315 octets)

LINUX EMBARQUE LIBRE

On trouvera ici des projets Linux embarqué (et en particulier les versions minimales de Linux) tournant généralement sur une disquette avec un processeur Intel. Chaque projet présente ses avantages : orienté réseau, tournant sur processeur Intel 80286 et inférieur...On pourra trouver une comparaison de ces solutions ici en complément des solutions proposées ci-dessous que j'ai pu entièrement testées. Une liste à jour est disponible sur le site linuxembedded.com et en particulier celle concernant les versions minimales de Linux...

g_green_anim.gif (878 octets) Le projet LRP

Le projet LRP (Linux Router Project) consiste en une version Linux minimale tenant sur une disquette 3'1/2 pour créer une machine (un PC par exemple) routeur IP. La disquette contient toutes les commandes d'administration Linux et en particulier celles d'administration réseau (arp, ifconfig, netstat, route...). La commande spécifique lrcfg permet de configurer l'interface réseau, sauvegarder les partitions /root, /etc sous forme de packages... L'interface réseau est pilotée par le module Linux correspondant qui est chargé au boot. LRP est un très bon produit pour recycler des vieux PC. Il tourne sur processeur Intel 386 et supérieur. LRP n'a pas besoin de disque dur.

Les liens intéressants sur LRP sont :

g_green_anim.gif (878 octets) Le projet Tom's Boot Root

Le projet Tom's Boot Root consiste en une version Linux minimale tenant sur une disquette 3'1/2 avec toutes les commandes d'administration Linux et de montage de partition. L'interface réseau est automatiquement détectée par le chargement du module Linux correspondant (supporte toutes les cartes 3Com). Le projet Tom's Boot Root est un très bon produit pour se constituer une disquette de secours en cas de crash que l'on nomme autrement de façon plus vulgaire (disquette b... et c... :-) ). Il tourne sur processeur Intel 386 et supérieur et n'a pas besoin de disque dur.

Les liens intéressants sur TBR sont :

g_green_anim.gif (878 octets) Le projet ELKS

Le projet ELKS (Embeddable Linux Kernel Subset) consiste en une version Linux minimale tenant sur une (une disquette de boot et partition /root sur disque dur) ou deux disquettes 3'1/2 (une disquette de boot et une disquette /root). Son intérêt principal est d'utiliser les vieux PC 80286 et inférieurs. ELKS a besoin d'un PC "honnête" pour le crossdéveloppement (génération des disquettes). ELKS étant en version 0.x.x, les outils de développement embarqués sur le PC ELKS sont inexistants. On ne peut donc utiliser que les exécutables générés sur le PC de crossdéveloppement que l'on peut quand même tester sur ce dernier en générant un objet qui va bien. ELKS n'a pas encore intégré les couches réseaux ni l'accès aux ports d'E/S. Le principal intérêt est le challenge d'installer Linux sur un 80286 et inférieur (j'ai pu tester ELKS sur un Amstrad 286). On peut quand même développer une application ELKS et la faire tourner sur le PC qui devient autonome (je pensais réutiliser un vieux 8086 pour piloter mon arrosage...:-) ).

Les liens intéressants sur ELKS sont :

g_green_anim.gif (878 octets) Le projet Small Linux

Le projet Small Linux consiste en une version Linux minimale tenant sur deux disquettes 3'1/2 (une disquette de boot et une disquette /root). Small Linux tourne sur processeur Intel 80386 et supérieur et n'a pas besoin de disque dur. 2 Mo de RAM sont nécessaires. Un disque dur externe peut aussi être utilisé. L'accès aux couches réseaux se fait par liaison série par les protocoles SLIP ou PPP ce qui n'est pas forcément l'idéal... Small Linux supporte un client X11, Tiny X (moins de 4 Mo de RAM).

Les liens intéressants sur Small Linux sont :

g_green_anim.gif (878 octets)Le projet PeeWeeLinux

Le projet PeeWeeLinux permet très facilement à l'aide d'un outil graphique sous curses de construire un Linux From Scratch pour machine avec processeur x86 :

g_green_anim.gif (878 octets) Le projet µClinux

Le projet µClinux (Embedded Linux Microcontroller Project) est le plus intéressant des projets Linux embarqué car très ouvert. C'est une version Linux minimale où l'on a supprimé la partie MMU génant pour un système embarqué et encore plus s'il est Temps Réel. µClinux est activement porté sur différents microcontrôleurs : 68EZ328, ColdFire, ARM...Le premier portage a été fait pour le microcontrôleur 68EZ328 (DragonBall) et un prototype commercial est disponible sous forme d'une barette SIMM : projet µCsimm. Le format choisi n'est pas vraiment fait pour un environnement industriel. Une reprise du projet par l'ENSEIRB est prévue pour réaliser un format de carte industrielle avec inclusion de l'interface Ethernet 10BaseT. Un intérêt évident de µClinux est l'intégration des protocoles Internet ce qui lui assure ainsi la fameuse connectivité Internet (voir le document de l'ENSEIRB sur le sujet).

Les liens intéressants sur µClinux sont :

g_green_anim.gif (878 octets) Le projet µClinux sur 68K

g_green_anim.gif (878 octets) Le projet µClinux sur ColdFire

Vous trouverez ci-dessous tout ce qu'il faut pour développer µClinux sur processeur ColdFire :

g_green_anim.gif (878 octets) Le projet µClinux sur processeur soft Altera NIOS et NIOS II

Le SoC (System on Chip) prend une part de plus en plus importante dans la conception de circuits numériques complexes. Altera propose un IP processeur soft NIOS au travers de son outil Quartus II ainsi que le processeur ARM. Il ne manquait plus qu'un portage de Linux pour avoir une véritable solution de CoDesign. La société Microtronix a réalisé le portage µClinux pour NIOS. Vous trouverez ci-dessous tout ce qu'il faut pour développer µClinux sur processeur NIOS (puis ARM) :

Une deuxième version de softcore NIOS appelée NIOS II a été développée par ALTERA. Le portage de µClinux pour noyau 2.6 existe sous licence GPL avec des restrictions d'utilisation : le fichier de programmation du circuit FPGA n'est utilisable que 20 jours et l'on n'a pas de projet Quartus II correspondant. A télécharger sur le portail niosforum.com sponsorisé par Microtronix et Altera.

  • Le portage µClinux pour NIOS II (s'inscrire avant)
  • Un Wiki sur la mise en oeuvre de NIOS II/µClinux sous Linux
  • Utiliser NIOS II/µClinux sous Linux et non sous Windows par la société Barco

 

g_green_anim.gif (878 octets) Le projet µClinux sur processeur soft Xilinx Microblaze

Le SoC (System on Chip) prend une part de plus en plus importante dans la conception de circuits numériques complexes. Xilinx propose un IP processeur soft Microbaze. Vous trouverez ci-dessous tout ce qu'il faut pour développer µClinux sur processeur Microblaze :

g_green_anim.gif (878 octets) Le projet µClinux sur processeur Samsung 4510

g_green_anim.gif (878 octets) Le projet µClinux sur processeur Hitachi H8S

g_green_anim.gif (878 octets) Le projet µClinux sur processeur NEC V850

g_green_anim.gif (878 octets) Le projet µClinux sur processeur Blackfin Analog Devices

bar_blue.gif (315 octets)

SYSTEMES TEMPS REEL
g_green_anim.gif (878 octets) Le noyau RTLinux

 

Un noyau Temps Réel considérant Linux comme tâche de plus faible priorité. Une solution GPL valable et digne d'intéret. Voici une liste de références sur le sujet :

g_green_anim.gif (878 octets) Le noyau RTAI

 

RTAI (Real Time Application Interface) noyau Temps Réel dérivé de RTLinux où l'on a étoffé l'API (sémaphores...). RTAI est incompatible au niveau de l'API avec RTLinux V3 car dérivé de RLinux V1. Voici une liste de références sur le sujet :

g_green_anim.gif (878 octets) Le noyau TimeSys

TimeSys propose 2 produits Linux Temps Réel :

Les 2 produits sont basés sur un noyau Linux modifié pour les contraintes Temps Réel :application d’un patch propriétaire de type kpreempt (Montavista) pour rendre le noyau préemptif : temps réel mou

g_green_anim.gif (878 octets) Le noyau eCOS

eCOS est un noyau Temps Réel développé par RedHat pour processeurs ARM, Hitachi H8300, Intel x86, MIPS, Matsushita AM3x, Motorola 68k, PowerPC, SuperH, SPARC et NEC V8xx. C'est un projet open source. Voici une liste de références sur le sujet :

bar_blue.gif (315 octets)

PORTER LINUX

Quand on développe sa propre carte électronique SBC (Single Board Computer), on peut se demander s'il est possible de porter Linux dessus. Si sa carte est assez similaire à une carte déjà existante sur laquelle Linux a été portée, il y a de grandes chances que cela soit possible. Le portage est relativement simple et automatisé si l'on a choisi un processeur de la famille x86 avec des outils comme PeeWeeLinux et LFS. Les liens suivants expliquent comment réaliser un portage Linux, comment booter Linux... :

g_green_anim.gif (878 octets) Portage Linux cible x86

L'intérêt d'utiliser comme cible un processeur x86 est de bénéficier d'un environnement de développement natif (pas d'environnement croisé à installer sur son PC hôte de développement). On pourra utiliser comme cible un PC industriel ou des cartes SBC aux normes PC/104, PC/104+ ou EBX :

g_green_anim.gif (878 octets) Portage Linux cible 68K et carte VME

g_green_anim.gif (878 octets) Portage Linux cible PowerPC Motorola

g_green_anim.gif (878 octets) Portage Linux cible microcontrôleur sans MMU

g_green_anim.gif (878 octets) Portage Linux cible ARM, StrongARM et XScale

Le portage pour ces processeurs est issu du portage de Linux sur PDA :

g_green_anim.gif (878 octets) Portage Linux cible Alpha DEC

g_green_anim.gif (878 octets) Portage Linux cible SuperH Hitachi

g_green_anim.gif (878 octets) Portage Linux cible IA-64 Intel

g_green_anim.gif (878 octets) Portage Linux cible MIPS

g_green_anim.gif (878 octets) Portage Linux cible SPARC

bar_blue.gif (315 octets)

HARDWARE POUR L'EMBARQUE

Quand on fait de l'embarqué, on a généralement des contraintes importantes :

On utilise alors des cartees électroniques faites maison ou des cartes industrielles autres qu'une carte mère standard de PC. On pourra s'orienter vers des matériels type cartes SBC pour embarquer Linux :

bar_blue.gif (315 octets)

OUTILS POUR L'EMBARQUE

Voici quelques documents concernant les outils/packages libres pour l'embarqué :

Ci-après une liste d'outils/packages dédiés à l'embarqué (faible empreinte mémoire...) :

BOOTLOADERS LINUX :

BIBLIOTHEQUES LIBC :

EDITEURS DE TEXTE :

SHELLS ET COMMANDES :

CONNECTIVITE IP :

GUI :

AUTRES :

bar_blue.gif (315 octets)

LIENS INTERESSANTS

Quelques liens intéressants :

bar_blue.gif (315 octets)