Tối ưu hóa khởi động Pi đến cực hạn
Động lực
- Dự án SolarCamPi là một dự án xây dựng camera WiFi dùng năng lượng mặt trời hoạt động off-grid.
- Dự án sử dụng Raspberry Pi Zero 2 W để lặp lại quy trình khởi động bằng Linux, chụp ảnh, thiết lập kết nối WiFi rồi tắt nguồn.
- Trong thiết bị dùng năng lượng mặt trời, điện năng là tài nguyên quý giá, vì vậy việc rút ngắn thời gian khởi động để giảm thiểu mức tiêu thụ điện là rất quan trọng.
Thiết lập phần cứng
- Khi tối ưu quy trình khởi động nhúng, thời gian chu kỳ ngắn là yếu tố quan trọng.
- Có một số công cụ hữu ích:
- Nordic Power Profiler Kit II
- USB-SD-Mux
- bộ chuyển đổi USB-UART
Thiết lập đo lường / kiểm thử
- Trên ảnh Debian 12 (bookworm) arm64 Lite, chỉnh sửa tệp /boot/firmware/cmdline.txt để thêm
init=/init.sh.
- Script init.sh sẽ bật/tắt GPIO4 rồi tiếp tục quá trình khởi động bình thường.
Giảm dòng điện
- Tắt HDMI: giảm mức tiêu thụ dòng điện từ 136.7mA xuống 122.6mA.
- Tắt LED hoạt động: tiết kiệm 2mA.
- Tắt LED camera: chống phản xạ và tiết kiệm dòng điện.
- Điều chỉnh chế độ turbo: tắt chế độ turbo để dùng 1.58As.
Giảm thời gian
- Tắt probing HDMI trong quá trình khởi động: hard-code thông tin EDID để tiết kiệm thời gian.
- Tắt probing HAT, PoE và LCD: giảm thời gian chờ phản hồi I2C.
- Tắt probing camera và màn hình: nạp thủ công cảm biến IMX477.
- Tắt initramfs: giảm thời gian khởi động từ 5.38s xuống 4.47s.
Tải kernel
- Tải kernel là một trong những tác vụ chậm nhất.
- Overclock lõi xử lý GPU: giảm thời gian tải kernel 20%.
- Di chuyển hệ thống sang bản phân phối Buildroot tùy chỉnh: giảm kích thước kernel và loại bỏ các tính năng không cần thiết.
Kết quả cuối cùng
- Có thể khởi động chương trình không gian người dùng Linux trong vòng dưới 3.5 giây.
- Tổng mức tiêu thụ năng lượng: 0.364 As * 5.0 V = 1.82 Ws.
- Giảm mức tiêu thụ năng lượng xuống 5 lần so với Debian mặc định.
Tóm tắt của GN⁺
- Bài viết này nói về cách tối ưu thời gian khởi động của Raspberry Pi để giảm tiêu thụ điện năng.
- Rất hữu ích trong các môi trường điện năng hạn chế như thiết bị chạy bằng năng lượng mặt trời.
- Các dự án có chức năng tương tự gồm OpenWRT, Tiny Core Linux, v.v.
- Bài viết đưa ra nhiều cách rút ngắn thời gian khởi động, hữu ích cho những ai quan tâm đến tối ưu hệ thống nhúng.
1 bình luận
Ý kiến trên Hacker News
Vấn đề về điện năng của dòng sản phẩm rpi là một điểm yếu. Hy vọng pico 2 mới sẽ cải thiện được điều này
Tò mò vì sao kernel tùy chỉnh lại ra muộn
Tự hỏi việc vô hiệu hóa CPU turbo có phải là lựa chọn tệ để giảm mức tiêu thụ điện năng hay không
Tò mò liệu có thể dùng lõi khác hay không, và việc chụp ảnh rồi gửi lên đám mây có thực sự cần Linux không
Giới thiệu hai bài viết hay về việc giảm thời gian khởi động Pi
Nếu thích hệ sinh thái Rasp Pi thì Pi Pico W đáng để thử
Thời gian khởi động của các bản phân phối Linux nhìn chung là chậm
Tốt hơn là giữ nguyên trạng thái khởi động và dùng vi điều khiển công suất thấp
Từng nghĩ Circle có thể khởi động nhanh hơn kernel, nhưng nó không hỗ trợ camera MIPI
Đã định dùng Pi để tạo một camera bẫy đường mòn thông minh