RaspberryMatic – Firmware Upgrade Probleme - Analyse

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

Huey
Beiträge: 9
Registriert: 05.01.2020, 12:50
Hat sich bedankt: 1 Mal

Re: RaspberryMatic – Firmware Upgrade Probleme - Analyse

Beitrag von Huey » 05.05.2021, 22:54

:? Hallo,

Auch bei mir klappt es alleine mit rmupdate...
Froh dass diese addon da ist!

MfG

nicx
Beiträge: 307
Registriert: 18.05.2013, 22:31
Hat sich bedankt: 4 Mal

Re: RaspberryMatic – Firmware Upgrade Probleme - Analyse

Beitrag von nicx » 07.07.2021, 15:42

so ich reihe mich mal ein in die Problematik: CCU3 Hardware mit Raspberrymatic im Einsatz. Versuch eines Upgrades von 3.57.5.20210525 auf 3.59.6.20210703 schlägt fehl, d.h. die WebUI hängt im "Spinner" fest.

Auf der CCU3 selbst sollte genug Speicherplatz frei sein:

Code: Alles auswählen

root@ccu:~# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root               975.9M    540.6M    368.1M  59% /
devtmpfs                444.3M         0    444.3M   0% /dev
tmpfs                   477.9M         0    477.9M   0% /dev/shm
tmpfs                   477.9M     44.0K    477.8M   0% /tmp
tmpfs                   477.9M    108.0K    477.8M   0% /run
tmpfs                   477.9M    892.0K    477.0M   0% /var
tmpfs                   477.9M         0    477.9M   0% /media
/dev/mmcblk0p3            6.0G     41.4M      5.6G   1% /usr/local
/dev/mmcblk0p1          255.7M     68.0M    187.7M  27% /boot
root@ccu:~# 
Egal ob per direktem Update oder per Hochladen, das Ergebnis ist das selbe: Die Firmware wird hochgeladen, entpackt, und dann passiert einfach nichts mehr. Ich sehe auch per top bzw ps -ef keinen Prozess der ein Update vermuten lassen würde.

Das Filesystem sieht zu dem Zeitpunkt so aus:

Code: Alles auswählen

root@ccu:~# ls -la /usr/local/tmp/
total 264200
drwxr-xr-x    3 root     root          4096 Jul  7 14:04 .
drwxr-xr-x    8 root     root          4096 Jan  7 07:57 ..
-rw-rw-r--    1 root     root             0 Jan  1  1970 .nobackup
-rw-r--r--    1 root     root             0 Jan  1  1970 .watchdog
-rw-------    1 root     root     270522228 Jul  7 14:04 tmp.HT8PNv
drwxr-xr-x    2 root     root          4096 Jul  7 14:16 tmp.HT8PNv-dir
root@ccu:~# ls -la /usr/local/tmp/tmp.HT8PNv-dir/
total 1313760
drwxr-xr-x    2 root     root          4096 Jul  7 14:16 .
drwxr-xr-x    3 root     root          4096 Jul  7 14:04 ..
-rw-r--r--    1 root     root          2693 Jul  7 14:16 EULA.de
-rw-r--r--    1 root     root          2626 Jul  7 14:16 EULA.en
-rw-r--r--    1 root     root         11357 Jul  7 14:16 LICENSE
-rw-r--r--    1 root     root     1345249792 Jul  7 14:16 RaspberryMatic-3.59.6.20210703-rpi3.img
-rw-r--r--    1 root     root           106 Jul  7 14:16 RaspberryMatic-3.59.6.20210703-rpi3.img.sha256
root@ccu:~# 
Besagtes rmupdate Addon ist laut Hinweis auf https://technikkram.net/blog/2018/02/15 ... nopfdruck/ ab der RaspberryMatic Version 2.31.25.20180428 nicht mehr einsetzbar.

Was kann ich jetzt noch tun um upzugraden?

Benutzeravatar
Baxxy
Beiträge: 10648
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 597 Mal
Danksagung erhalten: 2180 Mal

Re: RaspberryMatic – Firmware Upgrade Probleme - Analyse

Beitrag von Baxxy » 07.07.2021, 16:22

nicx hat geschrieben:
07.07.2021, 15:42
Was kann ich jetzt noch tun um upzugraden?
Den uralten Hinweis der TK-Herren ignorieren und es einfach ausprobieren :!:
Es haben genug User in letzter Zeit damit ihr System erfolgreich geupgraded.
Ich selbst nutze das AddOn fast täglich um auf meinem Testsystem den neuesten Nightly-Snapshot "draufzubügeln", und das seit Wochen fehlerfrei.

Grüße
Baxxy

