Zum Inhalt springen
SONOYA.com
Raspberry Pi & Linux

Raspberry Pi 5: Unterspannung und das richtige Netzteil

Unterspannung am Raspberry Pi 5 erkennen: vcgencmd get_throttled Bit für Bit dekodiert, die 5-A-Regel erklärt, usb_max_current_enable richtig genutzt.

Von

Blitzsymbol auf dunkelrotem Verlauf als Zeichen für Unterspannung und zu schwache Stromversorgung am Raspberry Pi 5

Dein Raspberry Pi 5 meldet eine Unterspannung, die USB-SSD verschwindet mitten im Kopieren, oder der Desktop beschwert sich, dass das Netzteil keine 5 Ampere liefern kann. Hinter diesen Meldungen stecken zwei verschiedene Probleme, die sich ähnlich anfühlen, aber unterschiedlich gelöst werden: ein Netzteil, das sich beim Pi nur als 3-Ampere-Netzteil anmeldet, und eine Spannung, die unter Last tatsächlich einbricht.

Diese Anleitung zeigt Dir, wie Du beides auseinanderhältst, wie Du vcgencmd get_throttled vollständig dekodierst und was Du dann konkret tust. Sie gilt für den Raspberry Pi 5 und den Pi 500 mit Raspberry Pi OS auf Basis von Debian 13 „Trixie“, Stand der offiziellen Dokumentation ist November 2026.

Warum der Pi 5 ausgerechnet 5 Ampere will

Der Pi 5 läuft ausschließlich mit rund 5 Volt. Beim Einstecken fragt er das Netzteil per USB Power Delivery, wie viel Strom es bei dieser Spannung liefern kann. Das offizielle 27-W-Netzteil bietet 5,1 Volt bei 5 Ampere an. Fast alle anderen USB-C-Netzteile, auch starke Laptop-Ladegeräte mit 65 oder 100 Watt, liefern bei 5 Volt dagegen höchstens 3 Ampere. Ihre Leistung steckt in höheren Spannungen, mit denen der Pi nichts anfangen kann.

Kann der Pi 5 keine 5 Ampere aushandeln, dürfen laut der Dokumentation zur Stromversorgung alle USB-Anschlüsse zusammen nur noch 600 mA abgeben statt 1,6 A, und das Starten von einem USB-Laufwerk ist standardmäßig abgeschaltet. Der Pi selbst läuft normal weiter, deshalb fällt das Problem oft erst bei der ersten USB-SSD auf.

Echte Unterspannung ist etwas anderes. Fällt die Versorgungsspannung unter 4,63 Volt (±5 %), drosselt der Pi CPU und GPU und schreibt eine Warnung ins Kernel-Protokoll. Ursache sind ein schwaches Netzteil, ein zu dünnes Kabel oder zu viele stromhungrige Geräte. Laut Raspberry Pi kann das Daten auf dem Speichermedium beschädigen.

Prüfen, was das Netzteil ausgehandelt hat

Zuerst klärst Du, ob der Pi überhaupt mit 5 Ampere rechnet. Diesen Befehl führst Du im Terminal oder per SSH aus:

Code
vcgencmd get_config usb_max_current_enable

Steht in der Ausgabe usb_max_current_enable=1, ist die volle USB-Leistung freigegeben. Bei usb_max_current_enable=0 hat der Pi ein schwächeres Netzteil erkannt und begrenzt die USB-Anschlüsse auf 600 mA.

Den Wert, den das Netzteil gemeldet hat, legt die Firmware in Milliampere im Device Tree ab. Er ist binär gespeichert, od macht ihn lesbar:

Code
od -An -tu4 --endian=big /proc/device-tree/chosen/power/max_current

Mit dem offiziellen Netzteil erscheint 5000, mit einem gewöhnlichen USB-C-Netzteil meist 3000.

Unterspannung erkennen mit vcgencmd get_throttled

Ob es Unterspannung gab, verrät dieser Befehl:

Code
vcgencmd get_throttled

Die Antwort sieht etwa so aus: throttled=0x50005. Der Wert ist ein Bitmuster, und jedes gesetzte Bit hat laut der offiziellen Beschreibung von vcgencmd eine feste Bedeutung:

BitHex-WertBedeutung
00x1Unterspannung erkannt (jetzt)
10x2CPU-Takt (Arm) begrenzt (jetzt)
20x4Gedrosselt (jetzt)
30x8Weiches Temperaturlimit aktiv (jetzt)
160x10000Unterspannung ist aufgetreten
170x20000CPU-Takt-Begrenzung ist aufgetreten
180x40000Drosselung ist aufgetreten
190x80000Weiches Temperaturlimit ist aufgetreten

