Comment choisir son OS Linux embarqué ?
Venez partager votre expérience

Le , par Aquanum

22PARTAGES

2  0 
Bonjour,

Je me permets de lancer une petite discussion qui me permettra de créer un article sur le choix et les différentes utilisations d'OS Linux embarqué. J'utilise ici le terme OS plutôt que distribution, cela me semble plus adapté.

Il existe beaucoup de systèmes et outils basés sur Linux sur le marché aujourd'hui, en voici une liste non exhaustive.

Pour les OS clé en main
  • MeeGo
  • Android
  • GeeXbox / OpenBricks
  • webOS
  • Embedded Debian (emdebian)
  • Embedded Gentoo
  • Open Wrt


Pour les OS sur mesure
  • Buildroot
  • Scratchbox
  • OpenEmbedded
  • Yocto Project
  • uClinux
  • LFS


Je pense qu'il serait intéressant de recenser les avantages et inconvénients de chacun de ces projets. De voir dans quels cas et contextes ils sont pertinents ou bien à déconseiller. Mon idée serait du coup de regrouper l'expérience des gens pour en faire un document qui concentre toutes les informations nécessaires au choix d'un OS plutôt qu'un autre.

Je trouve que cette réflexion vaut le coup d'être lancée car de mon côté le besoin est réel. A moins d'avoir pu travailler sur tous les projets, il reste difficile d'avoir une vision objective et constructive. Et par conséquent, choisir entre plusieurs OS n'est pas une mince affaire.

Avez-vous une expérience sur l'intégration de telles solution ?
Quel est votre ressenti sur ces différents OS ?
Quels sont les avantages et inconvénients que vous pourriez trouver ?
Quels sont les cas d'utilisation pour les différents OS que vous auriez pu tester ? Adapté ? Pas adapté ?

J'ajouterai ma pierre à l'édifice après quelques réponses
Merci d'avance !

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Teuchteu
Membre habitué https://www.developpez.com
Le 25/07/2011 à 18:39
Bonjour,

On utilise actuellement des Fox G20 dans nos systèmes. J'utilise principalement embdebian pour les cartes ayant besoin du réseau et de service type HTTP, SSH, SQL... Mais le noyau est tout de même configuré au plus juste en fonction des besoins.

Pour les cartes très simples on a opté pour un linux "maison". En gros rien de plus que le noyau et un busybox aux petits oignons, avec quelques scripts. Mais dans ce cas on ne fait rien de plus que lancer l'application dédiée. Aucun accès réseau, aucun services.

La raison principal est un passage d'environ 2minutes à moins de 10s sur le temps de démarrage.

Et la satisfaction personnelle...

Donc personnellement je pense qu'un OS type LFS se justifie pleinement sur des systèmes industriels où le gain compense le temps passé. Quand le système ne propose aucune fonctionnalité, c'est pus rapide de partir de rien que de tout enlever d'un système complexe.
2  0 
Avatar de minnesota
Membre émérite https://www.developpez.com
Le 20/05/2011 à 21:13
Salut,

Y'a eCos aussi, il est complètement gratuit, très puissant et il est disponible pour plusieurs plateformes. Il est utilisé par beaucoup de fabricants et constructeurs.

En ce qui me concerne, je m'y étais intéressé car c'était l'OS d'un modem/routeur sur lequel je faisais du reverse et que j'avais fini par détourner de son usage principal. Dans les faits, c'était aussi une manière d'avoir une plateforme bien dotée, avec interface Ethernet, USB... pour une misère, car à cette période, l'embarqué n'était pas encore à la mode et les petites cartes dédiées qu'on trouve assez facilement maintenant n'étaient pas encore très répandus et leur prix était excessivement démesuré par rapport à ce qu'on pouvait ou voulait en faire.
Et ce qui est donc intéressant avec eCos, c'est que les ressources à son sujet, sa documentation, etc. sont presque intarissables. D'ailleurs, je suis toujours aussi impressionné par l'activité qu'il y a autour de cet OS, c'est vraiment un truc bien suivi et très puissant.
1  0 
Avatar de monnoliv
Membre habitué https://www.developpez.com
Le 25/05/2011 à 11:47
Bijor,

