เป็นไปได้หรือไม่ที่จะรัน Linux บน Arduino? ถ้าใช่จะต้องพิจารณาขั้นตอนและข้อ จำกัด อะไรบ้าง ถ้าไม่ข้อ จำกัด อะไรที่ป้องกันไม่ให้เกิดขึ้น?
เป็นไปได้หรือไม่ที่จะรัน Linux บน Arduino? ถ้าใช่จะต้องพิจารณาขั้นตอนและข้อ จำกัด อะไรบ้าง ถ้าไม่ข้อ จำกัด อะไรที่ป้องกันไม่ให้เกิดขึ้น?
คำตอบ:
ลีนุกซ์เป็นระบบปฏิบัติการที่ซับซ้อนมาก, แต่มันอาจจะพอดีกับ Arduino สิ่งที่ต้องพิจารณา:
ในระยะสั้นก็จะใช้เวลามากเวลาและความพยายามและอาจจะช้าเกินไปสำหรับการใช้ชีวิตประจำวัน หากคุณต้องการ Arduino Linux ลองดูที่Yún
มันมี RAM ไม่เพียงพอ คุณต้องสอนให้บูตจากหน่วยความจำแฟลชซึ่งจะเกี่ยวข้องกับการเขียน bootloader ใหม่
คุณแทนสามารถใช้Arduino หยุนหรือPCDuino ; ในขณะที่ไม่ใช่ Arduinos "มาตรฐาน" เหล่านี้รองรับ Arduino shields และใช้ Linux
หรือมีราสเบอร์รี่ Piอยู่เสมอ
คำตอบสั้น ๆ คือไม่
โดยพื้นฐานแล้วคุณจะต้องใช้ RAM เพิ่มขึ้นมากมายแล้วแม้แต่ ATmega ที่ใหญ่ที่สุดก็มีมาให้
ในทางทฤษฎีแล้วมันเป็นไปได้ที่จะเพิ่มฮาร์ดแวร์ภายนอกและตั้งโปรแกรม ATmega เพื่อเลียนแบบซีพียูที่ทรงพลังกว่าและรัน linux บนนั้น อย่างไรก็ตามใน aarduino ธรรมดามันเป็นไปไม่ได้
มันจะเป็นจริงมากขึ้นในการใช้งาน linux บน Arduino Due ซึ่งโดยทั่วไปคือ AT91SAM3X8E CPU อย่างไรก็ตามคุณยังต้องเพิ่ม SRAM และพื้นที่เก็บข้อมูลเพิ่มเติม
มีสิ่งต่าง ๆ เช่น Arduino Yun แต่มันเป็นโมดูลลินุกซ์ที่แยกจากกันโดยสิ้นเชิงบน PCB เดียวกันกับ ATmega32U4 ดังนั้นฉันไม่รู้ว่าคุณจะนับเป็น Arduino ได้ไหม
อาจมีความเกี่ยวข้อง: ต้องใช้อะไรบ้างในการรัน linux แบบฝัง
มีบอร์ดเรียกว่าpcDuinoที่สามารถเรียกใช้ Linux ได้หลายรูปแบบเช่น Debian, Ubuntu, Open WRT, LEDE, Raspian PIXEL คณะกรรมการนี้ไม่ได้เป็นพื้นเมือง Arduino ค่อนข้างArduino AtHeartและจะทำโดยLinkSprite
Arduino มีบอร์ดสองชุดที่รองรับการใช้งาน Linux ที่เรียกว่าLinino :
นี่เป็นเวลาหลายปี แต่อาจจะมีความเกี่ยวข้องมากขึ้นเมื่อ Arduinos ได้รับ RAM และ ATMega AVR 32 บิตขึ้นไป ฯลฯ มีปัญหาที่เห็นได้ชัดโดยเฉพาะในคำตอบที่ได้รับความนิยมมากที่สุด Arduino ใช้ AVR MICROCONTROLLERไม่ใช่ MICROPROCESSOR นี่คือเหตุผลสำคัญว่าทำไมไม่มีพอร์ตของ linux ไมโครคอนโทรลเลอร์ได้รับการออกแบบมาเพื่อทำงานเฉพาะด้านโดยเฉพาะแอปพลิเคชันที่กำหนดความสัมพันธ์ของอินพุทและเอาท์พุทเป็นอย่างดี ไมโครโปรเซสเซอร์ออกแบบมาเพื่อใช้งานแอพที่หลากหลายบนระบบปฏิบัติการ จำไว้ว่าตั้งแต่ต้น Linux จำเป็นต้องมีหน่วยจัดการหน่วยความจำและไม่สามารถทำงานบนพีซี 8088 หรือ 286 ได้ จากนั้นก็มีμClinuxซึ่งเดิมตั้งเป้าหมายตระกูล Motorola DragonBall ของโปรเซสเซอร์ 68k ฝังตัวสำหรับ Palm Pilots ไม่เคยประสบความสำเร็จเป็นพิเศษ คุณอาจประสบความสำเร็จมากกว่าในการย้ายพอร์ต FreeDOS หรือแม้แต่ Minix กว่า Linux บางทีอาจจะเป็นบางอย่างในแอสเซมเบลอร์ แต่การรวบรวมระบบปฏิบัติการบนไมโครคอนโทรลเลอร์เป็นไปไม่ได้ อาจเป็นปัญหาทางวิชาการที่ท้าทาย
เป็นไปได้ แต่มันจะเจ็บปวดเพราะคุณจะต้องเขียนใน C (ไม่ต้องพูดถึงฮาร์ดแวร์พิเศษที่จำเป็นเช่นการ์ด sd การ์ดและชิพหน่วยความจำพิเศษ) บางอย่างเช่น Ontas เคอร์เนลที่ฉันเขียน C สำหรับ Arduino นั้นจะช่วยตามที่มันได้รับการสนับสนุนในการเพิ่มไดรเวอร์โดยทำให้ฟังก์ชั่น void loop ทำซ้ำได้ช้าลง (นี่ไม่ใช่เรื่องใหญ่เท่าที่คุณคิดว่ามันเป็น) (Ontas ยังอยู่ระหว่างการพัฒนาและเพิ่มคุณสมบัติใหม่ตลอดเวลา)