Die unteren vier Bits beschreiben den Zustand in diesem Moment. Die Bits ab 16 sind Merker: Sie bleiben gesetzt, auch wenn das Ereignis vorbei ist. 0x50005 heißt also: Gerade jetzt liegt Unterspannung an, der Pi ist deshalb gedrosselt, und beides ist schon vorher passiert. 0x50000 bedeutet, dass es Unterspannung und Drosselung gab, im Moment aber alles in Ordnung ist. Taucht dagegen nur Bit 3 oder 19 auf, etwa bei 0x80008, ist Hitze das Thema und nicht das Netzteil.

Damit Du nicht jedes Mal rechnen musst, legst Du Dir ein kleines Skript an:

Code
nano ~/throttled.sh

Füg diesen Inhalt ein:

Code
#!/bin/bash
# Dekodiert die Ausgabe von "vcgencmd get_throttled"
wert="${1:-$(vcgencmd get_throttled | cut -d= -f2)}"
echo "Wert: $wert"
if (( wert == 0 )); then
  echo "Alles in Ordnung: keine Unterspannung, keine Drosselung."
  exit 0
fi
bedeutung=(
  [0]="Unterspannung: jetzt"
  [1]="CPU-Takt begrenzt: jetzt"
  [2]="Gedrosselt: jetzt"
  [3]="Weiches Temperaturlimit aktiv: jetzt"
  [16]="Unterspannung: ist aufgetreten"
  [17]="CPU-Takt begrenzt: ist aufgetreten"
  [18]="Gedrosselt: ist aufgetreten"
  [19]="Weiches Temperaturlimit: ist aufgetreten"
)
for bit in 0 1 2 3 16 17 18 19; do
  if (( wert & (1 << bit) )); then
    echo "Bit $bit: ${bedeutung[$bit]}"
  fi
done

Speichere mit Strg + O, bestätige mit Enter und schließe den Editor mit Strg + X. Danach machst Du das Skript ausführbar und startest es:

Code
chmod +x ~/throttled.sh
~/throttled.sh

Ohne Argument fragt das Skript den Pi selbst ab, mit Argument dekodiert es einen beliebigen Wert, etwa ~/throttled.sh 0x50005. Bei diesem Wert meldet es die Bits 0, 2, 16 und 18. Getestet ist das Skript mit Bash 5.2 und den Werten 0x0, 0x50005, 0x50000, 0x80008 und 0xe0000; die Abfrage über vcgencmd lief dabei gegen eine nachgebaute Ausgabe, nicht auf einem echten Pi 5.

Unterspannung im Kernel-Protokoll finden

Der Kernel prüft den Zustand alle zwei Sekunden und schreibt bei jedem Wechsel eine Zeile ins Protokoll. Mit diesem Befehl suchst Du danach und gleich auch nach USB-Überstrom:

Code
sudo dmesg | grep -i -E "voltage|over-current"

Undervoltage detected! markiert den Beginn einer Unterspannung, Voltage normalised ihr Ende. Meldungen mit over-current zeigen, dass ein USB-Gerät mehr Strom ziehen wollte, als der Anschluss liefern darf. Ist der Pi abgestürzt und neu gestartet, schaust Du in das Protokoll des vorherigen Starts:

Code
sudo journalctl -k -b -1 | grep -i -E "voltage|over-current"

Das klappt nur, wenn das Journal dauerhaft gespeichert wird. Hast Du es mit Storage=volatile in den Arbeitsspeicher verlegt, sind die Einträge nach dem Neustart weg.

Spannung messen, im Pi und am Kabel

Der Pi 5 misst seine Eingangsspannung selbst:

Code
vcgencmd pmic_read_adc EXT5V_V

Die Ausgabe sieht etwa so aus: EXT5V_V volt(24)=5.06520000V. Die Dokumentation nennt 4,8 Volt als Untergrenze für einen zuverlässigen Betrieb. Den Strom der USB-Geräte zeigt dieser Wert nicht, weil er am Messchip vorbeifließt.

Um zu sehen, wie sich die Spannung unter Last verhält, protokollierst Du sie alle fünf Sekunden in eine Datei:

Code
while true; do
  echo "$(date '+%F %T') $(vcgencmd get_throttled) $(vcgencmd pmic_read_adc EXT5V_V | cut -d= -f2)" | tee -a ~/strom.log
  sleep 5
done

Erzeug währenddessen in einem zweiten Terminal Last, etwa indem Du eine große Datei auf die USB-SSD kopierst. Alle vier Kerne lastest Du mit stress-ng aus, das Du vorher mit sudo apt install stress-ng installierst; stress-ng --cpu 4 --timeout 120s läuft dann zwei Minuten. Die Schleife beendest Du mit Strg + C.

Von außen misst Du mit einem USB-C-Messgerät (Affiliate Link), das Du zwischen Netzteil und Pi steckst. Es zeigt Spannung und Strom, bessere Modelle auch das ausgehandelte Power-Delivery-Profil. Bricht die Spannung schon am Messgerät unter Last deutlich ein, schafft das Netzteil oder sein Kabel die Last nicht. Bleibt sie dort stabil, während der Pi Unterspannung meldet, geht die Spannung erst dahinter verloren, etwa an einem zusätzlichen Adapter.