Benutzeravatar
jmaus
Beiträge: 9819
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 459 Mal
Danksagung erhalten: 1856 Mal
Kontaktdaten:

Re: RaspberryMatic – Firmware Upgrade Probleme - Analyse

Beitrag von jmaus » 07.07.2021, 16:48

nicx hat geschrieben:
07.07.2021, 15:42
Egal ob per direktem Update oder per Hochladen, das Ergebnis ist das selbe: Die Firmware wird hochgeladen, entpackt, und dann passiert einfach nichts mehr. Ich sehe auch per top bzw ps -ef keinen Prozess der ein Update vermuten lassen würde.

[...]

Was kann ich jetzt noch tun um upzugraden?
Du kannst mal die Zeit messen wie lange es dauert bis die finale *.img Datei fertig da liegt und dann auch ggf. an irgendwelchen lighttpd timeouts rumschrauben, denn ich denke das das ganze ein reines WebUI timeout bzw. Browser timeout problem ist. D.h. er packt das alles richtig aus, und lässt alle Skripte korrekt durchlaufen, wenn er dann aber den Requester in der WebUI weiterschalten will ist die Verbindung zum browser aus irgendwelchen Gründen weg bzw. in ein Timeout gelaufen und daher kann einfach der folge-Requester (wo man nur noch bestätigen und rebooten lassen muss) nicht mehr angezeigt werden. Vielleicht hilft es auch einfach schon in der /var/www/cp_maintenance.cgi das foreach in Zeile 1000 komplett auszukommentieren damit die Zeit reicht.

Wenn sich hier also genug leute finden die entsprechende Analysen (auch auf alter/langsamer Hardware mit langsamer SD Karte usw) machen, dann könnte ich in der Tat diese Firmware-Update-Routine in cp_maintenance.cgi so anpassen das vllt. sogar nur die Datei hochgeladen wird und es dann lediglich ein simpler konsistentcheck gemacht wird statt der recht zeitaufwendige checksummen-check der jetzt da drin umgesetzt ist. Denn die checksumme wird z.B. nach dem reboot im Recovery-System ohnehin dann noch einmal überprüft bevor die SD Karte damit entsprechend überschrieben wird. Ich brauche hier also etwas Hilfe von willigen Testern.

P.S: Und was du auch noch schauen könntest ist ob am schluss der Link /usr/local/.firmwareUpdate existiert oder nicht nachdem er das alles ausgepackt hat. Denn irgendwie müssen wir erst einmal feststellen wo genau denn diese Firmware-Update Routine ins Stocken gerät.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

nicx
Beiträge: 307
Registriert: 18.05.2013, 22:31
Hat sich bedankt: 4 Mal

Re: RaspberryMatic – Firmware Upgrade Probleme - Analyse

Beitrag von nicx » 08.07.2021, 08:38

jmaus hat geschrieben:
07.07.2021, 16:48
Du kannst mal die Zeit messen wie lange es dauert bis die finale *.img Datei fertig da liegt und dann auch ggf. an irgendwelchen lighttpd timeouts rumschrauben, denn ich denke das das ganze ein reines WebUI timeout bzw. Browser timeout problem ist. D.h. er packt das alles richtig aus, und lässt alle Skripte korrekt durchlaufen, wenn er dann aber den Requester in der WebUI weiterschalten will ist die Verbindung zum browser aus irgendwelchen Gründen weg bzw. in ein Timeout gelaufen und daher kann einfach der folge-Requester (wo man nur noch bestätigen und rebooten lassen muss) nicht mehr angezeigt werden. Vielleicht hilft es auch einfach schon in der /var/www/cp_maintenance.cgi das foreach in Zeile 1000 komplett auszukommentieren damit die Zeit reicht.
* Zeitdauer bis zum kompletten Entpacken: ca. 14min :shock:
* Wo genau könnte ich die Timeouts von lighthttpd anpassen? Wenns hilft bei der Lösungsfindung mache ich das gerne mal.
* Die Datei /var/www/cp_maintenance.cgi gibt es bei mir nicht... hast du das aus versehen einen falschen Pfad angegeben und meintest evtl. /www/config/cp_maintenance.cgi? Die Datei sieht in vi allerdings ein bisschen seltsam kodiert aus... kann ich da einfach gefahrenes "rumfuhrwerken"?
jmaus hat geschrieben:
07.07.2021, 16:48
Wenn sich hier also genug leute finden die entsprechende Analysen (auch auf alter/langsamer Hardware mit langsamer SD Karte usw) machen, dann könnte ich in der Tat diese Firmware-Update-Routine in cp_maintenance.cgi so anpassen das vllt. sogar nur die Datei hochgeladen wird und es dann lediglich ein simpler konsistentcheck gemacht wird statt der recht zeitaufwendige checksummen-check der jetzt da drin umgesetzt ist. Denn die checksumme wird z.B. nach dem reboot im Recovery-System ohnehin dann noch einmal überprüft bevor die SD Karte damit entsprechend überschrieben wird. Ich brauche hier also etwas Hilfe von willigen Testern.
bin dabei :)
jmaus hat geschrieben:
07.07.2021, 16:48
P.S: Und was du auch noch schauen könntest ist ob am schluss der Link /usr/local/.firmwareUpdate existiert oder nicht nachdem er das alles ausgepackt hat. Denn irgendwie müssen wir erst einmal feststellen wo genau denn diese Firmware-Update Routine ins Stocken gerät.
der Link existiert nicht:

