GN⁺: 극한의 Pi 부팅 최적화
(kittenlabs.de)극한의 Pi 부팅 최적화
동기
- SolarCamPi 프로젝트는 오프그리드 태양광 WiFi 카메라를 구축하는 프로젝트임.
- Raspberry Pi Zero 2 W를 사용하여 Linux로 부팅하고, 사진을 찍고, WiFi 연결을 설정한 후 전원을 끄는 작업을 반복함.
- 태양광 장치에서 전력은 귀중한 자원이므로, 부팅 시간을 줄여 전력 소비를 최소화하는 것이 중요함.
하드웨어 설정
- 임베디드 부팅 프로세스를 최적화할 때 짧은 사이클 시간이 중요함.
- 여러 유용한 도구들이 있음:
- Nordic Power Profiler Kit II
- USB-SD-Mux
- USB-UART 변환기
측정 / 테스트 설정
- Debian 12 (bookworm) arm64 Lite 이미지에서 /boot/firmware/cmdline.txt 파일을 수정하여 init=/init.sh를 포함시킴.
- init.sh 스크립트는 GPIO4를 토글하고, 정상 부팅을 재개함.
전류 감소
- HDMI 비활성화: 전류 소비를 136.7mA에서 122.6mA로 줄임.
- 활동 LED 비활성화: 2mA 절약.
- 카메라 LED 비활성화: 반사 방지 및 전류 절약.
- 터보 모드 조정: 터보 모드를 비활성화하여 1.58As 사용.
시간 감소
- 부팅 과정에서 HDMI 프로빙 비활성화: EDID 정보를 하드코딩하여 시간 절약.
- HAT, PoE 및 LCD 프로빙 비활성화: I2C 응답 대기 시간을 줄임.
- 카메라 및 디스플레이 프로빙 비활성화: IMX477 센서를 수동으로 로드.
- initramfs 비활성화: 부팅 시간을 5.38s에서 4.47s로 줄임.
커널 로드
- 커널 로드가 가장 느린 작업 중 하나임.
- GPU 프로세서 코어 오버클럭: 커널 로드 시간을 20% 감소시킴.
- 커스텀 Buildroot 배포로 시스템 마이그레이션: 커널 크기를 줄이고, 불필요한 기능을 제거함.
최종 결과
- Linux 사용자 공간 프로그램을 3.5초 이내에 부팅 가능.
- 총 에너지 소비: 0.364 As * 5.0 V = 1.82 Ws.
- 기본 Debian 대비 에너지 소비를 5배 줄임.
GN⁺의 정리
- 이 기사는 Raspberry Pi의 부팅 시간을 최적화하여 전력 소비를 줄이는 방법을 다룸.
- 태양광 전원 장치와 같은 제한된 전력 환경에서 매우 유용함.
- 비슷한 기능을 가진 프로젝트로는 OpenWRT, Tiny Core Linux 등이 있음.
- 부팅 시간을 줄이는 다양한 방법을 제시하여 임베디드 시스템 최적화에 관심 있는 사람들에게 유익함.
Hacker News 의견
-
rpi 제품군의 전력 문제가 약점임. 새로운 pico 2가 이를 개선할 것으로 기대됨
- Google Coral mini를 사용해 카메라를 제작했으나, HQ 카메라 지원이 부족했음
- rpi 생태계가 더 성숙하고 미래의 가용성도 더 신뢰할 수 있음
- 다음 버전 카메라를 rpi로 제작하고 더 큰 배터리를 사용했음
- 남은 Coral mini와 카메라를 처리할 방법을 찾고 있음
-
커스텀 커널이 늦게 나온 이유가 궁금함
- 최적화를 원한다면 LFS나 소스 기반 배포판을 사용하는 것이 좋을 것 같음
- EFI/BIOS 최적화가 가능할지 궁금함
- Arch Linux 데스크탑에서 부팅 시간이 많이 걸림
-
CPU 터보를 비활성화하는 것이 전력 소비를 줄이는 데 나쁜 선택인지 의문임
- 클럭 주파수가 증가하면 전력 소비가 제곱으로 증가함
- 전력 차이를 측정해야 클럭 부스트의 이점이 있는지 알 수 있음
- Pi의 CPU가 세밀한 전력 소비 정보를 제공하면 좋겠음
-
다른 코어를 사용할 수 있는지, 사진을 찍고 클라우드로 전송하는 데 Linux가 필요한지 궁금함
- 최소한의 예산으로 작업을 완료하는 방법에 대해 궁금함
- 흥미로운 읽을거리였음
-
Pi 부팅 시간을 줄이는 두 가지 좋은 기사 추천
- https://www.furkantokac.com/rpi3-fast-boot-less-than-2-secon...
- http://himeshp.blogspot.com/2018/08/fast-boot-with-raspberry...
- Pi를 사용해 빠르게 부팅되는 디지털 사진 액자를 만들었음
-
Rasp Pi 생태계를 좋아한다면 Pi Pico W를 시도해볼 만함
- ESP32와 유사하지만 micropython을 사용할 수 있고 다양한 주변 장치를 지원함
- https://shop.pimoroni.com/products/raspberry-pi-pico-w?varia...
-
Linux 배포판의 부팅 시간이 일반적으로 느림
- 약한 하드웨어에서 특히 더 느림
- MQ-Pro SBC에서도 비슷한 문제를 겪었음
- 노트북에서도 느껴짐 (Macbooks 제외)
-
부팅 상태를 유지하고 저전력 마이크로컨트롤러를 사용하는 것이 좋음
- 105mA는 적절한 전력 소비가 아님
-
Circle이 커널보다 빠르게 부팅될 수 있을 것 같았으나, MIPI 카메라를 지원하지 않음
-
Pi를 사용해 지능형 트레일 카메라를 만들려고 했음
- 시작 시간이 중요함
- 전력 사용을 줄이는 것이 매우 좋음