LW IT Solutions logo LW IT Solutions logo LW IT Solutions
« Blog-Übersicht /Raspberry Pi/Tutorials / Raspberry-Pi-Taktfrequenz: CPU-Governor gegenüber Drosselung und was vcgencmd...
Diesen Artikel in anderen Sprachen lesen:

Raspberry-Pi-Taktfrequenz: CPU-Governor gegenüber Drosselung und was vcgencmd get_throttled meldet

Raspberry-Pi-Taktfrequenz: CPU-Governor gegenüber Drosselung und was vcgencmd get_throttled meldet

Management Summary

Ein niedriger Prozessortakt beim Raspberry Pi kann normale Energieregelung statt eines Defekts bedeuten. Zur Diagnose gehören gemeinsame Beobachtungen von Takt, Auslastung, Temperatur und Versorgungswarnungen über die Zeit. Aktuelle Warnungen betreffen den Abfragezeitpunkt, gespeicherte Warnungen nur ein früheres Auftreten; daraus folgt noch kein bestimmtes defektes Bauteil. Kühlung und Stromversorgung müssen zum Platinenmodell passen. Eine Einstellung auf Höchstleistung behebt weder Versorgungsprobleme noch Schutzbegrenzungen.

Inhalt
  1. Governor, Grenzen und tatsächlicher Takt
  2. Status und Takt gemeinsam lesen
  3. Die acht dokumentierten Bits
  4. Drei Beispiele mit unterschiedlichen Aussagen
  5. Temperatur und Versorgung getrennt untersuchen
  6. Fragen und Antworten
  7. Quellen

Eine Raspberry-Pi-CPU unterhalb des Nenntakts ist nicht automatisch defekt. Der Governor ist die Software zur Auswahl der angeforderten CPU-Frequenz. Bei geringer Auslastung kann eine niedrigere Frequenz angefordert werden. Auch Temperaturgrenzen, eine zu niedrige Versorgungsspannung und konfigurierte Taktgrenzen beeinflussen das Ergebnis. Der Takt allein benennt die Ursache nicht.

Governor, Grenzen und tatsächlicher Takt

Linux CPUFreq verbindet eine Richtlinie, einen Governor und einen Hardwaretreiber. Der Governor wählt eine Leistungsanforderung innerhalb der gesetzten Grenzen; die Hardware muss diese Frequenz nicht exakt erreichen. Aktiver Governor und verfügbare Frequenzstufen hängen von Platine, Betriebssystem, Kernel und Konfiguration ab. Weder ondemand noch zehn Stufen zwischen 600 und 1500 MHz gelten pauschal für jeden Raspberry Pi.

scaling_cur_freq zeigt häufig die zuletzt angeforderte Frequenz statt einer exakten Hardwaremessung. vcgencmd measure_clock arm meldet den Arm-Takt in Hertz. Für einen Vergleich müssen Einheiten und zeitlicher Abstand der Abfragen berücksichtigt werden.

Aktuelle Merker, historische Merker und Diagnosegrenzen liefern unterschiedliche Hinweise.
Aktuelle Merker, historische Merker und Diagnosegrenzen liefern unterschiedliche Hinweise.

Status und Takt gemeinsam lesen

Die folgenden Befehle lesen ausschließlich Informationen auf einem Raspberry-Pi-System mit vcgencmd und CPUFreq policy0. Fehlende Befehle oder Dateien bedeuten eine nicht verfügbare Schnittstelle, keinen unauffälligen Status:

vcgencmd get_throttled
vcgencmd measure_clock arm
vcgencmd measure_temp
cat /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
cat /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
cat /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq

Die CPUFreq-Grenzen stehen in Kilohertz; Division durch 1000 ergibt Megahertz. Der Takt aus measure_clock steht in Hertz; Division durch 1.000.000 ergibt Megahertz. measure_temp meldet die SoC-Temperatur. Die Befehle laufen nacheinander; deshalb beschreiben die Messwerte leicht unterschiedliche Zeitpunkte.

Mehrere Abfragen während der betroffenen Arbeitslast sind aussagekräftiger als eine einzelne Leerlaufprobe. Zeitstempel, Platinenmodell, Softwareversionen und Laufzeit machen die Beobachtungen vergleichbar. Diese Grunddaten erfordern weder einen Governorwechsel noch einen Stresstest.

Die acht dokumentierten Bits

vcgencmd get_throttled liefert eine hexadezimale Bitmaske: eine Zahl, die mehrere Ja/Nein-Zustandsanzeigen zusammenfasst. Jedes gesetzte Bit meldet einen Zustand; der Wert ist weder Spannungsmessung noch Leistungsbewertung.

