# 극한의 Pi 부팅 최적화

> Clean Markdown view of GeekNews topic #16576. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=16576](https://news.hada.io/topic?id=16576)
- GeekNews Markdown: [https://news.hada.io/topic/16576.md](https://news.hada.io/topic/16576.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-09-02T13:34:28+09:00
- Updated: 2024-09-02T13:34:28+09:00
- Original source: [kittenlabs.de](https://kittenlabs.de/blog/2024/09/01/extreme-pi-boot-optimization/)
- Points: 4
- Comments: 1

## Topic Body

### 극한의 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 등이 있음.
- 부팅 시간을 줄이는 다양한 방법을 제시하여 임베디드 시스템 최적화에 관심 있는 사람들에게 유익함.

## Comments



### Comment 28489

- Author: neo
- Created: 2024-09-02T13:34:29+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=41420597) 
- 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 카메라를 지원하지 않음
  - https://github.com/rsta2/circle

- Pi를 사용해 지능형 트레일 카메라를 만들려고 했음
  - 시작 시간이 중요함
  - 전력 사용을 줄이는 것이 매우 좋음
