GNU/Linux >> Tutoriels Linux >  >> Linux

La plus petite distribution Linux embarquée ?

Je dirais que tu rêves. Le principal problème sera la RAM limitée.

En 2004, Eric Beiderman a réussi à faire démarrer un noyau avec 2,5 Mo de RAM, avec beaucoup de fonctionnalités supprimées.

Cependant, c'était sur x86, et vous parlez d'ARM. J'ai donc essayé de construire le plus petit noyau ARM possible, pour la plate-forme "polyvalente" (l'une des plus simples). J'ai tout désactivé options configurables, y compris celles que vous recherchez (USB, WiFi, SPI, I2C), pour voir à quel point cela deviendrait petit. Maintenant, je fais juste référence au noyau ici, et cela n'inclut aucun composants de l'espace utilisateur.

La bonne nouvelle :il s'adaptera à votre flash. Le zImage résultant est de 383204 octets.

La mauvaise nouvelle :avec 256 Ko de RAM, il ne pourra pas démarrer :

$ size obj/vmlinux
  text     data     bss     dec     hex filename
734580    51360   14944  800884   c3874 obj/vmlinux

Le segment .text est plus grand que votre RAM disponible, donc le noyau ne peut pas décompresser, et encore moins allouer de la mémoire pour démarrer, et encore moins exécuter quoi que ce soit d'utile.

Une solution de contournement consisterait à utiliser le support d'exécution sur place (CONFIG_XIP), si votre système le prend en charge (c'est-à-dire qu'il peut récupérer des instructions directement à partir de Flash). Cependant, cela signifie que votre noyau doit tenir en flash non compressé et 734 Ko> 700 Ko. De plus, les sections .data et .bss totalisent 66 Ko, laissant environ 190 Ko pour tout le reste (c'est-à-dire toutes les structures de données allouées dynamiquement dans le noyau).

C'est juste le noyau. Sans les pilotes dont vous avez besoin, ni aucun espace utilisateur.

Donc, oui, vous allez avoir besoin d'un peu plus de RAM.


OMI, vous rêvez. Surtout avec USB, réseau et 802.11/wifi. Je ne pense tout simplement pas que vous puissiez faire cela et M3 est vraiment exagéré.

OpenWRT est l'une des distributions Linux les plus petites et les plus intégrables que je connaisse pour la mise en réseau et il est difficile d'obtenir moins de 2 Mo, en particulier avec le Wifi.

Essayez de rechercher des puces ARM haut de gamme si c'est ce que vous voulez vraiment ou optez pour les SoC Broadcom ou Atheros qui sont actuellement courants dans les routeurs.


As-tu du MMU sur le processeur ? Si vous ne le faites pas, vous voudrez peut-être consulter:http://www.uclinux.org/ qui devrait vous donner une taille de noyau beaucoup plus petite que celle mentionnée. Cela fonctionne pour certaines puces CortexM3 Atmel, donc cela pourrait fonctionner pour la vôtre. Je ne l'ai pas utilisé, donc ce n'est que spéculatif. Doh, je viens de voir que cette question avait été mise à jour - eh bien, si vous n'avez pas de MMU (ce que vous n'avez probablement pas), vous ne pouvez pas utiliser le noyau "normal" et vous aurait besoin d'utiliser ucLinux.


Linux
  1. Le cycle de vie des tests du noyau Linux

  2. Comment mettre à niveau le noyau sur Linux Desktop

  3. Linux – Noyau :Prise en charge des espaces de noms ?

  4. Linux - Transfert IP du noyau ?

  5. Linux – Les différents noyaux Linux/unix sont-ils interchangeables ?

Le noyau Linux contre. Mac noyau

Le noyau Linux et ses fonctions

Que faire en cas de panique du noyau Linux

Distribution Linux de Microsoft :CBL-Mariner

Guide complet de journalisation Linux

Linux - Schéma du noyau Linux Vs. Outils de performances ?