Zustand Aktuelles Bit / Maske Historisches Bit / Maske
Unterspannung 0 / 0x1 16 / 0x10000
Arm-Takt begrenzt 1 / 0x2 17 / 0x20000
Drosselung 2 / 0x4 18 / 0x40000
Weiche Temperaturgrenze 3 / 0x8 19 / 0x80000

Die oberen vier Merker halten ein Auftreten fest, normalerweise seit dem Start, jedoch weder Zeitpunkt noch Dauer oder Anzahl. Ein Neustart beginnt einen neuen Beobachtungszeitraum. Historische Unterspannungs- und Drosselmerker belegen nicht, dass beide Ereignisse gleichzeitig auftraten.

Drei Beispiele mit unterschiedlichen Aussagen

  • 0x0: Keiner der dokumentierten aktuellen oder historischen Zustände wird gemeldet. Ein niedriger Takt kann weiterhin vom Governor oder konfigurierten Grenzen abhängen. Null ist kein vollständiger Nachweis fehlerfreier Hardware.
  • 0x50000: Bits 16 und 18 sind gesetzt. Unterspannung und Drosselung sind aufgetreten; keiner der vier aktuellen Merker ist gesetzt. Die Maske allein identifiziert kein defektes Netzteil.
  • 0x50005: Bits 0, 2, 16 und 18 sind gesetzt. Unterspannung und Drosselung werden zusätzlich zum Abfragezeitpunkt gemeldet.

Ein konstruiertes Beispiel mit 600 MHz neben 0x0 passt somit zu normaler Taktanpassung, beweist diese Erklärung aber nicht. Governor, Richtliniengrenzen und Arbeitslast liefern den fehlenden Zusammenhang.

Abstrakte Darstellung mit zwei Zylindern und einer hervorgehobenen Begrenzung

Temperatur und Versorgung getrennt untersuchen

Die weiche Temperaturgrenze ist modellabhängig: Der dokumentierte Parameter temp_soft_limit gilt für Raspberry Pi 3A+/3B+. Diese Schwelle ist keine allgemeine Regel für Pi 4 oder Pi 5. Für Kühlungsentscheidungen zählen die Modelldokumentation und Temperaturbeobachtungen unter der betreffenden Last.

Unterspannung kann mit Netzteil, Kabel, Steckverbindungen oder angeschlossenen Geräten zusammenhängen. Entscheidend ist die Spannung an der Platine. Das offizielle Pi-4/400-Netzteil ist mit 5,1 V und 3 A spezifiziert; andere Modelle haben andere Anforderungen. Die Aufschrift 5 V allein belegt weder Eignung noch einen Defekt.

Der Linux-Treiber raspberrypi-hwmon fragt regelmäßig eine Firmwareeigenschaft zur Unterspannung ab. Diese Schnittstelle ist kein kontinuierliches Präzisionsvoltmeter. Kernelmeldungen können zusätzliche Hinweise liefern; ein leeres Protokoll schließt kurze Ereignisse, fehlende Treiberunterstützung oder nicht verfügbare ältere Meldungen nicht aus.

Fragen und Antworten

Verhindert performance die Drosselung?

Nein. Der Governor performance fordert die höchste durch scaling_max_freq erlaubte Frequenz an. Firmwareschutz und Hardwaregrenzen gelten weiterhin. Die Anforderung garantiert keinen dauerhaft hohen gemessenen Takt; ein Governorwechsel behebt kein Versorgungs- oder Kühlproblem.

Wird Null nach langer Laufzeit zum Beweis?

Ein längerer Beobachtungszeitraum liefert mehr Kontext, allerdings nur für die über diese Schnittstelle gemeldeten Zustände. Nicht unterstützte Fehler, nicht erfasste Ereignisse und Leistungsgrenzen außerhalb dieser Merker bleiben möglich.

Lässt sich das defekte Bauteil am Status erkennen?

Nein. Die Merker geben eine Suchrichtung vor. Zusammengehörige Takt-, Temperatur- und Lastbeobachtungen sowie anschließende kontrollierte Prüfungen von Versorgung und Kühlung grenzen die Ursache weiter ein.

Lukas Wojcik

Lukas Wojcik

Systems architect and technology enthusiast specializing in scalable tracking solutions, GMP Stack (GA4 & GTM), and robust backend architectures. Advocate for clean code and privacy-first design.

Kontakt

Eine Frage oder eine Idee für ein Webprojekt? Schreib mir kurz, worum es geht. Das Formular nutzt reCAPTCHA zum Schutz vor Spam.

Kommentar schreiben

Erfahrungen mit anderen Modellen und Rückfragen zum Aufbau sind hier willkommen.

Die E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mit einem Stern versehen.