¿Es posible ejecutar Linux en Arduino? En caso afirmativo, ¿qué pasos y limitaciones deben considerarse? Si no, ¿cuáles son las limitaciones que evitan esto?
¿Es posible ejecutar Linux en Arduino? En caso afirmativo, ¿qué pasos y limitaciones deben considerarse? Si no, ¿cuáles son las limitaciones que evitan esto?
Respuestas:
Linux es un sistema operativo muy complejo, pero puede encajar en un Arduino. Cosas para considerar:
En resumen, tomaría mucho tiempo y esfuerzo, y probablemente sería demasiado lento para el uso diario. Si realmente quieres Arduino Linux, mira el Yún.
Simplemente no tiene suficiente RAM. También necesitaría enseñarle a arrancar desde la memoria flash, lo que implicaría reescribir el cargador de arranque.
En su lugar, puede usar un Arduino Yun o un PCDuino ; Si bien no son Arduinos "estándar", estos admiten escudos Arduino y ejecutan Linux.
O siempre está la Raspberry Pi .
La respuesta corta es no.
Básicamente, necesitarías MUCHO más carnero que incluso el ATmega más grande tiene de forma nativa.
Teóricamente es posible agregar hardware externo y programar el ATmega para emular una CPU más potente, y ejecutar Linux en eso. Sin embargo, en un arduino simple, no es posible.
Sería mucho más realista ejecutar Linux en un Arduino Due, que es básicamente una CPU AT91SAM3X8E. Sin embargo, aún necesitaría agregar algo de SRAM y almacenamiento adicionales.
Hay cosas como el Arduino Yun, pero ese es realmente un módulo Linux completamente separado en la misma PCB que un ATmega32U4, por lo que no sé si realmente puede contarlo como un arduino.
Posiblemente relevante: ¿Qué se necesita para ejecutar Linux incrustado?
Hay una placa llamada pcDuino que puede ejecutar múltiples variantes de Linux como Debian, Ubuntu, Open WRT, LEDE, Raspian PIXEL (solo por mencionar algunas). Esta placa no es un Arduino nativo, sino Arduino AtHeart , y está hecha por LinkSprite .
Arduino tiene un par de placas que admiten ejecutar una variante de Linux llamada Linino :
Esto tiene varios años, pero quizás sea más pertinente ya que los Arduinos obtienen más RAM y AVR ATMega de 32 bits, etc. Hay un problema obvio que no se encuentra en la respuesta más popular aquí. El Arduino usa un MICROCONTROLADOR AVR, no un MICROPROCESADOR. Esta es una razón importante por la que no hay puerto de Linux. Los microcontroladores están diseñados para realizar una tarea específica, aplicaciones donde la relación de entrada y salida está bien definida. Los microprocesadores están diseñados para ejecutar una variedad de aplicaciones en sistemas operativos. Recuerde, desde el principio, Linux necesitaba una unidad de administración de memoria y no podía ejecutarse en PC 8088 o 286. Luego estaba μClinux, que originalmente se dirigió a la familia Motorola DragonBall de procesadores 68k integrados, para Palm Pilots. Nunca fue particularmente exitoso. Es posible que tenga más éxito al portar FreeDOS o incluso Minix que Linux, tal vez algo en ensamblador, pero compilar un sistema operativo en un microcontrolador es muy poco práctico. Quizás es un problema académico desafiante,
Es posible, sin embargo, sería una molestia porque tendrías que escribirlo en C. (sin mencionar el hardware adicional necesario como un protector de tarjeta SD y chip (s) de memoria extra) Algo como Ontas, un núcleo que escribí en C para el arduino, ayudaría, ya que tiene soporte para agregar controladores, a expensas de hacer que la función de bucle vacío se repita más lentamente. (Esto no es tan importante como podría pensar que es) (Ontas todavía está en desarrollo y se agregan nuevas características todo el tiempo)
Haga clic aquí para ver el enlace a .ino y los archivos .h que lo acompañan