4 Punkte von GN⁺ 2024-09-02 | 1 Kommentare | Auf WhatsApp teilen

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

 
GN⁺ 2024-09-02
Hacker-News-Kommentare
  • Das Stromproblem der rpi-Produktfamilie ist eine Schwachstelle. Es wird erwartet, dass der neue pico 2 dies verbessert.

    • Ich habe mit Google Coral mini eine Kamera gebaut, aber die Unterstützung für die HQ-Kamera war unzureichend.
    • Das rpi-Ökosystem ist ausgereifter und auch die künftige Verfügbarkeit wirkt verlässlicher.
    • Ich habe die nächste Version der Kamera mit rpi gebaut und einen größeren Akku verwendet.
    • Ich suche nach einer Möglichkeit, die übrigen Coral mini und Kameras sinnvoll zu nutzen.
  • Ich frage mich, warum der Custom-Kernel so spät erschienen ist.

    • Wenn man optimieren will, scheint es besser zu sein, LFS oder eine quellbasierte Distribution zu verwenden.
    • Ich frage mich, ob sich EFI/BIOS optimieren lässt.
    • Auf meinem Arch-Linux-Desktop dauert der Bootvorgang sehr lange.
  • Ich frage mich, ob das Deaktivieren von CPU-Turbo wirklich eine schlechte Wahl ist, um den Stromverbrauch zu senken.

    • Wenn die Taktfrequenz steigt, nimmt der Stromverbrauch quadratisch zu.
    • Man muss den Unterschied beim Stromverbrauch messen, um zu wissen, ob Clock-Boost einen Vorteil bringt.
    • Es wäre gut, wenn die CPU des Pi detaillierte Informationen zum Stromverbrauch liefern würde.
  • 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.

    • Ich frage mich, wie man die Aufgabe mit einem minimalen Budget erledigen kann.
    • Das war eine interessante Lektüre.
  • 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.

    • Besonders auf schwacher Hardware ist sie noch langsamer.
    • Ich hatte ein ähnliches Problem auch auf einem MQ-Pro SBC.
    • Auch auf Laptops merkt man das (außer bei Macbooks).
  • Es ist besser, den Boot-Zustand beizubehalten und einen stromsparenden Mikrocontroller zu verwenden.

    • 105 mA sind kein angemessener Stromverbrauch.
  • 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.

    • Die Startzeit ist wichtig.
    • Den Stromverbrauch zu senken ist sehr sinnvoll.