In den Pfadangaben für die zu modifizierenden bzw. zu prüfenden Dateien fehlt jeweils das Verzeichnis mit dem "Branding".
Da Freetz an dieser Stelle die Verzeichnisstruktur manipuliert:
https://github.com/Freetz/freetz/blob/master/fwmod#L696 kann das durchaus sein, daß irgendein "modscript" da ins Leere greift. Wobei mich die Frage quält, ob Du Dir hinsichtlich Freetz vs. Freetz-NG sicher bist, denn das sieht man dem Protokoll nicht an - ich bin ohnehin froh, daß die "in-place updates" überhaupt noch halbwegs zu funktionieren scheinen, weil die wohl fast niemand mehr nutzt, sondern überwiegend mit "update" gearbeitet wird von den verbliebenen "modfs"-Benutzern.
Welche Zeile jetzt konkret zu dem Fehler mit dem "sed" führt, weiß ich im Moment genauso wenig, wie die Antwort auf die Frage, warum Freetz das überhaupt (noch) macht. Es macht bei einem SquashFS-Image nur noch sehr begrenzten Sinn (weil identische Dateien ohnehin nur einmal gespeichert werden im Image, das Einzige, was da noch "aufträgt", sind die zusätzlichen Daten für die Verwaltung der File-Infos und auch das macht (fast) keinen Unterschied), das eigene Verzeichnis "all" zu nennen und für die Brandings nur noch Symlinks darauf anzulegen. Spätestens bei 07.19 mit dem Zusammenwerfen von deutscher und internationaler Version wird das vollkommen witzlos, weil die sich unterscheiden
müssen zwischen "avm" und "avme".
Wobei ich bei der Verwendung von Freetz ohnehin nicht verstehe, warum man da nachträglich mit "modfs" noch mal "drüberwischen" sollte oder wollte ... erst recht nicht mit den beiden hier getesteten Modifikationen. Der Boot-Manager steht auch als Option in der Freetz-Konfiguration zur Verfügung (
https://github.com/Freetz/freetz/blob/master/config/ui/patches.in#L1451) und für die LED-Seite gibt es auch irgendwo in Freetz einen eigenen Patch - beide zusammen (also "modscript" + Freetz-Patch) ergäben auch keinen Sinn. Ansonsten könnte man sogar die Patches aus den "modscripts" auch unter Freetz anwenden lassen (
https://github.com/PeterPawn/modfs/blob/master/run_modscripts) - da funktioniert auch die Ermittlung der "Brandings":
https://github.com/PeterPawn/modfs/blob/master/bin/scripts/extract_version_values#L136
==========================================
Denn nachdem ich das nun doch einmal mit einem Freetz-Image geprüft habe, mußte ich feststellen, daß hier tatsächlich Freetz die Ursache des Problems ist. In einem "normalen" Dateisystem gibt es unterhalb von "/etc" nur Verzeichnisse, die auf die Maske "default.*" passen, für die einzelnen Länder (default.<lkz>) und eines für die Basiseinstellungen der FRITZ!Box, das auf den Namen "default.$CONFIG_PRODUKT" hört und für jedes von der Firmware unterstützte Branding ein Unterverzeichnis mit diesem Namen enthält:
Code:
vidar:/home/FritzBox/FB7490/firmware $ find 113.06.83/etc/default.* -maxdepth 1 -type d -ls
8392215 4 drwxr-xr-x 2 root root 4096 Mar 6 2017 113.06.83/etc/default.049
8392216 4 drwxr-xr-x 4 root root 4096 Mar 6 2017 113.06.83/etc/default.Fritz_Box_HW185
8392235 4 drwxr-xr-x 3 root root 4096 Mar 6 2017 113.06.83/etc/default.Fritz_Box_HW185/avm
8392234 4 drwxr-xr-x 3 root root 4096 Mar 6 2017 113.06.83/etc/default.Fritz_Box_HW185/1und1
vidar:/home/FritzBox/FB7490/firmware $
Exakt anhand der Unterverzeichnisse in diesem "default.$CONFIG_PRODUKT"-Verzeichnis iteriert auch AVM über die verfügbaren Brandings. Daher filtere ich aus der Liste der "default.*"-Verzeichnisse alle die aus, die nach dem Punkt nur noch Ziffern enthalten und das eine, was dann übrig bleibt (in der AVM-Firmware), ist das Verzeichnis, in dem ich nach den Brandings suchen kann:
https://github.com/PeterPawn/modfs/blob/master/modfs#L885
Da Freetz hier aber leider zusätzliche Verzeichnisse "default.<service>" anlegt, schlägt exakt dieses Ermitteln des Brandings fehl (die Fehlermeldung des "sed" kommt daher) und "modfs" funktioniert damit für ein Freetz-Image nicht, solange das seine Standardwerte für irgendwelche Dienste in "etc/default.something"-Verzeichnissen ablegt.
Ich könnte mir jetzt überlegen, wo ich den richtigen Wert für "CONFIG_PRODUKT" finden kann (das oben gezeigte "extract_version_values" macht das ja auch wieder richtig, nur wird das in "modfs" nicht benutzt, weil ich es erst später geschrieben habe, als AVM die Versionsangaben an eine andere Stelle verschoben hat) ... aus dem laufenden System kann ich ihn nicht nehmen, weil dann "modfs" die Fähigkeit verliert, auch Images für andere Boxen (Modelle) als die, auf der es aktuell läuft, zu erstellen.
Andererseits muß sich gerade auch an Freetz für die nächste AVM-Version soo viel ändern (wenn es überhaupt eine Unterstützung für 07.20+ geben wird), daß man erst mal abwarten kann/muß/sollte, was genau Freetz da ändert, bevor man selbst irgendwie tätig wird.
Ursprünglich war "modfs" ja eigentlich als ein "leichterer Weg" im Vergleich zu Freetz gedacht, wo dem Benutzer das eigene Linux erspart werden sollte, inkl. dem ganzen Aufwand, den eine Freetz-Installation nach sich zieht. Daher bin ich etwas unschlüssig, ob die Idee, auch Freetz-Images nachträglich noch durch "modfs" ändern zu lassen, wirklich so gut bzw. wirklich "verbreitet" ist und wenn man das verneint, lohnt sich nicht mal die "Korrektur" der Ermittlung der Brandings.
Ob das mit der LED-Seite klappen sollte, weiß ich nicht. Theoretisch scheitert das genauso an dem Problem beim Ermitteln des Brandings:
https://github.com/PeterPawn/modfs/blob/master/modscripts/mod_leddisplay#L197 - wenn $TARGET_BRANDINGS halt leer ist, wird der Patch auf keine einzige Datei angewendet und die Prüfung (im "precheck" bzw. "postcheck") mittels "grep" scheitert eben nicht am Fehlen der gesuchten Zeilen, sondern bereits am Fehlen der gesuchten Datei, weil der Pfad mit einem leeren "$TARGET_BRANDING" (das ist beim Aufruf der erste Wert aus der Liste bei "$TARGET_BRANDINGS") halt nicht auf eine existierende Datei verweist.
Fazit: Nicht auf Freetz-Images anwendbar (zumindest im Moment) - macht aber in meinen Augen auch nur wenig Sinn. Wobei das "iterative Ändern" (wenn man das existierende System als Basis nimmt anstelle eines neuen Images) vielleicht noch eine interessante Idee bliebe - andererseits läßt sich eben jedes "modscript" auch innerhalb von "fwmod_custom" ausführen ... ggf. eben mit "run_modscripts", auch wenn das noch ziemlich "neu" ist; die Idee bzw. meine Feststellung, daß das so funktioniert, ist deutlich älter und oft wiederholt.