Trình tải khởi động tốt nhất cho bảng Linux nhúng là gì?


7

Tôi đang thiết kế một bảng Linux nhúng để sử dụng như một bộ điều khiển dựa trên web. Nó sẽ dựa trên Atmel AT91SAM9G20, sử dụng lõi ARM926EJ-S. Bất cứ ai cũng có kinh nghiệm đặc biệt tốt hoặc xấu với bộ nạp khởi động? Nhìn rộng hơn, tôi nên xây dựng / chọn phân phối Linux cho bảng này như thế nào?


Tôi có nhiều trải nghiệm tồi với bộ tải khởi động, lời khuyên của Toby là kém nhất: sử dụng bất cứ thứ gì được sử dụng phổ biến nhất cho phần cứng đó vì hy vọng nó sẽ được hỗ trợ tốt hơn / hiểu rõ hơn (và "tốt hơn" là một thuật ngữ tương đối).
John U

Câu trả lời:


8

Cả bộ tải khởi động và phân phối Linux đều phụ thuộc vào ứng dụng cuối cùng của bạn là gì.

RedBoot và uBoot đều là bộ tải khởi động phổ biến cho Linux nhúng. Chúng hỗ trợ ghi vào flash, tải mã qua serial / ethernet, v.v. Nhưng, đối với một thiết bị được nhúng sâu, một trình tải rất tối thiểu có thể tốt hơn, để lại mọi thứ khác cho linux.

Nếu bạn cần truy cập vào nhiều gói phần mềm, bạn có thể thử cổng ARM của Debian. Đối với bất cứ điều gì khác, tôi khuyên dùng OpenEmbedded hoặc Buildroot - cả hai đều là các hệ thống xây dựng có thể định cấu hình để tạo hạt nhân linux và hệ thống tệp chỉ với những gì bạn cần và không có gì khác.


Cảm ơn bạn về thông tin. Bạn đã đề cập đến "một trình tải rất tối thiểu" như là một thay thế. Bạn đang đề nghị tôi tự viết, hay có bộ tải khởi động đơn giản hơn RedBoot và uBoot? Ngoài ra, bất kỳ ưu tiên giữa hai? (Tôi hơi nghiêng về uBoot, vì tôi có thêm một chút kinh nghiệm với nó.) Tôi cũng sẽ quan tâm đến bất kỳ trải nghiệm nào bạn có với OpenEmbedded hoặc Buildroot. Tôi đã sử dụng Buildroot với một bảng Gumstix cũ hơn. Rằng họ chuyển sang OpenEmbedded cho thấy có thể tốt hơn.
pingswept

2
Bằng trình tải tối thiểu - vâng, ý tôi là viết một cái, đây là một cái nhìn tổng quan - simtec.co.uk/products/SWLINEUX/files/boote_article.html OpenEmbedded có vẻ tốt hơn để xây dựng các gói có thể được cài đặt trong thời gian chạy, Buildroot rất tốt cho việc nhúng tĩnh hệ thống. Mặc dù vậy, tôi đã không sử dụng một vài năm ...
Toby Jaffey

4

Tôi nghĩ rằng đặt cược tốt nhất của bạn cho bộ tải khởi động là U-Boot Nó có một cổng cho bộ xử lý mà bạn đang tìm kiếm trong thư mục "vòm" của nó và có lẽ nó là một trong những bộ tải khởi động phổ biến nhất. Bạn có thể xem xét thư mục bảng atmel của nguồn để biết ý tưởng về cách định cấu hình mã xung quanh chip của bạn.


3

Tôi đã sử dụng U-Boot trước đây và nó khá tốt, rất linh hoạt. Bạn nên liên hệ với Atmel để xem SDK nào họ cung cấp. Nếu bạn có không gian trong Flash thì Debian là một lựa chọn tốt. Nó khá lớn nhưng việc có thể cài đặt một gói với "apt-get" đơn giản dễ dàng hơn nhiều so với việc bạn phải tự mình thử và biên dịch nó. Tôi sử dụng TIAM335x cho các dự án của mình và mọi người trong cộng đồng BeagleBone thậm chí đã tạo ra các kho lưu trữ tar có sẵn của Debian đã được biên dịch chéo cho ARM. Cài đặt hệ thống tập tin gốc sau đó đơn giản như việc gỡ bỏ kho lưu trữ được cung cấp.


3

Tôi chưa có nhiều kinh nghiệm với bộ nạp khởi động, nhưng tôi có thể trả lời câu hỏi này:

Làm thế nào tôi nên đi xây dựng / chọn một bản phân phối Linux cho bảng này?

Bạn chắc chắn nên sử dụng Debian làm nền tảng cho hệ thống của mình, vì đó là Linux linh hoạt nhất từ ​​trước đến nay . Nó có một bộ sưu tập gói (ứng dụng) lớn cho ARM và các kiến ​​trúc khác.

Có một số bản phân phối dành riêng cho ARM, nhưng sau 3 năm loay hoay với các thiết bị như Raspberry, BeagleBone, v.v. - Tôi cảm thấy Debian có nhiều gói hoạt động trên ARM hơn các bản phân phối chuyên biệt của ARM.


3
Đồng ý với Kamil ở đây, Debian đã thực hiện tất cả công việc khó khăn trong việc biên dịch chéo tất cả các gói, vì vậy việc cài đặt các gói mới là chính sự đơn giản. Khi bạn có Debian thì việc phát triển trên mục tiêu cũng dễ như phát triển trên PC đầy đủ.
fret basset
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.