Làm thế nào để xây dựng hệ điều hành tùy chỉnh cho Raspberry pi từ đầu?


10

Tôi chưa quen với kernel và nhúng Linux. Gần đây tôi đã mua một Raspberry Pi và khởi động nó bằng Raspbian. Tôi đã bị cuốn hút bởi Pi, để tìm hiểu thêm về Embedded tôi đã quyết định tạo ra một hệ thống tự động hóa gia đình. Tôi muốn sử dụng kernel của riêng tôi và stack. tức là tôi không muốn sử dụng bất kỳ HĐH nào.

Vì vậy, tôi đã tải xuống Kernel, target_fs, firmware và chuỗi công cụ từ github chính thức. Tôi đã biên dịch kernel bằng chuỗi công cụ.

Bây giờ tôi không biết làm thế nào để đặt cái này vào một sdcard mới (được định dạng cho một khởi đầu mới). Tất cả những gì tôi phải chăm sóc trước khi khởi động ngăn xếp của tôi? Vì tôi chưa đặt ssh hoặc máy chủ telnet / Máy khách, làm sao tôi biết khởi động thành công. Tôi có thể lấy ssh / telnet daemon cho pi ở đâu? Mục đích của tôi là chỉ khởi động kernel (hoặc tối thiểu) trong Raspberry Pi.


2
Đây là một nhiệm vụ mạnh mẽ và tôi không nghĩ bạn đã có đủ kinh nghiệm. Được coi là chỉ điều chỉnh một phân phối hiện có và tiết kiệm 99% thời gian?
Thorbjørn Ravn Andersen

Tôi nhận ra điều này hơi cũ, tuy nhiên gần đây tôi đã biết về MLL, đây là một cách khác để xây dựng một hệ điều hành Linux tối thiểu. Là một người khai thác Linux, tôi đã tìm thấy công cụ MLL trong quá trình tìm hiểu quy trình. Tôi hiện đang nghiên cứu quy trình bao gồm các trình điều khiển Raspberry Pi trong bản dựng. MLL Minimal.linux-bg.org/#home Chúc may mắn!
Cướp

Câu trả lời:


9

Hạt nhân mong đợi hai điều: một hệ thống tập tin gốc và một initdaemon nằm trên nó. Các init đi kèm với raspbian là một hệ thống kiểu sysV . Bạn không bị ràng buộc với điều đó - các hệ thống init khác thường được sử dụng với linux (hãy nhớ: kernel linux ) systemdupstart- nhưng bạn cần một hệ thống init nào đó.

Bạn cũng có thể đặt initmột initramfs và tích hợp nó vào kernel , trong trường hợp đó bạn có thể thoát khỏi mà không cần hệ thống tập tin gốc, nhưng điều đó dường như vô nghĩa trong trường hợp này.

initlà ứng dụng userland duy nhất được khởi động bởi kernel. Thông thường, sau đó nó bắt đầu các quá trình mở ttys bằng thông tin đăng nhập và sau đó các dịch vụ khác có thể khởi động trình quản lý hiển thị, sshd, v.v. Bạn có thể không cần đăng nhập, nhưng bạn có thể muốn tty; thay vào đó bạn cũng có thể bắt đầu sshd trực tiếp.

Tôi có thể lấy ssh / telnet daemon cho pi ở đâu?

Lấy nó từ cùng một nơi mà raspbian đã làm, nguồn ngược dòng. Không có những thứ này được viết riêng cho pi. Hoặc ít nhất, rất rất ít của nó. Nó được sử dụng trên rất nhiều hệ thống khác nhau.

Nếu bạn muốn một bản được biên dịch sẵn cho pi ... tốt, đó là raspbian, v.v. 1

tôi không biết làm thế nào để đặt cái này vào một sdcard mới

Bạn sẽ phải sử dụng bộ tải khởi động dành riêng cho pi nằm trong /bootphân vùng của hình ảnh raspbian.


1. Thành thật mà nói, tôi nghĩ rằng bạn đang thực hiện một nhiệm vụ quixotic ồ ạt, dựa trên kiến ​​thức ngụ ý trong câu hỏi của bạn, bạn hầu như không có hy vọng hoàn thành trong năm nay trừ khi bạn bỏ việc và dành hết thời gian cho việc học, và thậm chí sau đó cơ hội thất bại của bạn là rất cao và bạn sẽ mất nhiều tháng để đạt đến điểm mà bạn có bất kỳ cơ hội thành công nào. Nó không đơn giản. Nó không phải là dễ dàng. Điều đó nói rằng, ngay cả khi bạn thất bại, bạn có thể sẽ học được một số điều hữu ích trên đường đi. Tuy nhiên, thời gian có thể tốt hơn dành cho việc học cách hiểu một bản phân phối hiện có (chẳng hạn như raspbian) và cách sử dụng nó để tạo ra hệ thống tự động hóa nhà của bạn.


1
tinh túy ? Bạn là một trong những người duy nhất tôi biết thường xuyên thách thức từ vựng của tôi. +1 cho điều đó một mình.
Jacobm001

7

Đối với việc chỉ mới bắt đầu, tôi nghĩ bạn có khái niệm sai về việc sử dụng máy tính nhúng (đặc biệt là ở cấp độ Raspberry Pi). Nếu bạn thực sự muốn xây dựng một hệ điều hành tùy chỉnh, tôi khuyên bạn nên bắt đầu tại Linux từ Scratch, LFS, http://www.linuxfromscratch.org/ nhưng nếu bạn muốn hiểu về tính toán nhúng, hãy bắt đầu bằng "hệ thống nhúng", Wikipedia hoặc nhúng Linux Wiki http://elinux.org/Main_Page .


1
+1 cho LFS. Tôi muốn làm điều đó trong một thiết lập biên dịch chéo!
goldilocks

-1

Tôi đã từng gặp vấn đề tương tự. Tôi đã tạo ra một bộ sưu tập các kịch bản shell, với mục đích chính xác.

http://www.dettus.net/detLFS


Chào mừng đến với Raspberry Pi! Trong khi về mặt lý thuyết có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo.
Steve Robillard
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.