Cubietruck - ondemand CPU governor

Begonnen von tpm88, 06 November 2014, 10:40:08

Vorheriges Thema - Nächstes Thema

tpm88

Hi,

Igor hat mit seinem letzten Update vom 17.10.2014 Support für den ondemand CPU governor in den Linux Kernel 3.4.104 hinzugefügt. Ein Governor hat die Aufgabe, je nach aktueller Last die Taktfrequenz der CPU-Kerne dynamisch anzupassen. Es gibt Governors für verschiedene Ziele, z.B. Stromsparen, maximale Performance, etc etc.

root@ct:/# uname -a
Linux ct 3.4.104-sunxi #1 SMP PREEMPT Fri Oct 17 16:13:30 CEST 2014 armv7l GNU/Linux


Kontrolle, welche CPU governor verfügbar sind:
root@ct:/etc/init.d# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
userspace interactive ondemand performance


Der Default governor bei Igors Image ist interactive und wird beim Booten vom Skript /etc/init.d/cpufrequtils gesetzt.
Kontrolle, welcher CPU governor aktiv ist:
root@ct:/etc/init.d# cpufreq-info -p
480000 1010000 interactive


Mit folgenden Kommandos kann der ondemand governor (testweise) aktiviert werden:
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo ondemand > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor


Gegenfalls Min/Max CPU Frequenz einstellen/verändern:
echo 480000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 1010000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq


Zusätzliche Parameter für den ondemand governor:
echo 40 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
echo 2000000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate


Über den Parameter up_threshold wird gesteuert, wie schnell der governor bei steigender Last die CPU-Frequenz der Kerne auf die Maximalfrequenz hochsetzt. Der Default 95 ist zu träge - ich habe gute Ergebnisse mit 40 erzielt.

Mittels SYSMON sehe ich, daß die CPU nun den größten Teil des Tages mit der minimalen Frequenz getaktet ist. Benutze ich das FHEM Frontend oder laufen andere performance hungrige Jobs (z.B. nächtliches Backup) werden die CPU-Kerne maximal getaktet.

Im Anhang zwei Screenshots vorher mit default interactive governor und nachher mit ondemand governor.

Gruß
Tobias

PS: Hier noch ein paar Hintergrundinfos:
http://linux-sunxi.org/Cpufreq
https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt


Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

betateilchen

ich habe bei mir die cpufrequtils komplett rausgeschmissen, damit nur noch die Parameter vom boot-Skript gelten.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

tpm88

Zitat von: betateilchen am 06 November 2014, 11:12:51
ich habe bei mir die cpufrequtils komplett rausgeschmissen, damit nur noch die Parameter vom boot-Skript gelten.
Das heißt, es ist dann gar kein governor aktiv? Die CPUs laufen dann fix mit 912 MHz?

[target]
boot_clock = 912
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

chris1284

wie zieht man die updates? update / upgrade brachten kleider nicht den gewünschten erfolg

Zitatcat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
ergab
userspace interactive performance

tpm88

#5
Zitat von: chris1284 am 07 November 2014, 18:54:07
wie zieht man die updates? update / upgrade brachten kleider nicht den gewünschten erfolg

Kernel Updates lassen sich auf dem CubieTruck nicht via apt-get update / upgrade einspielen.

Siehe http://www.igorpecovnik.com/2013/12/24/cubietruck-debian-wheezy-sd-card-image/


1. Kernel ZIP file cubietruck_kernel_3.4.xxx_mod_head_fw.tar dort herunterladen
2. Auf dem CubieTruck z.B. nach /tmp kopieren und auspacken (MD5 Checksumme kontrollieren, um sicherzugehen, daß das Archiv vollständig ist)
3. Sicherstellen, daß die die Boot-Partition nach /boot montiert ist
4. Kernel tar Archiv in das root Filesystem / auspacken:
cd /
tar xvpf /tmp/cubietruck_kernel_3.4.xxx_mod_head_fw.tar

5. Neu booten: reboot

Die ganze Aktion ist zwar nicht wirklich kritisch - trotzdem sollte man grundsätzlich vorher ein vollständiges Backup ziehen...

Gruß
Tobias

Edit: Hinweis zur Boot-Partition ergänzt.
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

Franz Tenbrock

