Можно ли запустить Linux на Arduino? Если да, какие шаги и ограничения необходимо учитывать? Если нет, какие ограничения мешают этому?
Можно ли запустить Linux на Arduino? Если да, какие шаги и ограничения необходимо учитывать? Если нет, какие ограничения мешают этому?
Ответы:
Linux - очень сложная операционная система, но она может уместиться на Arduino. Что нужно учитывать:
Короче говоря, это займет много времени и усилий и, вероятно, будет слишком медленным для повседневного использования. Если вы действительно хотите Arduino Linux, проверьте Yún.
Просто не хватает оперативной памяти. Вам также необходимо научить его загружаться с флэш-памяти, что потребует переписывания загрузчика.
Вместо этого вы можете использовать Arduino Yun или PCDuino ; хотя они не являются «стандартными» Arduinos, они поддерживают щиты Arduino и работают под управлением Linux.
Или всегда есть Raspberry Pi .
Короткий ответ: нет.
По сути, вам нужно гораздо больше оперативной памяти, чем даже самая большая ATmega изначально.
Это является теоретически возможным добавлять внешние устройства, а также программировать ATMEGA эмулировать более мощный процессор, и запустить Linux на этом. Однако на равнине Arduino это невозможно.
Было бы намного реалистичнее запускать linux на Arduino Due, который в основном является процессором AT91SAM3X8E. Тем не менее, вам все равно нужно добавить дополнительную SRAM и хранилище.
Есть такие вещи, как Arduino Yun, но это действительно совершенно отдельный модуль linux на той же печатной плате, что и ATmega32U4, поэтому я не знаю, действительно ли вы можете считать его Arduino.
Возможно актуально: что нужно для запуска встроенного Linux?
Существует плата, называемая pcDuino, которая может работать с несколькими вариантами Linux, такими как Debian, Ubuntu, Open WRT, LEDE, Raspian PIXEL (и это лишь некоторые из них). Эта плата не является родной Arduino, а Arduino AtHeart , и сделана LinkSprite .
У Arduino есть несколько плат, которые поддерживают запуск варианта Linux под названием Linino :
Этому несколько лет, но, возможно, он более уместен, так как Arduinos получает больше оперативной памяти и 32-битных видеорегистраторов ATMega и т. Д. Существует очевидная проблема, особенно не в самом популярном ответе. Arduino использует AVR MICROCONTROLLER, не МИКРОПРОЦЕССОР. Это главная причина, почему нет порта Linux. Микроконтроллеры предназначены для выполнения конкретной задачи, приложений, где взаимосвязь ввода и вывода четко определена. Микропроцессоры предназначены для запуска различных приложений в операционных системах. Помните, с самого начала Linux нуждался в блоке управления памятью и не мог работать на 8088 или 286 ПК. Затем был µClinux, который изначально предназначался для семейства встроенных процессоров 68k Motorola DragonBall для Palm Pilots. Это никогда не было особенно успешным. Возможно, вы добьетесь большего успеха при переносе FreeDOS или даже Minix, чем Linux, возможно, что-то в ассемблере, но компиляция ОС на микроконтроллере очень непрактична. Возможно, это сложная академическая проблема,
Это возможно, однако это было бы болезненно, потому что вам пришлось бы писать это на языке C. (не говоря уже о дополнительном оборудовании, необходимом, например, щит SD-карты и дополнительный чип (-ы) памяти) Что-то вроде Ontas, ядра, которое я написал в C для Arduino, поможет, так как имеет поддержку для добавления драйверов, за счет замедления повторения функции void loop. (Это не так важно, как вы думаете) (Ontas все еще находится в стадии разработки и все время добавляются новые функции)