Übertakten über die Kommandozeile


10

Ich richte eine Puppet-Instanz ein, die eine Reihe von RPis verwaltet. Dies bedeutet, dass ich sie nicht einzeln mit raspi-config übertakten kann.

Das Übertakten sollte so einfach sein wie das Erstellen von /boot/config.txt:

root@rpi-032113 ~ # file /boot/config.txt 
/boot/config.txt: ASCII text
root@rpi-032113 ~ # cat /boot/config.txt 
gpu_mem=32
arm_freq=950
core_freq=250
sdram_freq=450
over_voltage=6

Bei jedem Neustart und Stresstest bleibt der Wert jedoch bei 700 MHz:

root@rpi-032113 ~ # nice yes >/dev/null &
[1] 3238
root@rpi-032113 ~ # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
700000

root@rpi-032113 ~ # /opt/vc/bin/vcgencmd get_config int
arm_freq=950
core_freq=250
sdram_freq=450
over_voltage=6
temp_limit=85
force_pwm_open=1

Es bleibt eindeutig bei 700 MHz (auch nach weiteren 15 Sekunden Wartezeit), während es bei 950 MHz liegen sollte.

Was vermisse ich? Gibt es ein klebriges Bit, das in der CPU gesetzt werden muss, bevor dies funktioniert?

Antworten:


5

Die CPU-Frequenz wird bei Bedarf skaliert. Sie können den Schwellenwert über die sysctl-Variable `up_threshold 'festlegen. Sie können es einstellen über:

sudo sh -c "echo 20 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold"

Dadurch wird der Schwellenwert auf 20% CPU-Auslastung festgelegt.

Der Skalierungsregler kann auf folgende Anforderung eingestellt werden:

sudo sh -c "echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"

Sie können dies in Ihre einfügen /etc/rc.local, damit es beim Booten ausgeführt wird. Sie können das sudo sh -cZeug dann weglassen, da rc.locales sowieso als root ausgeführt wird.

Weitere Dokumentation zur CPU-Taktung finden Sie hier .


-bash: / sys / device / system / cpu / cpu0 / cpufreq / ondemand / up_threshold: Keine solche Datei oder kein solches Verzeichnis - Die Einstellung "ondemand" hat es jedoch gelöst, danke - root @ rpi-032113 ~ # nice yes> / dev / null & [1] 4650 root @ rpi-032113 ~ # cat / sys / device / system / cpu / cpu0 / cpufreq / scaling_cur_freq 950000
Tuinslak

Ich habe den gleichen Fehler wie Tuinslak erhalten, aber nachdem ich die Dateien in /sys...cpufreq/ durchgesehen habe, habe ich eine Datei gefunden, die dasselbe tut.
Matthew

Ja, vielleicht müssen Sie die CPU0 weglassen. Möglicherweise existiert dies nur auf Mehrkernsystemen. Ich habe meinen Pi nicht dabei, um dies zu überprüfen.
Arne

Ja, anscheinend müssen Sie die CPU rauswerfen: raspberrypi.org/phpBB3/viewtopic.php?f=24&t=20156
Arne

Ja, großartig. Scheint jetzt wie ein Zauber zu wirken. Ich denke, diese Befehle sind in einer Raspbian-Installation enthalten (warum es auf 3 anderen RPis gut funktioniert hat), aber nicht, wenn Sie es für mein Puppet-Setup von Grund auf neu starten. Vielen Dank.
Tuinslak

0

Die Übertaktung wird nur aktiviert, wenn die CPU-Auslastung hoch genug ist. Um die minimale Armfrequenz zu ändern, tun Sie

sudo nano /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

Nano ist mein bevorzugter Befehlszeilentexteditor, aber Sie können auch andere wie vi oder vim verwenden. Die Nummer in der Datei ist die aktuelle Armfrequenz in kHz (nicht mHz!). Um die minimale Armfrequenz zu erhöhen, erhöhen Sie einfach die Anzahl. Für den Fall von Tuinslack wäre die Nummer 950000.

Im Ordner cpufreq finden Sie einige andere Einstellungen, z. B. die maximale Armfrequenz. Wenn Sie beim Booten die Umschalttaste gedrückt halten, wird die Übertaktung deaktiviert. Wenn Sie die Übertaktung aktiviert lassen, erhöht sich die Temperatur der CPU erheblich.


Dies sollte zwar das Problem beheben, führt jedoch auch dazu, dass sich die CPU im Leerlauf auf 950 MHz befindet (was ich vermeiden möchte, da OC'ing immer noch einige Risiken birgt). da es das "Minimum" ist, kann der Takt der CPU sein. Ich wollte nach Bedarf dynamisch übertakten (siehe die andere Antwort).
Tuinslak

@ Tuinslak Dies ist nur eine andere Art, es zu tun.
Matthew
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.