Hallo
Sorry ich hatte meinen cubitruck total gefrustet vor 8 Wochen in die Ecke gestellt weil ich die Kracks hier nciht mehr nerven wollte.
Da ich ein totaler Linux Anfänger bin fehlen halt immer wichtige Grundlagen. Da ich aber in einem anderen Beriech beruflich unterwegs bin ist das erlernen des neuen Betriebssystems keine Kleinigkeit... :-(


1 ist kein Problem, hab ich gefunden und geladen
das dann mt filezilla zb auf den cubie kopieren auch kein Problem

2. Auf dem CubieTruck z.B. nach /tmp kopieren und auspacken (MD5 Checksumme kontrollieren, um sicherzugehen, daß das Archiv vollständig ist)

auspacken ?? bei Windows ganz easy, aber mit Linux ??
MD5 Checksumme    grrrrrr, vor 8 Wochen mal was gelesen aber leider nicht im Langzeitgedächnis


3. Kernel tar Archiv in das root Filesystem / auspacken:


Ich denke ich bin nicht der einzige mit so einer Kiste zuhause der da stockt... Solche Probleme gabs auf der Fritte nicht...
Der Ustieg von der Fritte ist leider steinig....
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

tpm88

Zitat von: Franz Tenbrock am 07 November 2014, 21:55:30
Da ich ein totaler Linux Anfänger bin fehlen halt immer wichtige Grundlagen. Da ich aber in einem anderen Beriech beruflich unterwegs bin ist das erlernen des neuen Betriebssystems keine Kleinigkeit... :-(
Verstehe ich gut. Aber trotzdem kann dir das Einarbeiten in Linux niemand abnehmen. Gerade zu Linux gibt es tonnenweise Material im Internet und sicherlich auch regalweise gute Literatur im Buchhandel.

Das Upgrade eines Linux Kernels für einen Einplatinencomputer wie den CubieTruck ist sicherlich nicht unbedingt "beginner level". Andererseits sind diese Rechner ja gerade Geräte zum Experimentieren und Ausprobieren. Da muß man sich d'rauf einlassen oder eben nicht. Eine FritzBox oder auch ein Windows mit voll-/halbautomatischen Betriebssystem Updates über ein GUI ist definitiv eine andere Welt.

Zitat
1 ist kein Problem, hab ich gefunden und geladen
das dann mt filezilla zb auf den cubie kopieren auch kein Problem
Gut

Zitat
2. Auf dem CubieTruck z.B. nach /tmp kopieren und auspacken (MD5 Checksumme kontrollieren, um sicherzugehen, daß das Archiv vollständig ist)

auspacken ?? bei Windows ganz easy, aber mit Linux ??
MD5 Checksumme    grrrrrr, vor 8 Wochen mal was gelesen aber leider nicht im Langzeitgedächnis
Stichworte für die Recherche: unzip und md5sum

Zitat
3. Kernel tar Archiv in das root Filesystem / auspacken:

Ich denke ich bin nicht der einzige mit so einer Kiste zuhause der da stockt...
Naja, dazu habe ich ja sogar die genauen Kommandos in meinem ersten Post aufgeführt.

Zitat
Solche Probleme gabs auf der Fritte nicht...
Ansichtssache... Auf der FritzBox war beispielsweise das Nachrüsten eines Perl Pakets für irgendein FHEM-Modul auch kein Spaß...

Zitat
Der Ustieg von der Fritte ist leider steinig....
Nicht entmutigen lassen.

Aber ganz ehrlich - Du brauchst kein Kernel Upgrade durchführen, wenn dein CubieTruck läuft und das tut, was Du möchtest. Du mußt Dich nicht mit CPU Governor herumplagen, wenn Linux Neuland für dich ist. Das _kann_ man machen, wenn man Freude am Experimentieren hat. FHEM läuft auch ganz vorzüglich mit dem Standard Governor aus Igor's Image. Oder auch ganz ohne - siehe den Beitrag von betateilchen weiter oben...

Nix für ungut, Gruß
Tobias
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

Franz Tenbrock

weil der cubie sich ständig aufgehängt hat  FrequenZ ?!
wäre das update auf eine aktuellere Version sicher sinnvoll.

Das man sich da einarbeiten muss ist mir klar....
Aber es ist shcon eien Menge.
FHEM Perl Linux.

ne Menge läuft ja schon und die Fritte machts ja noch
nur Schade um den cubie der zur Zeit ohne Strom hinter der Fritte steht...

im Winter ist ja etwas mehr Zeit  :-)
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

tpm88

Zitat von: Franz Tenbrock am 07 November 2014, 22:48:35
weil der cubie sich ständig aufgehängt hat  FrequenZ ?!
wäre das update auf eine aktuellere Version sicher sinnvoll.
Das Kernel Update wird deinen CubieTruck vermutlich nicht stabiler machen. Vielmehr solltest Du die maximale CPU Frequenz auf konservative 912 MHz verringern. Im Beitrag http://forum.fhem.de/index.php/topic,26992.0.html ist genau das beschrieben... Das IgorImage (bzw. das init skript cpufrequtils) übertaktet den CubieTruck standardmäßig etwas (1010 MHz).
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

chris1284

Danke tmp88

allerdings musste ich noch nach dem entpacken nach /
nand1 mounten und uImage aus /boot dorthin kopieren. erst dann ergab uname -a die reichtige Version  3.4.104-sunxi aus

nur entpacken und reboot brachte immer den alten kernel zum booten

betateilchen

@chris das kommt darauf an, welche IgorImage-Version Du ursprünglich installiert hast. Bei der aktuellen Version ist die Bootpartition standardmäßig nach /boot eingehängt, da fällt der Schritt dann weg.

Das Ganze hängt mal wieder mit fehlendem "Grundverständnis zu Linux" zusammen *g*

Zitat von: Franz Tenbrock am 07 November 2014, 21:55:30
auspacken ?? bei Windows ganz easy, aber mit Linux ??

Noch einfacher als bei Windows:

unzip Dateiname.zip
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

chris1284

Danke für den Hinweis... ja Linux ist mir zugegeben an mancher Stelle noch einwenig "fremd"  ;)