Lehetséges Linux futtatása Arduinón? Ha igen, milyen lépéseket és korlátozásokat kell figyelembe venni? Ha nem, milyen korlátozások akadályozzák ezt?
Megjegyzések
- hackaday.com/ 2012/03/28 / A legrosszabb linux-pc-épület megépítése
- Használjon RPi-t.
Válasz
A Linux nagyon összetett operációs rendszer, de képes lehet arra, hogy elférjen Arduino-n. Fontos szempontok:
- A forráskódnak nincs aktuális AVR-portja.
- Nem lenne grafikája, ehelyett az UART-on keresztül érheti el a terminált. li> A fájlrendszer illesztőprogramját át kell írni, hogy hozzáférjen a belső flash-hez vagy egy külső SD-kártyához.
- rendkívül lassú lenne! Az ATmega328 16 MHz-en, vagy max. 20 MHz-en (túlhajtva) működne. A legtöbb Linux-gép legalább 400 MHz-en, és még több grafikusan fut.
- Valószínűleg szükséged lenne némi extra RAM-ra, valószínűleg jó ötlet egy ATmega2650 (a Megában lévő) használatához, amelynek 16 -szorozza az Uno RAM-ját. Használhatna egy Due-t is (6x olyan gyorsan, mint az Uno, több RAM).
- Előfordulhat, hogy speciális USB-illesztőprogramokat kell írnia az OTG (az Due miatt) vagy a MAX3421EE (Mega ADK, USB host pajzs) számára. .
Röviden: sok időt és erőfeszítést igényel, és valószínűleg túl lassú lenne a mindennapi használathoz. Ha nagyon szeretné az Arduino Linuxot, nézze meg a Yúnt.
Megjegyzések
- Nem tenné ” valószínűleg ” szükségel extra ramra, te szükséged van extra ramra. A Linuxhoz 1 MB + ram szükséges. Ezenkívül az MMU hiánya azt jelentené, hogy ‘ meg kell találnod, hogyan kell utánozni egyet (vagy futtatni az ucLinux-ot). Reálisan a legjobb esetben ‘ d képesebb processzort emulálni az atmega-ban, ami nagyságrenddel lassabb lenne, mint a natív kód. Még az esedékes arduino is ‘ nincs a kívánt ram közelében.
- Az ATmega328P-nek is van 2 KB SRAM-ja, az ATmega2560P-nek pedig csak 8 KB. Ez csak négyszer nagyobb a RAM-nál, nem 16-szoros.
Válasz
Csak nincs elég RAM. Meg kell tanítani azt is, hogy flash memóriából indítson, ami a rendszerbetöltő átírását jelentené.
Ehelyett használhat egy Arduino Yun vagy egy PCDuino ; Bár nem “szokásos” Arduinos, ezek támogatják az Arduino pajzsokat és futtatják a Linuxot.
Vagy mindig ott van a Raspberry Pi .
Megjegyzések
- Miért mondod, hogy Yun nem ” szabványos ” Arduino? Egyetértek azzal, hogy lehet, hogy nem ez a leggyakoribb, de valóban Arduino.
- @jfpoilpret A legtöbb Arduino olyan atmega tábla, amely lefordított C ++ programot futtat az avr-gcc-n keresztül, és rendelkezik USB-s kezelőchippel. különböző formájúak / méretűek / teljesítményűek, de ‘ lényegében ugyanazok (Mega félretéve). Nagyon nyilvánvalónak tűnt, hogy az OP ezekről beszél, és nem a Yun / etc-ről, ezért a megkülönböztetés.
- Ott ‘ s a hamarosan megjelenő Arduino Tre , legalábbis én ‘ m remélem, hogy hamarosan ‘ s 😉
Válasz
A rövid válasz nem.
Alapvető y, SOKKAL több ramra lenne szükséged, akkor még a legnagyobb ATmegának is natív módon kell lennie.
Elméletileg lehetséges külső hardver hozzáadása és az ATmega programozása egy erősebb CPU utánzásához, és futtasd a linuxot azon. Egy sima arduino-n azonban ez nem lehetséges.
Sokkal reálisabb lenne linuxot futtatni Arduino Due-n, amely alapvetően egy AT91SAM3X8E CPU. Azonban még mindig hozzá kell adnia további SRAM-ot és tárhelyet.
Vannak olyan dolgok, mint az Arduino Yun, de ez valójában egy teljesen különálló linux modul ugyanazon a NYÁK-on, mint egy ATmega32U4, ezért nem teszem lehetővé. “Nem tudom, valóban számíthat-e arduino-nak.
Esetleg releváns: Mi kell a beágyazott linux futtatásához?
Válasz
Van egy tábla, amelynek neve: pcDuino amely képes futtatni a Linux több változatát, például Debian, Ubuntu, Open WRT, LEDE, Raspian PIXEL (csak néhányat említve). Ez a tábla nem natív Arduino, inkább Arduino AtHeart , és a LinkSprite készíti.
Az Arduinóban van néhány tábla, amely támogatja a változat futtatását Linino nevű Linux verziója:
- Az Arduino Yún az ATmega32u4 és az Atheros AR9331 alapú mikrokontroller kártya.Az Atheros processzor támogatja az OpenWrt alapú Linux disztribúciót, a Linino OS nevet. A kártya beépített Ethernet és WiFi támogatással rendelkezik, USB-A porttal, micro-SD kártya foglalattal, 20 digitális bemeneti / kimeneti tűvel (ezek közül 7 használható PWM kimenetként, 12 pedig analóg bemenetként), 16 MHz-es kristályval oszcillátor, mikro USB csatlakozás, ICSP fejléc és 3 reset gomb.
- Az új Arduino Tian táblát az Atmel SAMD21 MCU hajtja, 32 bites ARM Cortex® M0 + maggal és Qualcomm Atheros AR9342-vel. , amely egy nagyon integrált MIPS processzor, amely 533 MHz-es frekvencián működik, és funkciókban gazdag IEEE802.11n 2×2 2,4 / 5 GHz kétsávos WiFi modul. A Qualcomm Atheros MIPS egy Linux disztribúciót támogat, amely Linino nevű OpenWRT-n alapul. Az Arduino Tian beépített 4 GB-os eMMC memóriát is tartalmaz, amely hasznos lehet a projektek felépítéséhez. Az energiafogyasztás csökkentése érdekében be lehet kapcsolni a Linux portot az MCU-ból.
- Az Arduino Industrial 101 egy kiértékelő tábla Arduino 101 LGA modulhoz. Az ATmega32u4 mikrovezérlő az alaplapba van integrálva. A modul támogatja a Linux disztribúciót, amely LininoOS nevű OpenWRT alapú. A kártya beépített WiFi-vel rendelkezik (IEEE 802.11b / g / n műveletek 150Mbps-ig 1×1 2,4 GHz-ig), 3 GPIO-val (ebből 2 PWM kimenetként használható), 4 analóg bemenettel, 1 USB-vel, 1 Ethernet jellel a tűn fejlécek és beépített DC / DC átalakító. Nézze meg az összeszerelési útmutatót, és a kezdéshez egyszerűen csatlakoztassa a táblát a számítógéphez egy mikro-USB-kábellel.
Válasz
Ez több éves, de talán relevánsabb, mivel az Arduinos több RAM-ot és 32 bites ATMega-t kap AVR-k stb. Van egy nyilvánvaló probléma, nevezetesen nem a legnépszerűbb válaszban. Az Arduino egy AVR MICROCONTROLLER , nem pedig mikroprocesszor. Ez egy fő oka annak, hogy nincs linux-os port. A mikrovezérlőket egy speciális feladat végrehajtására tervezték, olyan alkalmazásokra, ahol a bemenet és a kimenet kapcsolata jól meghatározott. A mikroprocesszorokat futásra tervezték sokféle alkalmazás az operációs rendszereken. Ne feledje, hogy a kezdetektől fogva a Linuxnak memóriakezelő egységre volt szüksége, és nem tudott futtatni 8088 vagy 286 PC-n. Ezután volt egy μClinux, amely eredetileg a Motorola DragonBall beágyazott 68k-os processzorait célozta meg a Palm Pilots számára Soha nem volt különösebben sikeres. Lehet, hogy nagyobb sikert arat a FreeDOS vagy akár a Minix hordozásában, mint a Linux, talán valami az assemblerben, de az operációs rendszer mikroprocesszoron történő megküldése nagyon nem praktikus. Talán ez egy kihívást jelentő tudományos probléma, de kifejezetten ellentmond annak a célnak, hogy mikroprocesszor helyett mikrokontrollert használjon.
Válasz
Lehetséges, azonban fájdalmat okozna, mert C-be kell írnia (nem beszélve a szükséges extra hardverekről, mint például az SD-kártya pajzsáról és az extra memóriachipekről). Valami, mint Ontas, egy kern, amibe írtam Az arduino C-je segítene, mivel támogatja az illesztőprogramok hozzáadását, azzal a költséggel, hogy a void loop funkció lassabban ismétlődjön. (Ez nem olyan nagy üzlet, mint gondolnád) (Ontas még fejlesztés alatt áll, és új funkciókat folyamatosan hozzáadunk)