Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LAB-Updates patch für 5590 + 6890 - Bitte um revice / Probleme mit "Flash-Image zur gross" bei der 6890 jetzt #756

Closed
maverick3005 opened this issue Mar 4, 2023 · 9 comments

Comments

@maverick3005
Copy link

maverick3005 commented Mar 4, 2023

Hallo.

Nach einem ausführlichem Lokaltest hier ein generischer Patch zum Update der Labore für die 5590 und 6890
mit der Bitte um eine letzte Prüfung.

Fix:
labor-updates2.patch

Da bei der 6890, bei der auf die AVM-Diffs der 7590 zugegriffen wird, muss noch eine exklusion für den neuen Kernel 4.9.235
gesetzt weden, da es hier noch keine AVM-diff gibt im Moment. Somit erst einmal Vanilla hier.

Hinweis/Request:

bei der 6890 ist das Image jetzt zu gross!

Die Revision hat jetzt auch einen Sprung von 7.39 -> 7.51 gemacht intern bei AVM.

Es kann gerade einmal der MC noch eingebaut werden und tr69 entfernt werden, ferner muss Myfritz rausfliegen.
Dann sind im Image gerade noch 23000 Bytes frei. Extra Tools... keine Chance mehr....

Vorschlag für eine weitere "Removing"-Option, ggfs. auch sinnvoll für die anderen LTE-Modelle (im Labor+Finals):

Es sind neben der abwählbaren 2. DSL-Firmware (also die "Vorgängerversion")
Jetzt auch 2 LTE Firmwares als Binary-Blobs mit in der Firmware. Diese Binarys belegen fast 2 MB extra Platz und ein
vollständiges Image für Leute die tr69 und MyFritz weiter drin haben wollen lässt sich wg. Speichermangel nicht mehr bauen.

Dazu gibt es im LTE-Bereich des Webinterfaces, so wie bei DSL die Option "Downgrade" auf Vorgängerversion für das
(USB)-LTE-Modul.

Wenn im Image nur noch die aktuellere LTE-Firmware enthalten ist, erfolgt automatisch direkt nach dem ersten Flashen dann
einmalig ein Firmware-Update des USB-Moduls, welches auch im Logfile protokolliert wird beim ersten Neustart.

@fda77
Könntest Du ggfs. die Sektion "Remove-Patches" erweitern für die LTE-Modelle das man eine 2. LTE-Firmware (also Downgrade)
der Binarys als auch die WebIF Funktion entfernen kannst - so wie es auch bei der 2nd. DSL-Firmware schon immer machbar wäre ?

Etwas Platz kann man noch sparen wenn mann "avme" mit raus nimmt. Bei den Languages ist nicht mehr viel rauszuholen.
Aktuell reicht es nicht mal mehr für "nano, tcpdump, mtr, netcat oder irgend ein anderes kleines Tool/lib".
Auch für zlib ist nicht mal mehr Platz.

@fda77
Copy link

fda77 commented Mar 5, 2023

  • Ein PR wär mir vieeeeeeeel lieber!
  • In config/.img/ nichts ändern, das macht die gh-action automatisch.
  • docs/FIRMWARES.md fehlt

Vorschlag für eine weitere "Removing"-Option, ggfs. auch sinnvoll für die anderen LTE-Modelle (im Labor+Finals):

Ich hab so ein Teil nicht, daher muss das jemand mit machen, da man schauen muss was raus kann und vor allem die webif-änderungen gehen nicht blind
Hast du mal geschaut was da sonst so an grossen dateien drin ist? Evtl sind irgend debug-tools drin die raus könnten (rrdtool, benachmark)

Wenn im Image nur noch die aktuellere LTE-Firmware enthalten ist, erfolgt automatisch direkt nach dem ersten Flashen dann
einmalig ein Firmware-Update des USB-Moduls, welches auch im Logfile protokolliert wird beim ersten Neustart.

Interessante sache. Nach diesem einmalengen(??) update bräuchte man diese firmware gar nicht mehr im fos?

Und nicht vergessen avm nach sourcen zu fragen

@maverick3005
Copy link
Author

maverick3005 commented Mar 5, 2023

