Est-il possible d'exécuter Linux sur Arduino? Si oui, quelles étapes et limitations doivent être prises en compte? Sinon, quelles sont les limites qui empêchent cela?
Est-il possible d'exécuter Linux sur Arduino? Si oui, quelles étapes et limitations doivent être prises en compte? Sinon, quelles sont les limites qui empêchent cela?
Réponses:
Linux est un système d'exploitation très complexe, mais il peut être compatible avec un Arduino. Choses à considérer:
En bref, cela prendrait beaucoup de temps et d'efforts, et serait probablement trop lent pour une utilisation quotidienne. Si vous voulez vraiment Arduino Linux, consultez le Yún.
Il n'a tout simplement pas assez de RAM. Vous devrez également lui apprendre à démarrer à partir de la mémoire flash, ce qui impliquerait la réécriture du chargeur de démarrage.
Vous pouvez à la place utiliser un Arduino Yun ou un PCDuino ; bien qu'ils ne soient pas des Arduinos «standard», ceux-ci prennent en charge les boucliers Arduino et exécutent Linux.
Ou il y a toujours le Raspberry Pi .
La réponse courte est non.
Fondamentalement, vous auriez besoin de beaucoup plus de RAM que même le plus grand ATmega en natif.
Il est théoriquement possible d'ajouter du matériel externe, de programmer l'ATmega pour émuler un processeur plus puissant et d'exécuter Linux sur cela. Cependant, sur un Arduino simple, ce n'est pas possible.
Il serait beaucoup plus réaliste d'exécuter Linux sur un Arduino Due, qui est essentiellement un processeur AT91SAM3X8E. Cependant, vous devrez toujours ajouter de la mémoire SRAM et du stockage supplémentaires.
Il y a des choses comme l'Arduino Yun, mais c'est vraiment un module Linux entièrement séparé sur le même PCB qu'un ATmega32U4, donc je ne sais pas si vous pouvez vraiment le compter comme un arduino.
Peut-être pertinent: que faut-il pour exécuter Linux embarqué?
Il existe une carte appelée pcDuino qui peut exécuter plusieurs variantes de Linux telles que Debian, Ubuntu, Open WRT, LEDE, Raspian PIXEL (pour n'en citer que quelques-unes). Cette carte n'est pas un Arduino natif, mais plutôt un Arduino AtHeart , et est fabriquée par LinkSprite .
Arduino a quelques cartes qui prennent en charge l'exécution d'une variante de Linux appelée Linino :
C'est vieux de plusieurs années, mais peut-être plus pertinent car les Arduinos obtiennent plus de RAM et les AVR ATMega 32 bits, etc. Il y a un problème évident, notamment pas dans la réponse la plus populaire ici. L'Arduino utilise un MICROCONTRÔLEUR AVR, pas un MICROPROCESSEUR. C'est une des principales raisons pour lesquelles il n'y a pas de port Linux. Les microcontrôleurs sont conçus pour effectuer une tâche spécifique, des applications où la relation d'entrée et de sortie est bien définie. Les microprocesseurs sont conçus pour exécuter diverses applications sur les systèmes d'exploitation. Rappelez-vous que depuis le début, Linux avait besoin d'une unité de gestion de mémoire et ne pouvait pas fonctionner sur 8088 ou 286 PC. Ensuite, il y avait μClinux, qui ciblait à l'origine la famille de processeurs 68k embarqués Motorola DragonBall, pour Palm Pilots. Cela n'a jamais été particulièrement réussi. Vous pourriez avoir plus de succès à porter FreeDOS ou même Minix que Linux, peut-être quelque chose dans l'assembleur, mais la compilation d'un OS sur un microcontrôleur est très peu pratique. C'est peut-être un problème académique difficile,
C'est possible, mais ce serait pénible car il faudrait l'écrire en C. (sans parler du matériel supplémentaire nécessaire comme un bouclier de carte SD et des puces de mémoire supplémentaires) Quelque chose comme Ontas, un noyau dans lequel j'ai écrit C pour l'arduino, serait utile car il prend en charge l'ajout de pilotes, au détriment de la répétition plus lente de la fonction de boucle vide. (Ce n'est pas aussi grave que vous pourriez le penser) (Ontas est toujours en cours de développement et de nouvelles fonctionnalités sont ajoutées tout le temps)
Cliquez ici pour le lien vers le fichier .ino et les fichiers .h qui l'accompagnent