4P by neo 18일전 | favorite | 댓글 1개

극한의 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 부팅 시간을 줄이는 두 가지 좋은 기사 추천

  • Rasp Pi 생태계를 좋아한다면 Pi Pico W를 시도해볼 만함

  • Linux 배포판의 부팅 시간이 일반적으로 느림

    • 약한 하드웨어에서 특히 더 느림
    • MQ-Pro SBC에서도 비슷한 문제를 겪었음
    • 노트북에서도 느껴짐 (Macbooks 제외)
  • 부팅 상태를 유지하고 저전력 마이크로컨트롤러를 사용하는 것이 좋음

    • 105mA는 적절한 전력 소비가 아님
  • Circle이 커널보다 빠르게 부팅될 수 있을 것 같았으나, MIPI 카메라를 지원하지 않음

  • Pi를 사용해 지능형 트레일 카메라를 만들려고 했음

    • 시작 시간이 중요함
    • 전력 사용을 줄이는 것이 매우 좋음