Srry. ich weiss das Du lieber einen PR hättest, da bin ich nicht Sattelfest genug, da ich auch noch Sachen drin habe,
die dann wahrscheinlich autogeneriert sind, was ich lokal wegen fehlendem Speicher für sämtliche Images gerade
nicht mit durchführen kann :-(

Beim 2. Punkt weiss ich jetzt aber künftig bescheid.

Ich hab mir das beim Webinterface auch nur kurzweilig angeschaut und könnte da nur mit nem Screenshot aushelfen,
das codemässig umzusetzen inkl. WebIF Patch übersteigt meine Erfahrungen.

Das Changelog der 6890 brachte mich darauf, und das wird auch in die Final-Version dann mit Sicherheit rein kommen..
Direkt nach dem Flashen wird einmalig ein check/sofortiges Updates des LTE-Modus gemacht. Und nach einem letztmaligen Neustart hat man dann (wie bei DSL) jederzeit die Option die LTE Firmware von jetzt aktuell: 02.01.21 -> 02.01.19 wieder downzugraden.

Meine Tests mit 3 deutschen Netzen haben ergeben, das die ältere Firmware in allen Fällen die bislang gemeldeten Bugs drin haben, und mit der jetzigen neuen Firmware der LTE-Betrieb durchgängig etwas besser wurde - jedoch auch noch nicht wirklich so fehlerfrei wie ich das ausführlich an AVM vor einiger Zeit gemeldet hatte.

Ja sonst habe ich nur festgestellt, das wie bei allen Boxen noch eine Vorgänger-DSL Version drin war, da passen weiterhin
die alten Patches. Im direkten Grössenvergleich sind es ausschliesslich die neue LTE-Firmware-Optionen, also Downgrade der LTE-Modulfirmware, die uns die restlichen paar Bytes im Image wegnehmen :-(

Und die führt das Image jetzt ans absolute Limit. Bauen und testen konnte ich problemlos - nachdem ich alle Tools bis auf den MC entfernen musste, tr69 raus und Myfritz raus. "AVME" noch mit raus bringt kaum noch Ersparnisse.

Aber hier mal so zur Veranschaulichung:

/freetz-ng/build/original/filesystem/usr/share/lte:

-rw-r--r-- 1 freetz freetz   116111 Feb 18 03:31 daemon_base.lua
-rw-r--r-- 1 freetz freetz  1260014 Feb 18 03:31 fea01.diff
-rw-r--r-- 1 freetz freetz  1261734 Feb 18 03:31 fea02.diff
-rw-r--r-- 1 freetz freetz 22734016 Feb 18 03:31 feb01.fls
-rw-r--r-- 1 freetz freetz   183539 Feb 18 03:31 feb02.diff
-rw-r--r-- 1 freetz freetz    16155 Feb 18 03:31 mcs_db.lua
-rw-r--r-- 1 freetz freetz   112234 Feb 18 03:31 modem_base.lua
-rw-r--r-- 1 freetz freetz    30743 Feb 18 03:31 modem_fibocom.lua
-rw-r--r-- 1 freetz freetz    74325 Feb 18 03:31 modem_intel.lua
-rw-r--r-- 1 freetz freetz   109528 Feb 18 03:31 plmn.lua
-rw-r--r-- 1 freetz freetz    18124 Feb 18 03:31 survey.lua

Man könnte noch mehr sparen indem man die Binarys zum Update selber auch noch entfernt, wären dann nochmal 1-2 MB mehr Speicher. Allerdings kann man dann bei einem Firmwareupdate mit einem Freetz-Image auch kein einmaliges Update mehr machen und müsste zumindest einmal eine Stockfirmware zum initial-Update einmal verwenden und dann freetzen.

Wäre also sinnfrei die Funktionen zum einmaligen Update auf die aktuellste Version auch noch zu entfernen.

Es gibt auch noch viel ältere Versionen an LTE-Modulfirmware noch aus der FOS 6.x Zeit. Das aktuelle Labor hat im Image jetzt die beiden Versionen drin: a.) neuste b.) Vorletzte - was in diesem Fall die der Labor 7.39 bzw. 7.29 final ist.

Zu Deiner Frage ob man die Firmwares dann "Nicht mehr braucht":

Das müsste ich tatsächlich mal testen. Normal wird die Firmware IN DAS USB-Modul geflasht und nicht wie bei WLAN jedes mal "ins Ram geladen". Wäre eine gute Idee, man könnte (siehe oben) erheblich mehr sparen wenn man dann alle Blobs+das .fls Image auch entfernt, bis auf die LUA-Sachen die werden für die Modulverwendung ja aktiv verwendet. ;-)

Das wäre konkret der Teil:

