Extreme Pi-Boot-Optimierung
Motivation
- Das SolarCamPi-Projekt baut eine netzunabhängige solarbetriebene WiFi-Kamera.
- Es verwendet einen Raspberry Pi Zero 2 W, der unter Linux bootet, ein Foto aufnimmt, eine WiFi-Verbindung herstellt und sich dann wieder ausschaltet – immer wieder.
- Bei einem Solargerät ist Strom eine wertvolle Ressource, daher ist es wichtig, die Bootzeit zu verkürzen, um den Stromverbrauch zu minimieren.
Hardware-Setup
- Bei der Optimierung eingebetteter Boot-Prozesse sind kurze Zykluszeiten wichtig.
- Es gibt mehrere nützliche Werkzeuge:
- Nordic Power Profiler Kit II
- USB-SD-Mux
- USB-UART-Konverter
Mess-/Test-Setup
- Im Debian-12-(bookworm)-arm64-Lite-Image wird die Datei
/boot/firmware/cmdline.txt geändert, um init=/init.sh einzubinden.
- Das Skript
init.sh toggelt GPIO4 und setzt dann den normalen Boot-Vorgang fort.
Stromverbrauch senken
- HDMI deaktivieren: senkt den Stromverbrauch von 136.7mA auf 122.6mA.
- Aktivitäts-LED deaktivieren: spart 2mA.
- Kamera-LED deaktivieren: verhindert Reflexionen und spart Strom.
- Turbo-Modus anpassen: Das Deaktivieren des Turbo-Modus verbraucht 1.58As.
Zeit verkürzen
- HDMI-Probing im Boot-Prozess deaktivieren: EDID-Informationen fest einkodieren, um Zeit zu sparen.
- HAT-, PoE- und LCD-Probing deaktivieren: verkürzt die Wartezeit auf I2C-Antworten.
- Kamera- und Display-Probing deaktivieren: den IMX477-Sensor manuell laden.
- initramfs deaktivieren: reduziert die Bootzeit von 5.38s auf 4.47s.
Kernel laden
- Das Laden des Kernels ist eine der langsamsten Aufgaben.
- GPU-Prozessorkern übertakten: reduziert die Kernel-Ladezeit um 20%.
- Das System auf eine benutzerdefinierte Buildroot-Distribution migrieren: verkleinert den Kernel und entfernt unnötige Funktionen.
Endergebnis
- Linux-User-Space-Programme können in weniger als 3.5 Sekunden gebootet werden.
- Gesamter Energieverbrauch: 0.364 As * 5.0 V = 1.82 Ws.
- Im Vergleich zu Standard-Debian wird der Energieverbrauch um das Fünffache reduziert.
Zusammenfassung von GN⁺
- Dieser Artikel behandelt Methoden zur Optimierung der Bootzeit eines Raspberry Pi, um den Stromverbrauch zu senken.
- Das ist besonders nützlich in Umgebungen mit begrenzter Stromversorgung wie solarbetriebenen Geräten.
- Projekte mit ähnlicher Funktionalität sind unter anderem OpenWRT und Tiny Core Linux.
- Er stellt verschiedene Wege zur Verkürzung der Bootzeit vor und ist damit hilfreich für alle, die sich für die Optimierung eingebetteter Systeme interessieren.
1 Kommentare
Hacker-News-Kommentare
Das Stromproblem der rpi-Produktfamilie ist eine Schwachstelle. Es wird erwartet, dass der neue pico 2 dies verbessert.
Ich frage mich, warum der Custom-Kernel so spät erschienen ist.
Ich frage mich, ob das Deaktivieren von CPU-Turbo wirklich eine schlechte Wahl ist, um den Stromverbrauch zu senken.
Ich frage mich, ob man andere Kerne verwenden kann und ob für das Aufnehmen von Fotos und das Übertragen in die Cloud Linux nötig ist.
Zwei gute Artikel dazu, wie man die Bootzeit des Pi verkürzt
Wenn man das Rasp-Pi-Ökosystem mag, könnte man den Pi Pico W ausprobieren.
Die Bootzeit von Linux-Distributionen ist im Allgemeinen langsam.
Es ist besser, den Boot-Zustand beizubehalten und einen stromsparenden Mikrocontroller zu verwenden.
Circle schien schneller booten zu können als der Kernel, unterstützt aber keine MIPI-Kamera.
Ich wollte mit einem Pi eine intelligente Trail-Kamera bauen.