Code: Alles auswählen

root@ccu:~# ls -la /usr/local/
total 44
drwxr-xr-x    8 root     root          4096 Jan  7 07:57 .
drwxr-xr-x   10 root     root          4096 May 25 14:05 ..
drwxr-xr-x    2 root     root          4096 Mar 15 14:44 addons
drwxrwxr-x    2 root     root          4096 Mar 15 14:45 crontabs
drwxr-xr-x    4 root     root          4096 Jun 11 15:57 etc
drwx------    2 root     root         16384 Jan  1  1970 lost+found
drwxr-xr-x    2 root     root          4096 May 14 08:33 sdcard
drwxr-xr-x    3 root     root          4096 Jul  8 08:23 tmp
root@ccu:~# 

Benutzeravatar
jmaus
Beiträge: 9819
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 459 Mal
Danksagung erhalten: 1856 Mal
Kontaktdaten:

Re: RaspberryMatic – Firmware Upgrade Probleme - Analyse

Beitrag von jmaus » 08.07.2021, 09:00

nicx hat geschrieben:
08.07.2021, 08:38
Vielleicht hilft es auch einfach schon in der /var/www/cp_maintenance.cgi das foreach in Zeile 1000 komplett auszukommentieren damit die Zeit reicht.
* Zeitdauer bis zum kompletten Entpacken: ca. 14min :shock:
* Wo genau könnte ich die Timeouts von lighthttpd anpassen? Wenns hilft bei der Lösungsfindung mache ich das gerne mal.
* Die Datei /var/www/cp_maintenance.cgi gibt es bei mir nicht... hast du das aus versehen einen falschen Pfad angegeben und meintest evtl. /www/config/cp_maintenance.cgi? Die Datei sieht in vi allerdings ein bisschen seltsam kodiert aus... kann ich da einfach gefahrenes "rumfuhrwerken"?
[/quote]

Ja, das sollte gehen. Und ja ich meinte natürlich die /www/config/cp_maintenance.cgi. Ich würde vorschlagen du editierst da mal ein bisschen rum und versucht da z.B. irgendwelche

Code: Alles auswählen

exec echo hier1 >>/tmp/blah
oder so statements einzubauen um zu tracken wo genau nach dem Auspacken er denn stehen bleibt. Denn wenn der /usr/local/.firmwareUpdate Link schon nicht da ist, dann scheint es ja sogar so zu sein das der tclsh script (das ist ja einer) aus irgendwelchen Gründen abgebrochen hat. Komisch. Deshalb da am besten mal statements reinbauen damit man mitbekommt bis wohin das ganze funktioniert und wo es endet. Und leg am besten halt eine bak datei davon an damit du zur not zurückgehen kannst.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Benutzeravatar
Baxxy
Beiträge: 10648
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 597 Mal
Danksagung erhalten: 2180 Mal

Re: RaspberryMatic – Firmware Upgrade Probleme - Analyse

Beitrag von Baxxy » 08.07.2021, 09:14

Die Timeouts zu erhöhen und die Checksummen-Prüfung zu entfernen mag zwar funktionieren, ist aber meiner Meinung nach nur eine umschiffung des eigentlichen Problems.

Man müsste eher die Ursache finden warum die Schreibrate der SD-Karten so drastisch reduziert ist.
nicx hat geschrieben:
08.07.2021, 08:38
/www/config/cp_maintenance.cgi? Die Datei sieht in vi allerdings ein bisschen seltsam kodiert aus...
Genau die ist es. Sieht mit nano auch merkwürdig aus, am PC mit Notepad++ passt aber alles.

Grüße Baxxy

Benutzeravatar
jmaus
Beiträge: 9819
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 459 Mal
Danksagung erhalten: 1856 Mal
Kontaktdaten:

Re: RaspberryMatic – Firmware Upgrade Probleme - Analyse

Beitrag von jmaus » 08.07.2021, 10:13

