วิธีการสร้างระบบปฏิบัติการที่กำหนดเองสำหรับ Raspberry pi จากศูนย์?


10

ฉันยังใหม่กับเคอร์เนลและ Linux ที่ฝังอยู่ ฉันเพิ่งซื้อ Raspberry Pi และบูตโดยใช้ Raspbian ฉันหลงใหล Pi เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับสมองกลฝังตัวฉันได้ตัดสินใจที่จะสร้างระบบอัตโนมัติในบ้าน ฉันต้องการที่จะใช้เคอร์เนลของตัวเองและสแต็ค เช่นฉันไม่ต้องการใช้ระบบปฏิบัติการใด ๆ

สำหรับสิ่งที่ฉันมีดาวน์โหลดเคอร์เนล, target_fs, เฟิร์มแวร์และเครื่องมือโซ่จาก GitHub อย่างเป็นทางการ ฉันได้รวบรวมเคอร์เนลโดยใช้เครื่องมือโซ่

ตอนนี้ฉันไม่ทราบวิธีนำสิ่งนี้ไปยัง sdcard ใหม่ (จัดรูปแบบเพื่อเริ่มต้นใหม่) ทุกสิ่งที่ฉันต้องระวังก่อนที่จะบูทสแต็คของฉัน? เนื่องจากฉันไม่ได้ใส่ ssh หรือ telnet เซิร์ฟเวอร์ / ไคลเอนต์ฉันจะรู้ได้อย่างไรว่าการบูทสำเร็จ ฉันจะรับ ssh / telnet daemon สำหรับ pi ได้ที่ไหน เป้าหมายของฉันคือการบูตเคอร์เนลเท่านั้น (หรือขั้นต่ำเปล่า) ใน Raspberry Pi


2
นี่เป็นภารกิจที่ยากมากและฉันคิดว่าคุณยังมีประสบการณ์ไม่เพียงพอ ถือว่าเป็นเพียงการปรับการกระจายที่มีอยู่และประหยัด 99% ของเวลา?
Thorbjørn Ravn Andersen

ฉันรู้ว่ามันค่อนข้างเก่า แต่เมื่อเร็ว ๆ นี้ฉันได้เรียนรู้เกี่ยวกับ MLL ซึ่งเป็นอีกวิธีหนึ่งในการสร้างระบบปฏิบัติการ Linux ขั้นต่ำ ในฐานะที่เป็น Neophite Linux ตัวเองฉันพบ MLL เป็นเครื่องมือในการเรียนรู้กระบวนการ ฉันกำลังค้นคว้ากระบวนการที่จะรวมไดรเวอร์ Raspberry Pi ในการสร้าง MLL minimal.linux-bg.org/#home ขอให้โชคดี!
Rob

คำตอบ:


9

เคอร์เนลต้องการสองสิ่ง: ระบบไฟล์รูทและinitdaemon ที่อยู่บนมัน init ที่มาพร้อมกับ raspbian เป็นระบบสไตล์ sysV คุณไม่ได้เชื่อมโยงกับ - ระบบเริ่มต้นอื่น ๆ ที่ใช้กับ linux (โปรดจำไว้ว่า: เคอร์เนลคือ linux ) คือsystemdและupstart- แต่คุณต้องมีระบบ init ในบางประเภท

นอกจากนี้คุณยังสามารถใส่initในinitramfsและมีมันสร้างขึ้นใน kernelซึ่งในกรณีนี้คุณอาจได้รับไปโดยไม่ระบบแฟ้มราก แต่ที่ดูเหมือนไม่มีจุดหมายในกรณีนี้

initเป็นแอปพลิเคชัน userland เดียวที่เริ่มต้นโดยเคอร์เนล โดยปกติจะเริ่มต้นกระบวนการที่เปิด ttys ด้วยการล็อกอินและจากนั้นบริการอื่น ๆ ที่อาจเริ่มต้นตัวจัดการการแสดงผล sshd ฯลฯ คุณอาจไม่จำเป็นต้องเข้าสู่ระบบ แต่คุณอาจต้องการ tty; คุณสามารถเริ่ม sshd ได้โดยตรงแทน

ฉันจะรับ ssh / telnet daemon สำหรับ pi ได้ที่ไหน

รับได้จากที่เดียวที่ราสเบียนทำแหล่งต้นน้ำ ไม่มีสิ่งนี้ถูกเขียนขึ้นเป็นพิเศษสำหรับปี่ หรืออย่างน้อยก็น้อยมาก มันถูกใช้ในระบบต่าง ๆ มากมาย

ถ้าคุณต้องการคอมไพล์ล่วงหน้าสำหรับไพอลนั่นคือราสเบียน ฯลฯ1

ฉันไม่ทราบวิธีนำสิ่งนี้ไปยัง sdcard ใหม่

คุณจะต้องใช้ bootloader เฉพาะ pi ซึ่งอยู่ใน/bootพาร์ทิชันของภาพ raspbian


1. เพื่อที่จะซื่อสัตย์อย่างไร้ความปราณีฉันคิดว่าคุณอยู่ในการสืบเสาะหาความสำราญอย่างหนาแน่นซึ่งตามความรู้ที่บ่งบอกถึงคำถามของคุณคุณแทบไม่มีความหวังที่จะประสบความสำเร็จในปีนี้เว้นแต่ว่าคุณจะลาออกจากงานของคุณ แม้ว่าโอกาสของความล้มเหลวของคุณจะสูงมากและคุณต้องใช้เวลาหลายเดือนกว่าจะถึงจุดที่คุณมีโอกาสประสบความสำเร็จ มันไม่ง่าย มันไม่ง่ายเลย. ที่กล่าวว่าแม้ว่าคุณจะล้มเหลวคุณอาจจะได้เรียนรู้สิ่งที่มีประโยชน์ตลอดทาง อย่างไรก็ตามเวลาอาจจะดีกว่าที่จะเรียนรู้ที่จะเข้าใจการกระจายที่มีอยู่ (เช่น raspbian) และวิธีใช้เพื่อสร้างระบบอัตโนมัติภายในบ้านของคุณ


1
เพ้อฝัน ? คุณเป็นคนเดียวที่ฉันรู้ว่าใครท้าทายคำศัพท์ของฉันเป็นประจำ +1 สำหรับสิ่งนั้น
Jacobm001

7

สำหรับการเริ่มต้นฉันคิดว่าคุณมีความคิดที่ผิดในการใช้คอมพิวเตอร์ฝังตัว (โดยเฉพาะในระดับ Raspberry Pi) หากคุณต้องการสร้างระบบปฏิบัติการที่กำหนดเองฉันขอแนะนำให้คุณเริ่มต้นที่ Linux จาก Scratch, LFS, http://www.linuxfromscratch.org/แต่ถ้าคุณต้องการทำความเข้าใจกับการคำนวณแบบฝังที่เริ่มต้นโดย Googling "ระบบฝังตัว" Wikipedia หรือ Embedded ลินุกซ์วิกิพีเดียhttp://elinux.org/Main_Page


1
+1 สำหรับ LFS ฉันต้องการที่จะทำในการตั้งค่าข้ามรวบรวมว่า!
goldilocks

-1

ผมมีปัญหาเดียวกัน. ฉันสร้างชุดของสคริปต์เชลล์เพื่อจุดประสงค์นั้น

http://www.dettus.net/detLFS


ยินดีต้อนรับสู่ราสเบอร์รี่ Pi! ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
Steve Robillard
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.