Ist es möglich, Linux auf Arduino auszuführen? Wenn ja, welche Schritte und Einschränkungen sind zu beachten? Wenn nicht, welche Einschränkungen verhindern dies?
Ist es möglich, Linux auf Arduino auszuführen? Wenn ja, welche Schritte und Einschränkungen sind zu beachten? Wenn nicht, welche Einschränkungen verhindern dies?
Antworten:
Linux ist ein sehr komplexes Betriebssystem, kann aber möglicherweise auf ein Arduino passen. Dinge, die man beachten muss:
Kurz gesagt, es würde viel Zeit und Mühe kosten und für den täglichen Gebrauch wahrscheinlich zu langsam sein. Wenn Sie wirklich Arduino Linux wollen, schauen Sie sich den Yún an.
Es hat einfach nicht genug RAM. Sie müssten ihm auch beibringen, vom Flash-Speicher zu booten, wozu das Neuschreiben des Bootloaders gehört.
Sie können stattdessen ein Arduino Yun oder ein PCDuino verwenden . Arduinos sind zwar keine "Standard" -Arduinos, unterstützen jedoch Arduino-Shields und führen Linux aus.
Oder es gibt immer den Raspberry Pi .
Die kurze Antwort lautet nein.
Grundsätzlich bräuchten Sie VIEL mehr RAM als selbst der größte ATmega von Haus aus.
Es ist theoretisch möglich, externe Hardware hinzuzufügen und den ATmega so zu programmieren, dass er eine leistungsstärkere CPU emuliert, und Linux darauf auszuführen. Auf einem einfachen Arduino ist dies jedoch nicht möglich.
Es wäre viel realistischer, Linux auf einem Arduino Due auszuführen, bei dem es sich im Grunde um eine AT91SAM3X8E-CPU handelt. Sie müssen jedoch noch zusätzlichen SRAM und Speicher hinzufügen.
Es gibt Dinge wie das Arduino Yun, aber das ist wirklich ein völlig separates Linux-Modul auf derselben Platine wie ein ATmega32U4, also weiß ich nicht, ob man es wirklich als Arduino zählen kann.
Möglicherweise relevant: Was braucht es, um Embedded Linux auszuführen?
Es gibt ein Board namens pcDuino , das verschiedene Linux-Varianten wie Debian, Ubuntu, Open WRT, LEDE und Raspian PIXEL ausführen kann (um nur einige zu nennen). Dieses Board ist kein Arduino, sondern Arduino AtHeart und wird von LinkSprite hergestellt .
Arduino hat einige Boards, die die Ausführung einer Linux-Variante namens Linino unterstützen :
Dies ist einige Jahre alt, aber möglicherweise relevanter, da Arduinos mehr RAM und 32-Bit-ATMega-AVRs usw. erhalten. Es gibt ein offensichtliches Problem, insbesondere nicht in der beliebtesten Antwort hier. Der Arduino verwendet einen AVR MICROCONTROLLER, kein Mikroprozessor. Dies ist ein Hauptgrund, warum es keinen Linux-Port gibt. Mikrocontroller sind für die Ausführung einer bestimmten Aufgabe konzipiert, dh für Anwendungen, bei denen das Verhältnis von Eingabe und Ausgabe genau definiert ist. Mikroprozessoren können eine Vielzahl von Apps auf Betriebssystemen ausführen. Denken Sie daran, dass Linux von Anfang an eine Speicherverwaltungseinheit benötigte und nicht auf 8088- oder 286-PCs ausgeführt werden konnte. Dann gab es μClinux für Palm Pilots, das ursprünglich auf die Motorola DragonBall-Familie eingebetteter 68k-Prozessoren abzielte. Es war nie besonders erfolgreich. Möglicherweise haben Sie mehr Erfolg mit der Portierung von FreeDOS oder sogar Minix als mit Linux, vielleicht etwas in Assembler, aber das Kompilieren eines Betriebssystems auf einem Mikrocontroller ist sehr unpraktisch. Vielleicht ist es ein schwieriges akademisches Problem,
Es ist möglich, aber es wäre ein Schmerz, weil Sie es in C schreiben müssten C für das Arduino würde helfen, da es die Unterstützung hat, Treiber hinzuzufügen, auf Kosten der verlangsamten Wiederholung der Void-Loop-Funktion. (Dies ist keine so große Sache, wie Sie vielleicht denken) (Ontas befindet sich noch in der Entwicklung und es werden ständig neue Funktionen hinzugefügt.)
Klicken Sie hier, um den Link zu den .ino- und den zugehörigen .h-Dateien zu erhalten