Die Lösung: das richtige Netzteil

Am zuverlässigsten ist das offizielle 27-W-Netzteil für den Raspberry Pi 5 (Affiliate Link). Sein Kabel ist fest angebracht, Verlängerungen oder Adapter dazwischen lässt Du weg. Ein Netzteil eines anderen Herstellers ist nur dann gleichwertig, wenn es ausdrücklich 5 Volt bei 5 Ampere über USB Power Delivery anbietet; mit dem Kürzel PPS allein ist nichts gewonnen, denn PPS unterstützt laut Raspberry Pi kein Modell.

Nach dem Tausch startest Du den Pi neu, damit die Merker zurückgesetzt sind, und prüfst nach einer Weile unter Last erneut. Erwartet sind throttled=0x0 und usb_max_current_enable=1.

usb_max_current_enable: wann es hilft und was es riskiert

Mit der Option usb_max_current_enable=1 hebst Du die 600-mA-Begrenzung auf, obwohl das Netzteil keine 5 Ampere gemeldet hat. Die Begrenzung ist aber kein Fehler, sondern ein Schutz: Ein 3-Ampere-Netzteil reicht unter Last nicht sicher für den Pi und zusätzlich 1,6 A für USB-Geräte. Erzwingst Du es trotzdem, tauschst Du die Strombegrenzung gegen Unterspannung, Abstürze und im schlechtesten Fall ein beschädigtes Dateisystem.

Sinnvoll ist die Option in zwei Fällen: Dein Netzteil liefert nachweislich 5 Ampere, kann das aber nicht per Power Delivery melden, oder Deine USB-Geräte brauchen zusammen wenig Strom und Du willst nur von USB starten. Dann öffnest Du die Konfiguration:

Code
sudo nano /boot/firmware/config.txt

Füg ganz unten, unterhalb der Zeile [all], diese Zeile ein:

Code
usb_max_current_enable=1

Speichere, schließ den Editor und starte mit sudo reboot neu. Danach prüfst Du mit vcgencmd get_config usb_max_current_enable und dem Skript von oben, ob die Einstellung greift und keine Unterspannung auftritt. Für einen einmaligen Start reicht es übrigens, nach einem fehlgeschlagenen USB-Start einmal kurz den Einschaltknopf zu drücken. Das gilt dann bis zum nächsten Neustart.

Stromhungrige USB-Geräte richtig anschließen

Eine 2,5-Zoll-Festplatte ohne eigenes Netzteil zieht beim Anlaufen viel Strom, eine SSD im USB-Gehäuse unter Last ebenfalls spürbar. Hängen mehrere davon am Pi, versorgst Du sie besser über einen aktiven USB-Hub mit eigenem Netzteil oder nimmst Festplatten mit eigener Stromversorgung. Achte beim Hub auf ein Markengerät: Schlecht gebaute Hubs speisen Strom zurück in den Pi und umgehen dabei seine Schutzschaltung, wovor die Dokumentation ausdrücklich warnt.

Willst Du eine SSD dauerhaft betreiben, ist eine NVMe-SSD an der PCIe-Schnittstelle mit einem M.2-Aufsatz die Alternative zu USB. Wie das geht, zeigt die Anleitung Raspberry Pi 5 von NVMe-SSD booten statt microSD-Karte. Ein Netzteil mit 5 Ampere bleibt auch dann die beste Grundlage.

Wenn es trotzdem nicht passt

  • throttled=0x0, aber die USB-SSD trennt sich: Das ist meist die 600-mA-Grenze, keine Unterspannung. Prüf usb_max_current_enable und such im Protokoll nach over-current.
  • Unterspannung trotz offiziellem Netzteil: Zieh alle USB-Geräte und HATs ab und prüf erneut. Verschwindet die Warnung, steck die Geräte einzeln wieder an. Bleibt sie, ist das Netzteil oder sein Kabel beschädigt.
  • Der ausgeschaltete Pi startet von selbst: Hängt er an einem Mehrfach-Ladegerät, handelt das Ladegerät die Leistung neu aus, sobald Du dort ein weiteres Gerät einsteckst. Laut Dokumentation kann das einen ausgeschalteten Pi starten. Ein eigenes Netzteil für den Pi beendet das.

Startet Dein Pi gar nicht erst, hilft Dir Raspberry Pi startet nicht: LED-Blinkcodes und Lösungen weiter, denn zwei der Blinkcodes stehen für Fehler in der Stromversorgung. Und wenn Dein Pi rund um die Uhr laufen soll, findest Du in Raspberry Pi im Dauerbetrieb: SD-Karte schonen, stabil laufen die übrigen Einstellungen, die ihn neben einem guten Netzteil stabil halten.

Weiterlesen.