J'utilise OpenEmbedded (bitbake) pour créer des distributions Angtröm et pour créer des paquetages d'installation, y compris pour de simples programmes (gdbserver par exemple). Mon embarqué est un ARM Cortex-A8.
La distro choisie est une Angstrom parce que c'est relativement léger.
OpenEmbedded me permet de choisir presqu'à la volée si je veux la distro en console, avec interface Gui, ...
J'aimerais bien faire un tuto un de ces quatre là-dessus, ça vaut la peine de partager l'expérience de la mise en route de tout ce b... mais il me faudra du temps pour rédiger.
Pour le reste (l'applicatif), j'utilise Eclipse avec pas mal de plugin sous Ubuntu 10.10 (j'avais upgradé en 11.04 mais j'en suis vite revenu). Là aussi il y a moyen de faire un tuto parce que les infos sont trop éparses, cela m'a pris pas mal de temps avant de pouvoir déboguer "Bonjour tout le monde" dans l'embarqué via la liaison ethernet.

Olivier
1  0 
Avatar de Aquanum
Membre chevronné https://www.developpez.com
Le 08/06/2011 à 14:28
Hop, je me lance. Donc, de ce que j'ai pu tester jusque là :

Buildroot
Vraiment très pratique car complètement sur mesure. Je travaille avec depuis 1 an et demi et j'en suis vraiment très satisfait. Il y aurait un article à écrire dessus, j'y compte bien à l'occasion. Une version sort tous les 3 mois, et le projet est très vivant.
Les avantages : modularité et simplicité
Inconvénients : pas de gestion de package intégrée, la suppression/réinstallation/recompialtion de paquets est un peu prise de tête, le temps de compilation d'un système complet

LFS
Utile lorsque l'on souhaite se générer un Linux ultra ultra sur mesure, avec optimisation de taille pour faire tenir ça sur les plus petits systèmes. Je le vois plutôt comme un outil d'apprentissage qu'une solution industrielle aujourd'hui. Enfin, Linux From Scratch est plus de l'ordre de la guideline qu'un réel outil de génération de système. Tout se fait à la main.

Android
Je suis le nez dedans en ce moment, mais jusque là je trouve que la doc relative à l'intégration/portage d'un système Android est assez rare. Très peu de doc, c'est bien galère

Embedded Gentoo
Personnellement, je ne vois pas trop l'intérêt. Enfin devoir recompiler ses paquets sur de l'embarqué... c'est juste une idée à la con
J'ai tenté de m'installer vim sur une gentoo embarquée, ça m'a pris plus d'une heure de compiler sur target ! Super ! Pour moi l'avantage de Gentoo est de pouvoir tout faire soi même quand on est un gros rebelle de Linux. Mais là honnêtement, qu'on me montre des avantages pour contraster avec ma première approche catastrophique...

Embedded Debian
Bien sympathique d'avoir une debian embarquée. Toutefois, l'âge de certains paquets peut poser certains problèmes et être assez pénible.

Angström
Agréable approche d'Angström avec un gestionnaire paquets bien sympathique !
Mais je n'ai pas eu l'occasion de travailler sur la durée avec.
Si je ne me trompe pas par contre, Angström/OpenEmbedded est un très gros consommateur de place sur le disque dur pour tout l'environnement de dev (staging)
1  0 
Avatar de 3DArchi
Rédacteur https://www.developpez.com
Le 22/05/2011 à 20:41
Salut,
Je connais peu les linux embarqués (je travaille plus avec des ordonnanceurs). Mais il ne me semble pas avoir vu dans ta liste des linux orientés temps réels. Or il me semble en avoir entendu parler.
0  0 
Avatar de ArKam
Membre éclairé https://www.developpez.com
Le 23/05/2011 à 14:27
Yop, perso, j'utilise un DebianARM.

Avantage: Distrib GNU/Linux complète et réplique exact de la Debian Classique.

Inconvénient: Gestion d'alimentation pas fondamentalement adapté à l'embarqué.

Au final, cette distrib m'est plus utile en tant qu'OS de développement ARM qu'embarqué car elle est plus spécialisé sur cette plateforme.

De plus, bien que l'on puisse s'en servir en tant que Distrib pour de l'embarqué (rien ne l’empêche, après tout, c'est du Linux, on fait ce qu'on veux), vas falloir bidouiller un peu.

Au final, je m'en sert sur ma board NVidia Tegra250 DevKit afin de faire mes reverse engineering de celle-ci.
0  0 
Avatar de Hayuki
Membre à l'essai https://www.developpez.com
Le 26/05/2011 à 15:34
Bonjour,

Personnelement j'utilise BuildRoot pour du arm alors ce que je dis est valable pour arm :
il est simple à utiliser : je ne connaissais rien à Linux et j'ai mis moins de 2 mois à mettre en place une distrib (et la chose sur laquelle j'ai passé le moins de temps c'est buildroot)
il est complet : il fait tout chaine de compilation, téléchargement, compilations des application/noyau/bootloader mais personnellement je l'utilise avec un noyau à part, le bootloader à part, et la chaine de compilation à part (pour des raison historique de projet) bref c'est complet et modulaire

pour mon environnement je trouve que les distributions toutes faites ont trop d'application... mais je n'ai pas passé beaucoup de temps sur ces distrib BuildRoot me parait plus facilement "optimisable".
Open Embedded j'ai tester un peu et au salon RTS j'ai vu une présentation qui donne envie (comme Aquanum) mais je pense que c'est plus long à prendre en mains mais après ça à l'air puissant
Embdbian j'ai voulu regarder mais franchement j'ai pas trouvé assez de docs pour que ce soit facilement utilisable (enfin c'est dans mon souvenir ça fait longtemps que j'ai regardé)

pour ce qui est du temps réel il y a par exemple Xenomai ou RTAI ou le patch Preemptrt mais tout ça on peu l'ajouter sur n'importe quelle distrib (j'utilise Xenomai)

le reste je n'ai pas testé

voila voila

PS : pour eCos il me semble que ce n'est pas un Linux... Mais bon c'est vrai qu'il à l'air intéressant alors moi je l'accepte
0  0 
Avatar de themadmax
Membre confirmé https://www.developpez.com
Le 26/05/2011 à 16:16
Bonjour,

Ayant fait dans le milieu professionnelle du dev embarqué sous WinCE, et voulant personnellement du coté linux j'ai investie dans une carte de développement FriendlyARM mini2440. Pour moins de 100€, j'ai pu faire mes armes avec du Linux embarqué. Débutant avec du linux from scratch, puis bluidroot, et finalement Emdebian.
Vue que je n'ai pas un projet bien précis, je trouve que d'utilisé une vrai distribution est un grand plus dans la flexibilité d'installation des packets, et la cross-compilation est aussi facilité. Bien sur cette version light de debian ne contient pas la liste de tous les packets de la distribution. Et l'utilisation d'une distribution est beaucoup plus lourd que des systèmes construit "à la main".
0  0 
Avatar de minnesota
Membre émérite https://www.developpez.com
Le 08/06/2011 à 15:53
Je pense que le sujet a été épinglé trop vite, du coup plein de personnes passent à côté.
0  0 
Avatar de monnoliv
Membre habitué https://www.developpez.com
Le 08/06/2011 à 21:28
Si je ne me trompe pas par contre, Angström/OpenEmbedded est un très gros consommateur de place sur le disque dur pour tout l'environnement de dev (staging)
Oui mais sur le PC de développement on en a de la mémoire disque!
0  0 
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web