NEWS
Tinkerboard All-In-One mit piVCCU CPU Taktung zu hoch ?
-
Moin,
ich teste zur Zeit mit einem Raspberry 3 und einem ASUS Tinker Board. In Beiden läuft die gleiche Last ( 14 Progamme + CCU )
Der Raspi wird mit 600 MHz getaktet, hat eine CPU Temperatur von +43° und eine Leistungsaufnahme von ca. 1,9W bis 2,2 W.
Das Tinkerboard wird mit 1.6 Mhz getaktet, hat eine CPU Temperatur von +70° und eine Leistungsaufnahme von ca. 4,1W bis 5,3 W.Mglw. wird der nicht runter getaktet wenn die Last gering ist ?
VG Uwe
-
Du benutzst wirklich das all-in-one?
Seltsamerweise ist dabei dir der Scaling governor auf "conservative" und nicht auf "on demand" o.ä.
(Korrektur: Ist richtig so, auf meiner neuen Installation ist das auch so.)
Die Temperatur liegt bei mir allerdings nur bei 38°C.
70°C ist schon grenzwertig. Wobei ich die Ursache nicht erkenn, zumal deine System Load 5 Minuten nur bei läppischen 0.37 liegt.
Hast du den Kühlkörper montiert und liegt das Board NICHT auf etwas warmen auf?
Gruß
Rainer
-
kenn, zumal deine System Load 5 Minuten nur bei läppischen 0.37 liegt.
Hast du den Kühlkörper montiert und liegt das Board NICHT auf etwas warmen auf?
Gruß
Rainer `
Hallo Rainer,
ja der Kühlkörper ist montiert und das Board steckt in einem Acrylgehäuse, wie vorher auch der Raspi ( Lüftung nach oben ist vorhanden). Ich verstehe nur nicht warum der CPU Takt so hoch ist, wenn die schwächere Raspi CPU mit 600 MHz auskommt.
Vielleicht könnte man hier etwas einstellen ?
In dem Menü ist übrigens auch firstrun und resize2fs deaktiviert
Die CPU läuft mit maximalen Takt:
root@tinkerboard:~# cpufreq-info cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009 Report errors and bugs to cpufreq@vger.kernel.org, please. analyzing CPU 0: driver: cpufreq-dt CPUs which run at the same hardware frequency: 0 1 2 3 CPUs which need to have their frequency coordinated by software: 0 1 2 3 maximum transition latency: 115 us. hardware limits: 126 MHz - 1.80 GHz available frequency steps: 126 MHz, 216 MHz, 312 MHz, 408 MHz, 600 MHz, 696 MHz, 816 MHz, 1.01 GHz, 1.20 GHz, 1.42 GHz, 1.51 GHz, 1.61 GHz, 1.70 GHz, 1.80 GHz available cpufreq governors: conservative, userspace, powersave, ondemand, performance, schedutil current policy: frequency should be within 600 MHz and 1.80 GHz. The governor "conservative" may decide which speed to use within this range. current CPU frequency is 1.80 GHz (asserted by call to hardware). cpufreq stats: 126 MHz:0,02%, 216 MHz:0,22%, 312 MHz:0,69%, 408 MHz:0,12%, 600 MHz:0,07%, 696 MHz:0,07%, 816 MHz:0,03%, 1.01 GHz:0,10%, 1.20 GHz:0,54%, 1.42 GHz:0,47%, 1.51 GHz:0,28%, 1.61 GHz:0,23%, 1.70 GHz:0,11%, 1.80 GHz:97,05% (84)
VG Uwe
-
Ich weiß auswendig nicht was da verstellt wird.
Es wundert mich eigentlich, da Armbian sehr viel Wert auf stabilität legt und nicht unnötig Leistung aus einem SBC herausquetscht.
Bisher waren bei Armbian die governor immer auf "on demand" bzw. dessen Pendant "interactive" eingestellt.
Mein Tinker (kein All-In-One) läuft auch auf conservative und hat den Takt im Moment bei 600 MHz, die Load 5Minuten bei 0,58 (also ähnlich wie bei dir) die Temperatur bei 38,6°C; Das Board allerdings mit Kühlkörper in einem gestapelten Rack mit 2Tinkern über 2 (ausgeschalteten Pi2). Da das ganze in einer geschlossenen Vitrine (mit 5 weiteren aktiven SBC/NUC und Switches) steht, die ziemlich aufwärmen ist da noch ein 120mm Lüfter drin, der allerdings nur im Kreis bläst.
Kannst du mal mit top nachsehen, was da die Leistung (die nicht da ist) ziehen soll?
Oder einfach rebooten.
Gruß
Rainer
-
Hi,
auf meinem produktiven Tinkerboard habe ich das auch beobachtet, ich habe da auch einen Verdacht, kam aber bisher nicht dazu, das weiter anzuschauen.
Kann es sein, dass du mehr als einen USB Stick mit UART angeschlossen hast (z.B. CUL Stick)?
Was bei mir kurzfristig geholfen hat, war das Umstellen auf den Governor "schedutil" (in der /etc/default/cpufrequtils). Leider wird die Datei bei Armibian Updates wieder überschrieben…
Viele Grüße
Alex
-
Ich habe jetzt mal den scaling_governor ondemand ausprobiert, da läuft die CPU immer noch auf maximum. Alle Scripte ausgeschaltet, brachte auch keine Verbesserung.
Nur wenn ich powersave auswähle, geht der Takt auf 600 Mhz zurück und die Temperatur sinkt bereits:
Command:
echo -powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
(edit) gerade Deinen posting gesehen, ja es hängt eine USB Device ( CUL ) dran. Aber keine weiteren.
Nach einem reboot steht der scaling_governor wieder auf conservative und die CPU läuft auf maximum. Umstellung auf ondemand bringt keine Verbesserung, nur auf powerserve.
-
powersave ist nicht ideal, der schaltet dauerhaft auf 600Mhz und geht nie hoch. schedutil basiert auf der berechneten Load vom Kernel und ist (sofern er denn vorhanden ist) die beste Wahl.
Wegen dem USB Stick: Ich vermute, dass du in der der /proc/interrupts beim Device dwc2_hsotg:usb1 eine irre hohe Zahl an Interrupts hast. Kann das sein? Ich vermute, dass da irgendein Bug im USB Treiber oder sogar im Chip ist, welcher für eine sehr hohe Zahl an soft interrupts sorgt.
Viele Grüße
Alex
-
Wenn in ondemand eingestellt habe, ist eigentlich kaum load auf dem system und dennoch läuft die CPU auf maximum. So langsam streiche ich die segel.
-
@Alex schedutil war ein guter Tipp. Die Tacktung geht deutlich zurück ( momentan 816 MHz) und auch die Temperatur sinkt. Wie kann ich das einstellen, dass es beim nächsten booten erhalten bleibt ?
Habe so etwas im inet gefunden:
> Einfach /etc/init.d/skeleton kopieren und anpassen (bei "start" den passenden Befehl angeben) und dann mit update-rc.d oder von hand nach /etc/rcx.d verlinken.
VG Uwe
-
Schreib es in die /etc/default/cpufrequtils
Musst du aber immer mal wieder kontrollieren, bei manchen Armbian Updates wird das leider überschrieben.
Könntest du deine /proc/interrupts hier posten? Wenn ich da Gemeinsamkeiten entdecke, würde ich das die Tage mal im Armbian Forum abladen, vielleicht wissen die was da zu tun ist.
Viele Grüße
Alex
-
Reicht dir das ?
cat /proc/interrupts CPU0 CPU1 CPU2 CPU3 17: 194920 795423 141237 143056 GIC-0 29 Level arch_ti mer 18: 0 0 0 0 GIC-0 30 Level arch_ti mer 21: 0 0 0 0 GIC-0 104 Level rk_time r 22: 0 0 0 0 GIC-0 183 Level arm-pmu 23: 0 0 0 0 GIC-0 184 Level arm-pmu 24: 0 0 0 0 GIC-0 185 Level arm-pmu 25: 0 0 0 0 GIC-0 186 Level arm-pmu 26: 0 0 0 0 GIC-0 34 Level ff25000 0.dma-controller 27: 0 0 0 0 GIC-0 35 Level ff25000 0.dma-controller 28: 0 0 0 0 GIC-0 32 Level ffb2000 0.dma-controller 29: 0 0 0 0 GIC-0 33 Level ffb2000 0.dma-controller 30: 128893 0 0 0 GIC-0 64 Level dw-mci 31: 82676 0 0 0 GIC-0 65 Level dw-mci 32: 0 0 0 0 GIC-0 68 Level ff10000 0.saradc 34: 0 0 0 0 GIC-0 94 Level ff14000 0.i2c 35: 0 0 0 0 GIC-0 95 Level ff15000 0.i2c 36: 0 0 0 0 GIC-0 96 Level ff16000 0.i2c 37: 0 0 0 0 GIC-0 97 Level ff17000 0.i2c 39: 13553 0 0 0 GIC-0 88 Level ff19000 0.serial 40: 449 0 0 0 GIC-0 89 Level ttyS2 43: 7 0 0 0 GIC-0 69 Level rockchi p_thermal 44: 5 0 0 7288 GIC-0 59 Level eth0 45: 0 0 0 0 GIC-0 60 Level eth0 46: 295 0 0 0 GIC-0 56 Level ehci_hc d:usb3 47: 102973 152101265 0 0 GIC-0 57 Level ff54000 0.usb, dwc2_hsotg:usb1 48: 0 0 0 0 GIC-0 55 Level ff58000 0.usb, ff580000.usb, dwc2_hsotg:usb2 49: 6180 0 0 0 GIC-0 92 Level ff65000 0.i2c 50: 0 0 0 0 GIC-0 93 Level ff66000 0.i2c 54: 0 0 0 0 GIC-0 50 Level ff92000 0.rga 57: 0 0 0 0 GIC-0 47 Level ff93000 0.vop 58: 0 0 0 0 GIC-0 48 Level ff94000 0.vop 60: 0 0 0 0 GIC-0 135 Level ff98000 0.hdmi 66: 0 0 0 0 GIC-0 38 Level ffa3000 0.gpu 67: 0 0 0 0 GIC-0 39 Level ffa3000 0.gpu 68: 1 0 0 0 GIC-0 40 Level ffa3000 0.gpu 82: 0 0 0 0 rockchip_gpio_irq 4 Level rk808 83: 0 0 0 0 rockchip_gpio_irq 5 Edge GPIO Key Power 371: 0 0 0 0 rk808 5 Edge RTC ala rm IPI0: 0 0 0 0 CPU wakeup interrupts IPI1: 0 0 0 0 Timer broadcast interrupts IPI2: 578319 16448 395298 433155 Rescheduling interrupts IPI3: 1697 2425 3611 281 Function call interrupts IPI4: 0 0 0 0 CPU stop interrupts IPI5: 2038 2166 1292 1332 IRQ work interrupts IPI6: 0 0 0 0 completion interrupts Err: 0
ich sehe gerade da fehlt was, wie kann ich das komplett anzeigen ? oder fängt das wirklich mit 17: an ?
-
Ja, danke.
Die Zeile hier ist die interessante:
47: 102973 152101265 0 0 GIC-0 57 Level ff54000 0.usb, dwc2_hsotg:usb1
Irgendwas im dwc2_hsotg läuft gewaltig schief, so viele Interrupts dürfte es nicht geben.
Viele Grüße
Alex
-
Ja, danke.
Die Zeile hier ist die interessante:
47: 102973 152101265 0 0 GIC-0 57 Level ff54000 0.usb, dwc2_hsotg:usb1
Irgendwas im dwc2_hsotg läuft gewaltig schief, so viele Interrupts dürfte es nicht geben.
Viele Grüße
Alex `
:shock: …und damit hast du meine absolut rudimentären Linux Kenntnisse überfordert....
scheint ja etwas mit dem CUL Adapter auf USB 1 zu tun zu haben... Funktioniert aber einwandfrei.
Veile Grüße
Uwe
-
Vereinfacht ausgedrückt: Ein Interrupt ist ein Signal von Hardware (hier USB Controller) zum Prozessor in Richtung: "Hallo! Hier gibt es was zu tun". Da man nicht immer prüfen muss, ob was zu tun ist, sondern einfach den Befehl "Mach was" bekommt, kann man recht resourcenschonend programmieren.
Hier ist das Problem aber, dass diese Interrupts auftreten, obwohl die meiste Zeit nichts zu tun ist. Und das dürfte ein Bug sein. Entweder im Kernel oder in der Hardware.
Und diese Interrupts verhinden vermutlich auch, dass die CPU runtergetacktet von ondemand runtergetacktet wird, weil es dort als Event für anstehende Arbeit interpretiert wird.
Also ein bißchen wie im Hotel, wenn du immer auf die Glocke haust, der Portier aus der Hinterkammer kommt und dann sagst, ist doch nichts, ich wollte nur mal auf die Glocke hauen und du das in einer Endlosschleife machst. (Nur das du im dem Beispiel vermutlich irgendwann rausgeschmissen wirst. )
Ich schau mir das die Tage noch etwas genauer an und schiebe das dann Richtung Armbian oder Kernel Issue Tracker.
Viele Grüße
Alex
-
Boah Alex, SUPER erklärt . Das verstehe sogar ich in meinem biblischen Alter
keine Ahnung ob das was damit zu tun hat aber im CuxD finde ich folgende Syslog-Messages:
Nov 30 14:36:25 homematic-ccu2 daemon.warn cuxd[215]: use CUX2801001:11.CMD_QUERY_RET=1 to activate CUX2801001:11.CMD_RETL command! Nov 30 14:36:25 homematic-ccu2 daemon.warn cuxd[215]: use CUX2801001:12.CMD_QUERY_RET=1 to activate CUX2801001:12.CMD_RETS command! Nov 30 14:36:25 homematic-ccu2 daemon.warn cuxd[215]: use CUX2801001:12.CMD_QUERY_RET=1 to activate CUX2801001:12.CMD_RETL command! Nov 30 14:36:25 homematic-ccu2 daemon.warn cuxd[215]: use CUX2801001:13.CMD_QUERY_RET=1 to activate CUX2801001:13.CMD_RETS command! Nov 30 14:36:25 homematic-ccu2 daemon.warn cuxd[215]: use CUX2801001:13.CMD_QUERY_RET=1 to activate CUX2801001:13.CMD_RETL command! Nov 30 14:36:25 homematic-ccu2 daemon.warn cuxd[215]: use CUX2801001:14.CMD_QUERY_RET=1 to activate CUX2801001:14.CMD_RETS command! Nov 30 14:36:25 homematic-ccu2 daemon.warn cuxd[215]: use CUX2801001:14.CMD_QUERY_RET=1 to activate CUX2801001:14.CMD_RETL command! Nov 30 14:36:25 homematic-ccu2 daemon.warn cuxd[215]: use CUX2801001:15.CMD_QUERY_RET=1 to activate CUX2801001:15.CMD_RETS command! Nov 30 14:36:25 homematic-ccu2 daemon.warn cuxd[215]: use CUX2801001:15.CMD_QUERY_RET=1 to activate CUX2801001:15.CMD_RETL command! Nov 30 14:36:25 homematic-ccu2 daemon.warn cuxd[215]: use CUX2801001:16.CMD_QUERY_RET=1 to activate CUX2801001:16.CMD_RETS command! Nov 30 14:36:25 homematic-ccu2 daemon.warn cuxd[215]: use CUX2801001:16.CMD_QUERY_RET=1 to activate CUX2801001:16.CMD_RETL command! Nov 30 14:36:30 homematic-ccu2 daemon.info cuxd[215]: INIT 'xmlrpc_bin://127.0.0.1:12010' 'hm-rpc.1' Nov 30 14:38:39 homematic-ccu2 daemon.err cuxd[215]: sendbinrpc(127.0.0.1:12010) - write() Connection refused Nov 30 14:38:39 homematic-ccu2 daemon.err cuxd[215]: sendbinrpc(127.0.0.1:12010) - write() Connection refused Nov 30 14:41:12 homematic-ccu2 daemon.err cuxd[215]: sendbinrpc(127.0.0.1:12010) - write() Connection refused Nov 30 14:41:12 homematic-ccu2 daemon.err cuxd[215]: sendbinrpc(127.0.0.1:12010) - write() Connection refused Nov 30 14:46:17 homematic-ccu2 daemon.err cuxd[215]: sendbinrpc(127.0.0.1:12010) - write() Connection refused Nov 30 14:46:17 homematic-ccu2 daemon.err cuxd[215]: sendbinrpc(127.0.0.1:12010) - write() Connection refused Nov 30 14:48:49 homematic-ccu2 daemon.err cuxd[215]: sendbinrpc(127.0.0.1:12010) - write() Connection refused Nov 30 14:48:49 homematic-ccu2 daemon.err cuxd[215]: sendbinrpc(127.0.0.1:12010) - write() Connection refused Nov 30 14:53:54 homematic-ccu2 daemon.err cuxd[215]: sendbinrpc(127.0.0.1:12010) - write() Connection refused Nov 30 14:53:54 homematic-ccu2 daemon.err cuxd[215]: sendbinrpc(127.0.0.1:12010) - write() Connection refused Nov 30 14:56:27 homematic-ccu2 daemon.err cuxd[215]: sendbinrpc(127.0.0.1:12010) - write() Connection refused Nov 30 14:56:27 homematic-ccu2 daemon.err cuxd[215]: sendbinrpc(127.0.0.1:12010) - write() Connection refused Nov 30 14:56:27 homematic-ccu2 daemon.warn cuxd[215]: disable events to 127.0.0.1:12010
Ich habe jetzt mal das CUX2801001 Gerät gelöscht, war eine FB / Taste mit einem Script aus dem HM Forum, was ich aber nicht benutze.
VG Uwe
-
Noch eine Info, jetzt steht im CuxD Syslog etwas zu ReGaHss :
Nov 30 15:33:30 homematic-ccu2 local0.err ReGaHss: Error: IseXmlRpc::CallGetValue: CallXmlrpcMethod failed [iseXmlRpc.cpp:1455] Nov 30 15:33:30 homematic-ccu2 local0.err ReGaHss: Error: IseHssDP::ReadValue: CallGetValue failed; sVal = 0 [iseDOMdpHSS.cpp:130] Nov 30 15:33:53 homematic-ccu2 user.warn kernel: [ 295.233498] RTL8723BS: nolinked power save leave Nov 30 15:33:54 homematic-ccu2 user.warn kernel: [ 296.810863] RTL8723BS: nolinked power save enter Nov 30 15:34:34 homematic-ccu2 daemon.err cuxd[217]: sendbinrpc(127.0.0.1:12010) - write() Connection refused Nov 30 15:34:34 homematic-ccu2 daemon.err cuxd[217]: sendbinrpc(127.0.0.1:12010) - write() Connection refused Nov 30 15:34:56 homematic-ccu2 user.warn kernel: [ 358.247271] RTL8723BS: nolinked power save leave Nov 30 15:34:57 homematic-ccu2 user.warn kernel: [ 359.818954] RTL8723BS: nolinked power save enter Nov 30 15:35:05 homematic-ccu2 user.err rfd: Parameterset MASTER not found Nov 30 15:35:05 homematic-ccu2 local0.err ReGaHss: Error: IseXmlRpc::CallXmlrpcMethod: execute result isFault; method =getParamsetDescription Params = {"KEQ1022655:2","MASTER"} result= [faultCode:-3,faultString:"Unknown paramset"] [iseXmlRpc.cpp:2641] Nov 30 15:35:05 homematic-ccu2 local0.err ReGaHss: Error: IseXmlRpc::CallGetParamsetDescription: CallXmlrpcMethod failed [iseXmlRpc.cpp:2421] Nov 30 15:35:59 homematic-ccu2 user.warn kernel: [ 421.271161] RTL8723BS: nolinked power save leave Nov 30 15:36:00 homematic-ccu2 user.warn kernel: [ 422.842038] RTL8723BS: nolinked power save enter Nov 30 15:37:02 homematic-ccu2 user.warn kernel: [ 484.270581] RTL8723BS: nolinked power save leave Nov 30 15:37:03 homematic-ccu2 user.warn kernel: [ 485.841216] RTL8723BS: nolinked power save enter Nov 30 15:37:07 homematic-ccu2 daemon.err cuxd[217]: sendbinrpc(127.0.0.1:12010) - write() Connection refused Nov 30 15:37:07 homematic-ccu2 daemon.err cuxd[217]: sendbinrpc(127.0.0.1:12010) - write() Connection refused Nov 30 15:38:05 homematic-ccu2 user.warn kernel: [ 547.262734] RTL8723BS: nolinked power save leave Nov 30 15:38:06 homematic-ccu2 user.warn kernel: [ 548.832967] RTL8723BS: nolinked power save enter Nov 30 15:39:08 homematic-ccu2 user.warn kernel: [ 610.255004] RTL8723BS: nolinked power save leave Nov 30 15:39:09 homematic-ccu2 user.warn kernel: [ 611.832127] RTL8723BS: nolinked power save enter Nov 30 15:39:39 homematic-ccu2 daemon.err cuxd[217]: sendbinrpc(127.0.0.1:12010) - write() Connection refused Nov 30 15:39:39 homematic-ccu2 daemon.err cuxd[217]: sendbinrpc(127.0.0.1:12010) - write() Connection refused Nov 30 15:40:01 homematic-ccu2 cron.info crond[77]: crond: USER root pid 772 cmd /bin/sh /usr/local/addons/hconnectvpn/checkaccount.sh >> /dev/null Nov 30 15:40:12 homematic-ccu2 user.warn kernel: [ 674.856761] RTL8723BS: nolinked power save enter
-
Ich schau mir das die Tage noch etwas genauer an und schiebe das dann Richtung Armbian oder Kernel Issue Tracker. `
Hi,
habe grade bei Armbian einen Patch dafür abgeladen: https://github.com/armbian/build/pull/847
Damit läuft bei mir jetzt auch der ondemand Scheduler und taktet brav auf 816MHz runter, was bei mir realistisch zum Workload ist.
Viele Grüße
Alex
-
ist auch schon gemerged!
Danke
Rainer
-
Hallo,
ich habe das gleiche Problem mit dem Tinkerboard.
Allerdings ist es bei mir so, dass die CPU nicht mehr runtertaktet, seit ich Bluetooth einsetze.
Hab den ebenfalls auf Schedutil gestellt und nun gehts.
Wie komme ich an den Patch ran?
Ich habe das Armbian Debian Stretch next (Kernel Linux tinkerboard 4.13.16-rockchip #19)
Ist eigentlich Debian Stretch mit Kernel 4.4 besser für iobroker?
Grüße
-
Hi,
gibt zwei Möglichkeiten an den Patch ranzukommen:
-
Warten bis zum nächsten Armbian Release, dann kann man den Kernel per apt updaten.
-
Armbian Build Umgebung aufsetzen und Kernel selber bauen und die deb Packages manuell einspielen
Der Kernel 4.4 ist beim Tinkerboard kritisch, zumindest wenn man piVCCU verwenden will: Bei Rockchip und/oder Asus haben sie irgendwas reingepatcht, was verhindert, dass man Kernel Module bauen kann (ich vermute mal nicht mit Absicht) und ohne Kernel Module kann piVCCU einfach nicht funktionieren wegen den Anfordungen für den Betrieb des Funkmoduls.
Viele Grüße
Alex
-