Чи можливо запустити Linux на Arduino? Якщо так, то які кроки та обмеження потрібно враховувати? Якщо ні, то які обмеження перешкоджають цьому?
Чи можливо запустити Linux на Arduino? Якщо так, то які кроки та обмеження потрібно враховувати? Якщо ні, то які обмеження перешкоджають цьому?
Відповіді:
Linux - це дуже складна операційна система, але вона може бути спроможна вміститись на Arduino. Що слід врахувати:
Коротше кажучи, це займе багато часу та зусиль, і, ймовірно, буде занадто повільним для щоденного використання. Якщо ви дійсно хочете Arduino Linux, ознайомтесь з юном.
Просто не вистачає оперативної пам’яті. Вам також потрібно було б навчити її завантажуватися з флеш-пам’яті, що передбачало б перезапис завантажувача.
Ви можете замість цього використати Arduino Yun або PCDuino ; а не "стандартні" Arduinos, ці Arduino підтримують екрани та запускають Linux.
Або завжди є Raspberry Pi .
Коротка відповідь - ні.
В основному, вам знадобиться ЛОТИ більше оперативної пам'яті, ніж навіть найбільша ATmega спочатку.
Це є теоретично можливим додавати зовнішні пристрої, а також програмувати ATMEGA емулювати більш потужний процесор, і запустити Linux на цьому. Однак на простому ардуїно це неможливо.
Набагато реальніше було б запустити Linux на Arduino Due, який в основному є процесором AT91SAM3X8E. Однак вам все-таки потрібно буде додати деякі додаткові SRAM та сховище.
Є такі речі, як Arduino Yun, але це насправді абсолютно окремий модуль Linux на тій же платі, що й ATmega32U4, тому я не знаю, чи можна насправді вважати це ардуїно.
Можливо, актуально: Що потрібно для запуску вбудованого Linux?
Існує плата під назвою pcDuino, яка може запускати кілька варіантів Linux, таких як Debian, Ubuntu, Open WRT, LEDE, Raspian PIXEL (згадую лише про деякі). Ця рада не є рідним Arduino, а Arduino AtHeart , і її виготовляє LinkSprite .
У Arduino є кілька плат, які підтримують запуск версії Linux під назвою Linino :
Це декілька років, але, можливо, більш доречно, оскільки Arduinos отримує більше оперативної пам’яті та 32-бітових AVMega AVR тощо. Очевидна проблема, зокрема, не в найбільш популярній відповіді. Arduino використовує AVR MICROCONTROLLER, а не МІКРОПРОЦЕСОР. Це основна причина, чому немає порту Linux. Мікроконтролери призначені для виконання конкретного завдання, додатків, де співвідношення вводу та виводу добре визначено. Мікропроцесори призначені для запуску різноманітних програм в операційних системах. Пам'ятайте, з самого початку Linux потребував блоку управління пам'яттю і не міг працювати на 8088 або 286 ПК. Потім з'явився μClinux, який спочатку націлював сімейство Motorola DragonBall з вбудованими процесорами 68 к для Palm Pilots. Це ніколи не було особливо успішним. У вас може бути більший успіх при перенесенні FreeDOS або навіть Minix, ніж Linux, можливо, щось в асемблері, але компілювати ОС на мікроконтролері дуже недоцільно. Можливо, це складна академічна проблема,
Можливо, проте це буде біль, тому що вам доведеться писати це в C. (не кажучи вже про додаткове обладнання, необхідне, наприклад, щит sd-картки та додаткові мікросхеми пам'яті) Щось на зразок Ontas, ядра, про яке я писав C для arduino допоможе, оскільки у нього є підтримка додавання драйверів, за рахунок того, щоб функція циклу недійсності повторювалася повільніше. (Це не така велика угода, як ви могли б подумати, що вона є) (Ontas все ще знаходиться в стадії розробки, і нові функції додаються постійно)