-rw-r--r-- 1 freetz freetz  1260014 Feb 18 03:31 fea01.diff
-rw-r--r-- 1 freetz freetz  1261734 Feb 18 03:31 fea02.diff
-rw-r--r-- 1 freetz freetz 22734016 Feb 18 03:31 feb01.fls
-rw-r--r-- 1 freetz freetz   183539 Feb 18 03:31 feb02.diff

Das "feb01.fls" ist das finale Flashfile, gebildet aus den Diffs, und falls es was zum flashen gibt, wird dieses Ergebnis dann wohl genommen. Addier das mal zusammen, dann weisst Du wieso absolut kein Platz mehr jetzt im Image ist :-(

Wichtig zu wissen ist aber: Das geht automatisch wärend des Boots, an irgend einer Stelle in den Startscripten rennt jetzt aber noch ein Check-Script, was nachschaut ob die Modulfirmware aktuell ist, sofern nicht, wird das Update sofort selber durchgeführt. Dann im Logfile eingetragen das das Update startet und gefolgt von Erfolg oder Misserfolg.
Das müsste noch gesucht werden und auch mit rausfliegen ggfs. ?

Noch eine Anmerkung: Ich weiss nicht wie AVM sich hier vorstellt künftig noch Erweiterungen einzubauen, wenn die sich mit dieser Methode selber ne Möglichkeit genommen haben, noch im Stock-Image ausreichend Platz haben.
(man wird an die 7390 erinnert, wo dann online initial WLAN & co erst mal nachgeladen werden mussten, weil das nie
ins Image reingepasst hatte)....

Einzig eine Repartitionierung ueber ein Recovery und etwas weniger "ftp-Storage" seitens AVM wäre für die dann noch
eine sinnvolle Option?

Der Flashbereich für den ftp-Storage hat unverändert hunderte MB noch frei. Einzig der Platz für die beiden Bänke 0+1
ist jetzt am Limit :-(

Nach den entsprechenden Sourcen zu 3 Boxen sind die Anfragen trotzdem rausgegangen, die Hoffnung das die für Betas was rausgeben ist bei mir jedoch recht klein aus Erfahrung.

@maverick3005
Copy link
Author

maverick3005 commented Mar 5, 2023

Ich hab so ein Teil nicht, daher muss das jemand mit machen, da man schauen muss was raus kann und vor allem die webif-änderungen gehen nicht blind Hast du mal geschaut was da sonst so an grossen dateien drin ist? Evtl sind irgend debug-tools drin die raus könnten (rrdtool, benachmark)

Ja rrdtool ist drin, damit erstellen die ja die stats, das wird für die LTE life-stats verwendet, die man bei DSL? wohl nicht braucht.
Ansonsten die ueblichen Labor-Dinge halt, wie andere Boxen auch immer so noch drin haben.

Blöd ist bei der 6890, das die jetzt monatelang keine einzige Lab bekam, und jetzt schlagartig alles auf einmal
inkl. Versionsänderung auf 7.51 gegangen ist und das image richtig fett wurde.

Man kann zumindest erstmal auch die 2. DSL->Version/downgrade entfernen, dann kann man wenigstens noch
tcpdump oder was anderes Kleines mit einbauen. dnsmasq & co. brauchst aber nicht zu denken, das für sowas
auch nur annäheren Platz wäre, oder Wirguard + openssl libs, usw... :-(

@maverick3005
Copy link
Author

maverick3005 commented Mar 5, 2023

Da ist die Downgrade Option im Menü:
lte-firmware6890

Was AVM allerdings verschweigt, so mal eben downgrade OHNE Reboot findet dann bei mir zumindest erst mal gar keine Netze, sondern ein manueller Reboot muss noch nachlaufen.

@maverick3005
Copy link
Author

maverick3005 commented Mar 5, 2023

Fix:

labor-updates2.patch

@maverick3005
Copy link
Author

maverick3005 commented Mar 5, 2023

Ich habe gerade nochmal einen Test durchlaufen lassen:

STEP 3: PACK/SIGN
  checking for left over version-control-system files
  integrate freetz info file into image
packing var.tar
  checking signature key files
    adding public signature key file
creating filesystem image (SquashFS4-xz)
  SquashFS block size: 64 kB (65536 bytes)
copying kernel image
  kernel image size: 6.9 MB, max 8.0 MB, free 1.1 MB (1173504 bytes)
copying filesystem image
  filesystem image size: 41.8 MB, max 44.0 MB, free 2.2 MB (2285568 bytes)
adding checksum to kernel.image
adding checksum to filesystem.image
packing images/6890_07.51.all-rev103467_labor_freetz-ng-21355M-f0389bc81_20230305-042411.image
  packed image file size: 48.9 MB (51261440 bytes)
signing packed .image file
  signed image file size: 48.9 MB (51261440 bytes)
source firmware: 6890-LTE_en-de-es-fr-it-nl-pl 162.07.51-BETA rev103467 {ALL} [MOVE21NL1] (18.02.2023 03:31:09)
  source image file size: 49.4 MB (51752960 bytes)
done.

FINISHED

Bei diesem Test gibt es NEUES Problem:

Ich habe jetzt das 2. DSL-Image entfernt - Durch dieses "DSL- 2nd Modul Remove" ist jetzt auch zeitgleich
die Update-Funktion SAMT Downgrade-Dialog im LTE-Modul mit verschwunden! - heisst: Der 2. DSL-Remove Patch
entfernt auch die Up/Downgrade-Routinen für LTE gleich mit? - damit ist dann auch kein erstmaliges Upgrade
direkt nach dem Update/Boot für LTE mehr möglich. Sieht für mich so aus, als ob auch für das LTE-Modul dieselbem
Upgrade-Tools / Diff-Tools wie für das DSL-Image verwendet werden? Natürlich sind die Diffs für die LTE-Module
selber weiterhin vollständig noch im Image vorhanden.

Um weiter noch etwas Platz einzusparen habe ich das Branding für AVME, als auch die restlichen Languages
ausser DE+EN noch mit entfernt:

ABER:

Die Box wird in AT, DE, CH und weiteren Ländern sehr oft eingesetzt. Hier sind die Modelle in der Regel durchweg
AVME branded, und speziell für die Schweiz + Holland sind ausser DE/EN noch die anderen Sprachen wichtig.
Das Branding "AVM" enthält ferner einige der Nicht-DE Provider nicht, welche nur im AVME-Branding vorhanden sind.

Lediglich für Deutschland konnte ich so jetzt mal 2,2 MB wieder frei machen - kann aber dieses Image jetzt nicht
mehr auf Boxen für AT/CH/NL und weiteren Ländern 1:1 verwenden.

Das mit dem entfernen des DSL 2nd Image auch das "LTE-Upgrade" komplett entfernt ist, sollte natürlich nicht sein.

Daraus ergibt sich jetzt das Problem: Wird für beide Anwendungen dasselbe "Upgrade"-Tool und "Patch/Diff"-Tool verwendet,
müssen diese Teile auch weiterhin im Image bleiben, ausser der User entfernt das Downgrade dann später sowohl für
das 2nd DSL-Image als auch Downgrade für das LTE-Modul - allerdings wird es dann auch beim frischen Flashen
NICHT mehr zu einem einmaligen Upgrade für das LTE-Modul mehr kommen, welches ueber das StartScript getriggert wird...

Das ist jetzt mal so eine richtig blöde Sache....

Zur Info, wie das beim LTE jetzt aussieht:
6890-downgrade-removed

Was ich jetzt nicht mehr testen konnte: Image einmal flashen, LTE-Modul ist noch auf altem Stand und das System versucht einmalig ein Upgrade zu machen, da das Modul bereits auf aktuellem Stand schon ist.

Im dmesg/syslog befinden sich jedoch aufgrund des entfernen der "2nd" DSL/LTE-Optionen keinerlei Fehler
oder neue Auffälligkeiten. Soweit rennt das stabil mit Mobilfunk.

Was ich noch feststellen konnte wärend der Bootphase:
Ab einem gewissen Punkt werden die 3 USB-serial Ports initialisiert, damit das LTE-Modul ansprechbar ist.
Es erfolgt dann eine "Hayes"-Versionsabfrage nach der aktuellen Modul-Version und wenn diese kleiner ist, als
die aktuelle Vorgabe des Images, wird dann der Patch/Upload-Process wärend des Boot-Vorganges
bereits getriggerd. Ist die Version allerdings bereits auf dem letztem Stand, passiert nichts, ein (sinnloser) Start des
AVM Binary-Updaters wird somit nicht jedes mal unötig angestartet.

Möglich wäre bei entfernen dieser Binarys UND einer veralterten Firmware im LTE-Modul dann beim ersten Reboot
an dieser Stelle aber auch ein crash mitten im Boot. Ich müsste dazu das Modul erst einmal wieder downgraden und das
einmal durchspielen und im syslog nachsehen was dann passiert.

Derzeitiges Fazit: Die AVM-Binary Downgrade/Patch-Routinen dürfen wir nicht mehr vollständig entfernen, wenn beim DSL das 2nd Image entfernt wird, da sie weiterhin für LTE beim Kaltstart (zumindest erstmalig nach UPGRADE) einmal benötigt werden.

  • Dann ist auch der Menüpunkt beim LTE-Modul für das Downgrade sofort wieder da.

Wie das jetzt bei der 6850 4g und 6850 5g und ggfs 6820 v1/v2/v3 in den Laboren aussieht kann ich nicht sagen.
Sollte es dort ebenso eine Option in den LabBetas geben, wird das Thema hier ebenfalls relevant. Hierzu wäre Feedback
von Besitzern dieser Geräte dringend nötig.

@maverick3005
Copy link
Author

maverick3005 commented Mar 5, 2023

Derzeit "bester" Kompromiss:

STEP 3: PACK/SIGN
  checking for left over version-control-system files
  integrate freetz info file into image
packing var.tar
  checking signature key files
    adding public signature key file
creating filesystem image (SquashFS4-xz)
  SquashFS block size: 64 kB (65536 bytes)
copying kernel image
  kernel image size: 6.9 MB, max 8.0 MB, free 1.1 MB (1173504 bytes)
copying filesystem image
  filesystem image size: 42.3 MB, max 44.0 MB, free 1.7 MB (1773568 bytes)
adding checksum to kernel.image
adding checksum to filesystem.image
packing images/6890_07.51.all-rev103467_labor_freetz-ng-21355M-f0389bc81_20230305-051223.image
  packed image file size: 49.4 MB (51773440 bytes)
signing packed .image file
  signed image file size: 49.4 MB (51773440 bytes)
source firmware: 6890-LTE_en-de-es-fr-it-nl-pl 162.07.51-BETA rev103467 {ALL} [MOVE21NL1] (18.02.2023 03:31:09)
  source image file size: 49.4 MB (51752960 bytes)
done.

FINISHED

AVM+AVME beide wieder aktiv, 2nd DSL-Image wieder aktiv, lediglich alle Sprachen ausser DE+EN entfernt.
Mit 1,7 MB Rest reicht es aber nach wie vor nicht aus, einfache tcp-tools (wg. der extra libs) noch sinnvoll mit einzubauen.
Lediglich ein für Europa brauchbares "Universalimage" kann man so wieder bauen.

(Für Myfritz+tr069 ist es nach wie vor extrem eng. Im EU-Ausland ist zumindest tr069 bei manchen Providern
leider immer noch zwingend mit zur Provisionierung teilweise erforderlich - hauptsächlich für VoIP, usw.
Der Anwender müsste dann zumindest English als Menusprache erst mal hinnehmen)

In Deutschland würde tr069/tr369 bei der Telekom für User aktiv benötigt werden, wenn sie unbedingt "EasySupport"
über die Telekom nutzen wollen/müssen, um Ihre gesamte VoIP-Config samt automatischem DSL-Krempel
sich autoprovisionieren lassen wollen (....)

@fda77 fda77 closed this as completed in fe53f71 Mar 5, 2023
@fda77
Copy link

fda77 commented Mar 5, 2023

Du kannst gern jeden Tag eine neuere Labor Version reinmachen - solang du es selbst macht

Bei Freetz ist das mit den brandings etwas anders, die werden alle in ein "all" Verzeichnis gepackt und verlinkt. AVM hat je ein Verzeichnis. Das war schon bei DS so. Daran spart man also nichts.

Wenn ein Webif-Patch nicht mehr für 7.50 passt sollte jemand den anpassen. Hab ja bereits gesagt dass ich webif patches nicht blind machen kann+will!
Daher wäre meine Lösung: remove dsl firmware für lte geräte deaktivieren

Was man aus /usr/share/lte löschen kann muss man in den avm-scripten nachschauen. Ich hab aktuell aber nicht mehr alls avm-images lokal entpackt, die Platte ist voll. Das macht man eh am besten wenn man so ein Gerät zum ausprobieren hat.
Falls du das nicht selbst machen möchtest: https://github.com/Freetz-NG/freetz-ng/discussions/categories/wishlist (was nicht bedeutet dass es tatsächlich jemand macht)

Die .lua Dateien scheinen mir recht gross

@fda77
Copy link

fda77 commented Mar 5, 2023

Du hattest nur 50% gefunden: 72fb527
Vor NG wurde das nur manuell gemacht und dementsprechend (schlecht) war die Qualität der Definitionen

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants