Làm cách nào để cải thiện thời gian khởi động Raspberry Pi?


15

Tôi đang tạo một thiết bị gia dụng sử dụng Raspberry Pi trong nội bộ để xử lý giao diện người dùng và kết nối WiFi cần thiết. Đã kết nối với R-Pi Tôi có màn hình LCD AdaFnut:

Màn hình LCD

và một USB Wifi dongle:

USB WiFi

Và cũng là một bàn phím. Không có gì khác. Hệ điều hành là OpenElec , đây là một hệ điều hành khá mỏng.

Tuy nhiên, khi người dùng bật thiết bị, R-Pi mất nhiều giây trước khi có thể chấp nhận đầu vào của người dùng.

Tại sao phải mất nhiều thời gian nếu nó khởi động flash? Hàng chục giây có vẻ như là một tính toán tuyệt vời.

Có điều gì có thể được thực hiện để khởi động Raspberry Pi trong vòng dưới 5 giây không? Họ có thể chuyển sang chế độ ngủ đông nào đó để ghi RAM vào FLASH, sau đó đọc lại khi bật nguồn không?

Mặt khác, có một giải pháp thay thế cho Raspberry-Pi, với các khả năng tương tự (màn hình LCD nhỏ, USB cho khóa WiFi), có thể khởi động trong vòng dưới 5 giây?


Câu hỏi tuyệt vời, bạn có thể ghi lại nhật ký khởi động và liên kết với nó không? Không thể làm gì nhiều khi biết những gì nó đang làm trong khi khởi động;)
MDMoore313

2
Nó khởi động cái gì? Bạn có đang chạy một hệ điều hành tối thiểu và tước nó xuống xương - không có máy tính để bàn, v.v. ??
Scott Seidman

2
@ScottSeidman - Đã thêm OpenElec vào câu hỏi của tôi.

1
Tôi đồng ý với @BigHomie. Không hoàn toàn có thể đề xuất bất kỳ cải tiến nào mà không nhìn thấy những gì đang diễn ra trong quá trình khởi động.

1
@NickAlexeev - Aah, vấn đề Stackexchanges chồng chéo cũ. Tôi đoán tất cả các câu hỏi R-Pi sẽ có chủ đề ở đó.

Câu trả lời:


13

Tôi chưa làm việc với Raspberry Pi, nhưng tôi đã giảm thời gian khởi động với các hệ thống nhúng Linux nên tôi có một số câu trả lời chung.

1) Mở Vì vậy, hãy tìm trong các thư mục init và tắt hoặc trì hoãn bất cứ thứ gì không cần thiết cho mục đích của bạn. Nếu bạn không cần bất kỳ thứ đồ họa nào, trên các hệ thống chậm hơn, cửa sổ X hoặc các quy trình đồ họa có thể là những trò chơi thời gian thực. Không nhất thiết bởi vì nó không thể tạo ra đồ họa đầy đủ, nhưng để tất cả các thư viện được tải vào bộ nhớ cần có thời gian. Và phải mất thời gian từ tải khi mọi thứ khác bạn muốn cũng đang tải hoặc chờ tải.

2) Thẻ SD có tốc độ đọc khác nhau, hãy mua thẻ nhanh nhất mà thiết bị có thể xử lý. Hoặc có thể xem nếu một thanh USB sẽ tải nhanh hơn. Bạn có thể sẽ không cần thẻ 40Mb / giây, nhưng việc chuyển từ thẻ SD giá rẻ sang thẻ có thể xử lý chuyển 10Mb / giây có thể tạo ra sự khác biệt - một lần nữa tùy thuộc vào loại thẻ SD mà Pi có thể xử lý). Như một tiếp tuyến: chạy ra khỏi thẻ SD nếu hệ thống tập tin có thể ghi được không tốt cho sự ổn định lâu dài. Nếu bạn cần điều đó, bạn có thể cần xem xét việc định cấu hình cài đặt khởi động của mình để coi thẻ là chỉ đọc hoặc thực hiện các sắp xếp hệ thống khác hoàn toàn.

3) Nếu bạn thực sự cần đồ họa, ảo tưởng về việc khởi động đôi khi dễ dàng hơn để thực sự sẵn sàng 100% cho bất kỳ đầu vào nào. Có các chương trình màn hình khởi động bàn điều khiển có thể tạo ra một đồ họa thực sự nhanh chóng trong khi tất cả các dịch vụ khác bạn cần khởi động. Tôi đã thấy các trường hợp trong đó đồ họa bảng điều khiển ban đầu được sử dụng làm màn hình khởi động tĩnh được hoán đổi để hoạt động trực tiếp khi hệ thống sẵn sàng - người dùng hiếm khi thực sự muốn nhập dữ liệu trong vòng 2-3 giây màn hình hiển thị lên.

Nếu bạn vẫn đang tìm kiếm thời gian khởi động nhanh hơn, hãy xem ở đây để xem danh sách các khu vực cần xem xét.


2
Đặc biệt tập trung vào điểm 2. Khởi động kernel và script init mất khoảng 30: 70% thời gian khởi động tương ứng. Hạt nhân tùy chỉnh sẽ bắt đầu nhanh hơn 40%, tập lệnh khởi động tùy chỉnh có thể cải thiện 90% khi có bản gốc, nghĩa là bạn có thể dễ dàng giảm một nửa thời gian khởi động.
SF.

Bạn hoàn toàn đúng, tôi đã trao đổi # 1 và # 2 vì tôi dành thời gian với các script init trước mọi thứ khác.

8

Tại sao phải mất nhiều thời gian nếu nó khởi động flash?

Một phần của câu trả lời có thể là một vấn đề về thông lượng tuyệt đối. Mặc dù Thẻ SD sử dụng bộ lưu trữ flash NAND, nhưng chúng chỉ có thể truyền dữ liệu một cách an toàn. So với, một chip flash NAND được hàn vào bo mạch có thể giao tiếp trực tiếp với CPU bằng một bus song song. Tốc độ truyền tổng thể sẽ phụ thuộc vào một số thứ như tốc độ xung nhịp của xe buýt và kích thước của các tệp bạn đang chuyển.

Tốc độ truyền của thẻ SD thực sự khá thấp so với ổ cứng SATA III hoặc thậm chí là SATA II hiện đại. Thiếu cổng SATA, USB 3.0 là một giải pháp thay thế khác có tốc độ truyền khá cao với chi phí tương đối thấp.

Thông tin thêm có thể được tìm thấy ở đây , ở đâyở đây .

Có điều gì có thể được thực hiện để khởi động Raspberry Pi trong vòng dưới 5 giây không?

CPU mà Pi sử dụng là khá thấp (do đó là giá). Điều này có nghĩa là nó thiếu các giao diện tốc độ cao như SATA hoặc USB 3.0. Thiếu phần mềm mô phỏng các giao thức này (cũng có thể sẽ gặp phải các vấn đề thông lượng lớn) không có gì có thể làm được ngoài việc cắt giảm chất béo từ HĐH.

Họ có thể chuyển sang chế độ ngủ đông nào đó để ghi RAM vào FLASH, sau đó đọc lại khi bật nguồn không?

Theo OpenElec, Pi không hỗ trợ chế độ ngủ đông , nhưng nếu bạn đọc sâu hơn một chút, họ có một số lời khuyên về cách tăng tốc độ Pi của bạn .


3

Nói chung, đọc từ SD rất chậm nên ảnh hưởng mạnh mẽ.

Hãy thử bootchart và tìm hiểu xem liệu có bất kỳ điểm nào để cải thiện thời gian khởi động.

Hoặc, bạn có thể cấu hình kernel của riêng mình để nó có kích thước rất nhỏ. Hoặc, bỏ qua một số khởi tạo không cần thiết (tra cứu lẻ hoặc một cái gì đó) có thể giúp đỡ.


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.