Baxxy hat geschrieben:
08.07.2021, 09:14
Die Timeouts zu erhöhen und die Checksummen-Prüfung zu entfernen mag zwar funktionieren, ist aber meiner Meinung nach nur eine umschiffung des eigentlichen Problems.
Nun, prinzipiell gebe ich dir da natürlich recht. Trotzdem tritt das Problem eben in letzter Zeit wohl sehr häufig auf und man bekommt somit nicht alle Nutzer dahingehend motiviert die SD Karte gegen eine neuere zu tauschen. Ich denke daher es wäre ja ein versuch wert die Firmware-Update Routinen noch ein bisschen dahingehend zu optimieren das diese problemloser durchlaufen kann wie das auch beim rmupdate-addon der Fall ist. Dort funktioniert es im Grunde ja auch nur weil dort im grunde nur ein Download erfolgt und der Webbrowser eben durch gewisse methoden dazu genötigt wird immer mal wieder beim webserver nachzufragen, wodurch das ganze eben nicht in diesen Timeout rennt.

Zusätzlich zu dem Debugging der Firmware-Update Routine und dem temporären entfernen der sha256 prüfung könnten betroffene auch wirklich nochmal schauen ob schon ein anpassen der folgenden Timeout Werte in der /etc/lighttpd/lighttpd.conf Datei zum erfolg führt:

Code: Alles auswählen

server.max-read-idle = 600
server.max-write-idle = 600
Diese könnte man einfach mal auf 6000 zum testen setzen und dann nach einem lighttpd neustart schauen was passiert.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

nicx
Beiträge: 307
Registriert: 18.05.2013, 22:31
Hat sich bedankt: 4 Mal

Re: RaspberryMatic – Firmware Upgrade Probleme - Analyse

Beitrag von nicx » 08.07.2021, 11:16

jmaus hat geschrieben:
08.07.2021, 10:13
Zusätzlich zu dem Debugging der Firmware-Update Routine und dem temporären entfernen der sha256 prüfung könnten betroffene auch wirklich nochmal schauen ob schon ein anpassen der folgenden Timeout Werte in der /etc/lighttpd/lighttpd.conf Datei zum erfolg führt:

Code: Alles auswählen

server.max-read-idle = 600
server.max-write-idle = 600
Diese könnte man einfach mal auf 6000 zum testen setzen und dann nach einem lighttpd neustart schauen was passiert.
Das habe ich eben ausprobiert, und damit funktioniert es! Ich bekomme im Browser die erwartete Sicherheitswarnung und kann das Upgrade durchführen. Top! :)

@jmaus kann der Idle Wert in RaspberryMatic nicht einfach grundsätzlich "nach oben" angepasst werden? Wirklich schädlich sollte das ja nicht sein, oder?

Benutzeravatar
jmaus
Beiträge: 9819
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 459 Mal
Danksagung erhalten: 1856 Mal
Kontaktdaten:

Re: RaspberryMatic – Firmware Upgrade Probleme - Analyse

Beitrag von jmaus » 08.07.2021, 11:31

nicx hat geschrieben:
08.07.2021, 11:16
Das habe ich eben ausprobiert, und damit funktioniert es! Ich bekomme im Browser die erwartete Sicherheitswarnung und kann das Upgrade durchführen. Top! :)
Und hast du auch Zeitmessungen dazu gemacht wie lange es gedauert hat bis der finale Update-Requester kam? Kannst du das nochmal nachstellen. Bitte am Ball nun bleiben und nicht zur Seite legen nur weil du damit jetzt dein Update hinbekommen hast. Wir wollen das ja generell lösen!
nicx hat geschrieben:
08.07.2021, 11:16
@jmaus kann der Idle Wert in RaspberryMatic nicht einfach grundsätzlich "nach oben" angepasst werden? Wirklich schädlich sollte das ja nicht sein, oder?
Na klar kann man das. Darum geht es hier ja. Eben ob man nun einfach die Timeouts nach oben setzt oder dafür sorgt das die Update-Routinen schneller fertig wird damit man gar nicht dieses Timeout rennt. Und das jetzt einfach wieder auf irgendeinen höheren Wert zu setzen reduziert auch nur wieder die Wahrscheinlichkeit das es passiert. Und ein zu großer Idle Wert dort kann auhc dazu führen das der Webserver zuviele gleichzeitige sessions offen lässt und damit die zentrale tendenziell überlastet. Man ist also gut beraten diese Werte zu gering wie möglich zu halten! Bitte also noch die anderen Dinge wie auskommentieren der sha Prüfung testen und dann wieder die Zeit mitloggen, etc. etc.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Antworten

Zurück zu „RaspberryMatic“