[Info] modfs - SquashFS-Image (AVM-Firmware) ändern für NAND-basierte FRITZ!Boxen

@Chatty:
Bitte noch einmal konkretisieren, wofür Du gerne eine Aktualisierung hättest ... ich bin noch nicht dazu gekommen, mir diese Labor-Version von gestern nachmittag anzusehen und weiß daher nicht, welche Fehler bei welchem "modscript" auftreten bzw. ob das alles bei dem Stand geblieben ist, den ich mir vor einer Woche angesehen habe (z.B. ob der Telnet-Symlink nun bereits drin ist oder nicht).

Intern "verkündet" AVM immer noch diese Version: "113.06.98-48226 Inhaus" als aktuell (bei "Public=0") und "offiziell" (Public=1) gibt es bisher nur die 06.92 als Release. Da ich die korrekten Parameter für den "Einstieg" in die Labor-Reihen nicht kenne, muß ich das also von Hand herunterladen, entpacken, analysieren und ggf. installieren - das dauert etwas länger, aber es passiert irgendwann auch.

@eisbaerin:
Ich mach so schnell ich kann ... im o.a. Patch irritiert mich die Zeichenkette im "return" in der Funktion "unknown" irgendwie - ist das ggf. nur ein ISO- vs. UTF-Problem beim Kopieren ins Board?

@All:
Hat schon mal jemand erkundet, warum die "Sicherheit"-Seite streikt bzw. ist das auch bei allen so mit dieser Labor-Version?

Was hat AVM denn konkret bei der Unterstützung von NTFS-Volumes geändert, daß da so eine eklatante Verbesserung bei herausgekommen sein soll?

Funktioniert die Umschaltung zwischen den Systemen auch mit dieser Labor-Version noch einwandfrei, wenn man den Boot-Manager-Patch verwendet?
 
der Telnet-Symlink nun bereits drin ist oder nicht
Der ist natürlich in der Labor nicht drin, den gibt es nur bei INTERN/INHOUS.

Ich mach so schnell ich kann ...
Habe ich irgendwo gedrängelt?

im o.a. Patch irritiert mich die Zeichenkette im "return" in der Funktion "unknown"
Es könnte auch so heißen: "return [[ - ]]"
Schau doch am besten in deine Datei was da in Zeile 225 steht. Die Zeile soll ja sowieso weg.
BTW: die "local function unknown()" gibt es nicht mehr, deshalb habe ich deine Funktion Zwischen "local function get_foncalls" und "local function get_tamcalls" verschoben, wo sie hoffentlich lange bleiben kann.
Am Ende der Funktionen wäre zwar schöner, aber dort ist es IMO sicherer vor den nächsten Änderungen von AVM.

die "Sicherheit"-Seite streikt
Jo, ist bei mir auch. 48153 und 48254.

Funktioniert die Umschaltung zwischen den Systemen auch mit dieser Labor-Version noch einwandfrei
Jo, funktioniert wieder. Bei der 48153 ging es nicht.
Wenn es mit dieser LABOR nicht gegangen wäre, dann hätte ich dir das schon längst gemeldet.
Bei der INTERNen hielt ich das aber nicht für nötig.

Zu NTFS kann ich nichts sagen. Ich nutze den USB nicht. (d.h. doch, für einen kleinen Lüfter, der die FB kühlt)
Aber ich habe was gefunden:
Geschwindigkeit bei der Nutzung von USB-Datenträgern mit NTFS-Dateisystem gesteigert
Und ein User hat auch schon berichtet, daß es bei USB2 viel schneller geht.

EDIT: Das Problem von #1278 und #1298 besteht für andere natürlich immer noch.
Bei mir geht es ;). Einfach die 32 Zeilen von
@@ -10,19 +10,18 @@
bis
if (g_led_display==current) then
löschen. (ungefär Zeilen 68 bis 99)
 
Zuletzt bearbeitet:
Geht damit auch telnet oder zumindest SIAB? Das hätte ich gern in der neuesten FW... ich schau nachher mal, was noch fehlschlägt.
 
Natürlich geht telnet, wenn du das modscript dafür benutzt.
Das ging auch bei der INTERNen. Nur gab da das modscript einen Fehler, da telnet bei der INTERNen schon aktiviert ist.
Du warst IMO auch der erste, der modfs mit einer INTERNen FW gemacht hat.

SIAB ist bei der INTERNen auch dabei, aber nicht das von Peter auf Port 8010?, sondern das originale von AVM.
Das ist bei der LABOR nicht mehr vorhanden.
BTW: Bei mir läuft das originale SIAB von AVM auch mit dieser LABOR und den RELEASE ;) (mod_siab_from_avm)
Und auch auf anderen FB (7272, 7362SL, 7412).

@PeterPawn Hast du eine Ahnung warum die shellinaboxd bei der 7590 312.812 Byte und bei der 7490 292.348 Byte hat? Jeweils letzte INTERN. Bisher war die IMO überall gleich 292.664 Byte.
 
Zuletzt bearbeitet:
@eisbaerin:
Nein, keine Ahnung ... mögliche Erklärungen wären nicht entfernte Symbole (kein "strip") oder auch eine andere Architektur als Ziel für den Compiler - wobei bisher m.W. bei AVM beide Modelle "34kc" waren.

------------------------------

Man müßte mal einen Blick in die neue Firmware werfen, woran AVM jetzt die Verfügbarkeit der "Console" festmacht ... der Start war ja in den "ctlmgr" gewandert und wenn am Ende nur noch das Fehlen/Ausblenden der Buttons für Start/Stop und ggf. das fehlende Binary die Anzeige/Verwendung in der Support-Seite be-/verhindern, dann könnte man ja auch mal über eine SIAB-Version mit kompatiblen Parametern nachdenken ... die Möglichkeit, den Shell-Zugriff nur auf Anforderung zu starten (im Gegensatz zu dem ansonsten ständig aktiven SIAB bei "meiner" Version, obwohl das ja auch jeder selbst als CGI einbinden könnte, wie AVM es bisher machte) und dafür einen bereits vorhandenen Mechanismus zu benutzen, ist natürlich einen Blick wert - wobei ich davon sofort wieder ablassen würde, wenn bei AVM die Benutzung von ShellInABox auch ohne TLS-Verbindung möglich ist (bisher war das m.E. so); das ist dann auch nicht wirklich besser als ein "normaler" Telnet-Zugang, was das "Mitlesen" durch Unbefugte betrifft (auch wenn der Aufwand geringfügig höher ist bei SIAB).

Was in den bisherigen Intern-Versionen halt interessant war (für mich persönlich viel interessanter als SIAB, was man problemlos auch selbst bauen konnte), war die dort weiterhin vorhandene Datei "webcm" ... damit konnte man die früheren Möglichkeiten des Setzens von Einstellungen auch über HTTP-Requests ohne größeren eigenen Aufwand wieder mit Leben erfüllen (Lesen über "query.lua" geht ja weiterhin), sofern man mit den damit auch einhergehenden Sicherheitsrisiken leben konnte. Ich bin etwas erstaunt, daß/wenn AVM das Programm in den Inhouse-Versionen immer noch am Start hat ... entweder es gibt zuviele interne Lösungen, die darauf angewiesen sind (und wo der Shell-Zugriff per SIAB nicht reicht) oder man will es doch wieder "unter die Leute bringen" ... nunmehr dann eben "auf eigenes Risiko".
 
wobei ich davon sofort wieder ablassen würde, wenn bei AVM die Benutzung von ShellInABox auch ohne TLS-Verbindung möglich ist (bisher war das m.E. so)
Richtig, bisher war das so.
Das kann/konnte man aber in der shellinabox.lua ändern,
indem man auch bei internen Aufrufen (also vom LAN) die shellinabox_launcher nutzt.
Jetzt hat das aber AVM geändert und nutzt immer die shellinabox_launcher.
Wo jetzt die shellinabox_launcher gestartet wird habe ich noch nicht gefunden.

die dort weiterhin vorhandene Datei "webcm"
Danke für den Hinweis, die habe ich jetzt auch noch in die LABOR eingebaut.

Wird es denn modfs für die 75xx noch irgendwann geben?
Ich würde auch mit einer Vorabversion mal testen.
 
Zuletzt bearbeitet:
@eisbaerin
Ich habe eine Verstaendnisfrage.
In der "how-to-modfs-die-gebrauchsanleitung" steht
> funktioniert nur mit dualboot FB (alle NAND FB außer der 7390)! Dazu gehören z.Z. folgende:
> 7490, 7430, 7412, 7369i, 7362SL, 7272, 5490i, 3490, 3390, 3370, 3272
> 7590, 7582, 7581, 7580, 7560

> Erlauben tut Peter z.Z. die Ausführung von modfs nur auf folgenden FB:
> 3370, 7490, 3390, 7362SL, 3490, 7430, 7272, 3272

Das ist fuer mich irgendwie wiederspruechlich, zumal oben noch die Frage nach der Verfuegbarkeit steht.
Kann man denn z.B. auf einer 7490 per modfs eine FW fuer 75XX bearbeiten, um sie dann per AVM Update
auf eine 75XX bringen?
Das waere doch zumindest ein workaround, wenn es nicht direkt auf 75XX funktioniert.

MfG
sulihari
 
Die 1. Aufzählung gilt für "dualboot FB", d.h. alle FB für die modfs gehen könnte, wenn es Peter programmieren würde.
Hat er schon seit Februar versprochen. ;)
> Erlauben tut Peter z.Z. die Ausführung von modfs nur auf folgenden FB:
Das müßte besser heißen:
modfs geht z.Z nur für folgende FB

Kann man denn z.B. auf einer 7490 per modfs eine FW fuer 75XX bearbeiten
Nein, da eben modfs noch nicht für die 75xx geht. Wo man es macht, ist dann fast egal.
um sie dann per AVM Update
auf eine 75XX bringen?
Das geht schon gar nicht.
wenn es nicht direkt auf 75XX funktioniert.
Auf der 75xx geht es. Ich erstelle z.B. die Dateien für die 7272, 7362SL, 7412, 7490 auf der 7580.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Micha0815
Aber allgemeinverständlich sollte es schon sein! Sonst muß ich ja sogar erst jedesmal in deine Liste schauen ;)
Und da gibt es VR10/11 nicht mal!
 
  • Like
Reaktionen: TomTomNavigator
"Grundsatz-Artikel" zum Thema: Wie geht es weiter mit "modfs" und wann kann ich damit auch die Labor-Version ohne Fehler modifizieren?

Angeregt durch
Nicht daß das modfs da irgendwas durcheinandergebracht hat.
(und ähnliches, auch per E-Mail, das oben war nur der letzte Beitrag dazu, den ich auf die Schnelle finden und verlinken konnte) möchte ich mal ein paar Gedanken loswerden ...

Ich will es noch einmal explizit festhalten, falls es zuvor nicht so richtig deutlich wurde ... an die 06.98-Reihe kann und will ich "modfs" nicht so anpassen, daß eine gemeinsame Version sowohl die Versionen davor als auch die 06.98-Labor oder gar die 07.0x unterstützt. Die von mir festgestellten Unterschiede habe ich bereits irgendwo aufgelistet, der abweichende Kernel und die andere C-Library sind so tiefgreifende Änderungen, daß eine "one for all"-Version das nur noch unübersichtlicher machen würde.

Diesen Problemen kann man - jenseits des reinen Patchens von Lua-Dateien, was auch schon in mehreren Patches (bzw. "modscripts") jeweils in mehreren Versionen enthalten ist, weil sich im Laufe der Zeit bei AVM etwas dazu änderte - nur mit statisch gelinkten Binaries entgegentreten oder mit der Integration der kompletten uClibc in Version 0.9.33.2, die wegen einiger identischer Symlinks für Bibliotheken aber auch nicht so ganz ohne ist und doch eher mit einem zweiten "lib"-Verzeichnis zu lösen wäre.

Ich habe eben absolut keine Lust, vor der Veröffentlichung der Quellen durch AVM selbst auszukaspern, was AVM da genau konfiguriert hat und was nicht, wenn die C-Lib, die BusyBox oder der neue Kernel übersetzt werden. Ich habe zwar auch dazu noch nicht explizit bei AVM angefragt, aber ich vermute mal, die Haltung "Wir veröffentlichen OpenSource-Quellen nur für Release-Versionen." wird sich nicht geändert haben ... worauf auch immer die basieren soll (die GPL kann es kaum sein, die sagt etwas anderes, denn auch Labor-Versionen werden von AVM "verbreitet").

Daß AVM da lange nicht so kooperativ ist, wie man immer tut, ist ja auch nicht erst seit heute bekannt und bei mir zumindest hat man es inzwischen geschafft, daß ich mir sinnlose Anfragen und den Ärger bei entsprechenden Antworten (die ja nicht mal "abschlägig" sind, sondern eben einfach behaupten, das hätte schon alles seine Richtigkeit, was da im OSS-Paket enthalten ist) gar nicht erst mehr antue.

Wer sich also unbedingt für die neue Labor-Reihe erwärmen kann/möchte/muß, der muß sich - so er "modfs" dafür verwenden will - auch um die Anpassung an diese Labor-Reihe kümmern - auch um ggf. notwendige Änderungen bzgl. der Anzeige von VPN-Verbindungen in der Übersichtsseite (darum geht's im oben verlinkten Beitrag/Thread). Bis einschließlich 06.92 sind mir (seit der Korrektur für die internationale Firmware im April 2017) keine Probleme bei der Release-Version bekannt und m.W. hat sich die Lua-Seite zur 06.93 (die gibt es ja auch nur für die 7490) hin auch nicht verändert - wenn das bei der 06.98 anders sein sollte und daraus mit dem Patch eine falsche Übersichtsseite entsteht (so ja meine Vermutung aus dem "vergangenen Jahr" weiter oben), muß man das selbst suchen, auf diesen einen Patch verzichten oder eben ganz auf "modfs" verzichten.

vpn_overview_06.92.PNG

Ich selbst will eine "modfs"-Version "ab 06.98" auch nicht als Branch im Repo aufmachen, weil dann wieder neue Unklarheiten entstehen, wie man das unterscheidet oder richtig verwendet, wer mit welcher Version genau Probleme hat(te), usw. - wenn AVM nicht von sich aus die notwendigen Informationen bereitstellt (möglichst auch noch unaufgefordert), dann muß man eben auf die Benutzung der Labor-Reihe oder auf die Benutzung von "modfs" verzichten. Damit kann jeder selbst entscheiden, was ihm wichtiger ist ... die Teilnahme an der Labor-Reihe und der Test neuer Funktionen oder seine eigenen Modifikationen der Firmware. Wenn AVM sich beim Feedback zur Labor-Reihe dann selbst ins Fleisch schneidet, weil die Leute "mit Ahnung", die ihre FRITZ!Box meist recht gut kennen und sie modifizieren wollen oder gar müssen, von der Labor-Reihe praktisch ausgeschlossen werden, könnte man sich dort vielleicht auch überlegen, ob die eigene Position so in alle Ewigkeit fortbestehen soll (wobei ich da wenig Hoffnung habe) oder die Quellen (es würde ja schon die Konfiguration reichen, weil man die dann nicht mühsam selbst auspendeln müßte) dann doch zeitnah (und vor dem Release) veröffentlicht werden.

Da das Modifizieren auch auf den GRX5-Modellen ziemlich anders laufen müßte (hatten wir ja auch schon, auch wenn mein "Versprechen" jetzt bald ein Jahr alt wird), bin ich inzwischen tatsächlich im Zweifel, ob man das in dieser Form wirklich weiterführen sollte ... derzeit tendiere ich eher dazu, in die originale Firmware von AVM einfach nur noch als wichtigsten Schritt einen eigenen Public-Key einzubauen (der "frische" Branch "framework" im YourFritz-Repo wird die dazu entwickelten Skript-Dateien aufnehmen) und ein paar Hilfsmittel (statisches OpenSSL, signimage-Skripte) und den Rest dann über passende "Zusatz-Images" machen zu lassen, wo die enthaltene "/var/install" dann die Aufgaben von "modfs" (Entpacken, Ändern, Packen, wobei das Entpacken gar nicht notwendig wäre, wenn man nur noch die laufende Version ändert, wie das bei "modfs" am Beginn ja auch war) im Batch-Betrieb übernimmt und auf den ganzen Dialog-Kram einfach verzichtet.

Das macht es deutlich mehr "straight forward" und alte Probleme wie "memory pressure" sollten bei den GRX-Modellen eigentlich auch nicht mehr auftreten bzw. lassen sich mit passenden Einstellungen auch verhindern (zumindest als "oops"). Da man dabei sogar die anderen Dienste abschießen lassen kann (nach dem Upload eines neuen Images im GUI ist ohnehin ein Neustart angesagt, weil der größte Teil der Dienste schon gekillt wird, bevor die "/var/install" überhaupt zum Zuge kommt), ist das Speicherplatzproblem noch einmal kleiner und vermutlich nicht mal bei den VR9-Modellen mit 128 MB RAM ein richtiges Thema (sonst müßte man halt das Abreißen des "USB-Stapels" (aka USB-Stack) beim Update noch verhindern, wie es für WAN über Mobilfunk o.ä. ja schon geschieht).

Wobei ich die kleinen Modelle halt nicht alle selbst testen kann, aber für diese "Möhren" gibt es ja i.d.R. auch keine Labor-Reihe und wer dort (vor FRITZ!OS 7) noch "modfs" verwenden möchte, hat ja noch die aktuelle/alte Version.

Ich habe zwar mal gesagt, daß es "modfs" auch für neue Modelle und Versionen geben soll/wird, aber das muß ja vielleicht doch nicht in der bisherigen Form sein ... man kann ja auch "außerhalb der FRITZ!Box" erst einmal entsprechende Images erstellen (und dabei unterstützt einen dann das "modfs 2.0" bzw. das neue "YourFritz" - das war/ist ja das ursprüngliche Ziel) und selbst signieren, die dann auf der Box nur noch die vorprogrammierten Aktionen ausführen - dann braucht man nicht mal mehr zwingend einen Shell-Zugang, wenn man z.B. nur OpenVPN benutzen will.Das kann dann auch weiterhin deutlich unterhalb der "Schwelle" laufen, die eine eigene Freetz-VM und/oder eine eigene Toolchain (ob Freetz oder nicht) erforderlich macht ... abgesehen davon hat Freetz natürlich bis zum Erscheinen der AVM-OSS-Pakete dasselbe Problem.

Wenn diese Aktionen in so einem eigenen Image dann auch darin bestehen können, in einer eigenen Firmware-Erweiterung (aka Plugin-Image, denn genau so soll das am Ende arbeiten und dafür braucht es nur den richtigen "Manager", der diese Plugins findet und den Rest dann schon AVM's "tr069fwupdate" überläßt) Programme auszutauschen (also Updates zu machen) oder hinzuzufügen (vielleicht sogar zu löschen, wobei man da auch drauf verzichten könnte - dann muß man das eben wieder neu aus den Paketen zusammenstellen), dann können diese Erweiterungen sogar FRITZ!OS-Updates überleben, solange man nur dafür sorgt, daß die paar (wenigen) Voraussetzungen für diesen "Manager" auch beim Update mit einer originalen AVM-Firmware automatisch wieder eingebaut werden (und sei es erst beim nächsten Start, weil schon zuviele Prozesse tot sind).

Dann würde sich zwar die eigene Modifikation wie ein Virus oder ein Wurm verhalten, den man nur mit Recovery auch wieder los wird, aber das könnte ich auch vor mir selbst vertreten - wie es prinzipiell geht, hatte ich ja schon mal gezeigt mit dem "autoudpate" (dessen Benutzung bei der 6490 war je mehr "Abfallprodukt"). Man braucht nur in der "post_install" zu prüfen, ob von der AVM-Version der "/var/install" in einem Update-Image zusätzliche Kommandos zum Speichern der neuen Firmware hinten angefügt wurden und dann weiß man genau, daß da gerade ein AVM-Update stattgefunden hat (bzw. stattfinden wird).

Dann kann man entweder gleich das AVM-Filesystem noch ändern, bevor es überhaupt installiert wird (bei GRX-Modellen, wo es den Wrapper nicht gibt) oder man hängt selbst noch weitere Kommando an und aktiviert in dem Wrapper (bei Modellen mit einem solchen) nach dem Kopieren der Dateien noch die notwendigen Routinen, um sich beim nächsten Start wieder in das AVM-SquashFS-Image einzuklinken. Vielleicht leidet darunter die Dualboot-Möglichkeit etwas (in der YAFFS2-Partition ist i.d.R. kein Platz für zwei Root-Images und das gerade als rootfs gemountete kann man nicht einfach überschreiben und müßte wohl die zweite Partition dafür nehmen) - aber im Notfall könnte man sogar (wenn im NAS-NAND genug Platz vorhanden ist) das neue SquashFS-Image da erstellen und erst beim nächsten Booten noch in die Wrapper-Partition kopieren, bevor das rootfs in der "inittab" mit "pivot_root" ersetzt wird.

Der entscheidende Unterschied zum bisherigen "modfs" (und zu Freetz erst recht) wäre es halt, daß die originale AVM-Firmware nur noch minimal geändert wird (selbst die Patches für irgendwelche Korrekturen des AVM-GUI könnte man ja durch "bind"-Mounts mit einer gepatchten (Datei-)Version ersetzen, so viele Dateien sind das ja nicht) und die Modifikationen, die ihrerseits Binärdateien brauchen, nur noch "neben" der AVM-Firmware existieren und so eine Art abgetrenntes Subsystem ergeben (ggf. sogar mit der alten uClibc als DSOs, bis man die AVM-Bibliotheken verwenden kann, ansonsten eben statisch gelinkt). Vielleicht kommt es ja bei den GRX-Modellen sogar mal so weit, daß jemand (aus der OpenSource-Szene) die Spezifikationen für den "VM-Betrieb" in die Hand kriegt und man wirklich das AVM-System und ein eigenes getrennt betreiben kann. Der Puma7 soll ja ebenfalls Virtualisierung unterstützen.

Wie gesagt ... das wäre(n) die Grundidee(n) und die meisten Zutaten dafür sind inzwischen auch vorhanden oder zumindest als PoC getestet für andere Zwecke (z.B. in "toolbox"). Wenn jemand Interesse daran hat, bei der Umsetzung dieser Ideen zu helfen, ist er/sie/es herzlich willkommen ... ich nehme aber auch jede (schlüssige) Kritik an der Idee gerne zur Kenntnis und diskutiere das aus. Vielleicht findet man gemeinsam ja sogar noch bessere Lösungsansätze - die von mir skizzierten basieren aber inzwischen alle auf vorhandener Software bzw. existierenden Lösungen, die nur passend abgewandelt werden müssen, auch wenn das noch nicht alles zu einem großen Ganzen zusammengesetzt ist.

Wenn es in Freetz Bestrebungen geben sollte, die neue Kernel-, uClibc-ng- und BusyBox-Version vor dem Release von FRITZ!OS 7 zu unterstützen, dann kann man darüber nachdenken, auch noch ein "modfs" (quasi als Retro-Version) für FRITZ!OS 7 zu bauen - aber ich vermute mal stark (mehr ist das aber auch nicht als eine Vermutung), daß da die Zahl der Mitstreiter so gesunken ist, daß FRITZ!OS 7 (und das OSS-Paket von AVM dazu) am Ende das Rennen machen werden. Die Freetz-BusyBox ist ja inzwischen neuer als die neue Version von AVM, nur weiß wohl niemand, was AVM selbst bei der 1.24.2 an Optionen verwendet und man wird wohl nicht umhinkommen, dieselben Funktionen/Applets/Optionen als Minimalumfang zu unterstützen, wenn man nicht irgendwann feststellen will, daß die Freetz-BusyBox das Problem und nicht die Lösung ist, wie es bei der uClibc in den frühen 06.35/06.36-Labors der Fall war, als AVM auf den Kernel 3.10.73 wechselte.

Jedenfalls gibt es inzwischen in der Freetz-Toolchain ja ein paar Einstellmöglichkeiten, die das Erstellen von Binaries für solche Fälle (wo die Dateien eben nicht in den AVM-Baum integriert werden, sondern woanders lagern können/sollen) deutlich erleichtern ... einige dieser Programme gibt es ja im "binaries"-Branch des YourFritz-Repos zum Download, die sind alle auf einen Basis-Pfad "/var/custom" als "Wurzelverzeichnis" ausgerichtet, damit man sie in einem solchen "Plugin-Image", das dort halt gemountet wird, ohne große Probleme einsetzen kann und sie trotzdem ihre Bibliotheken oder "Hilfsdateien" irgendwie finden, ohne sie im AVM-Dateisystem zu suchen.

Zwar muß man bei allen diesen Programmen im Moment noch auf die Konfigurationsmöglichkeiten wie im Freetz-GUI verzichten, aber das würde ich eben ohnehin "extern" machen (lassen) und auf der Box selbst gar nichts mehr groß konfigurieren. Das spart nicht nur die Notwendigkeit eines Interfaces dafür, es reduziert auch die Angriffsmöglichkeiten - ein nicht vorhandenes GUI (bzw. eines, das keine Einstellungen bietet, höchstens Protokolle oder Anzeigen) kann auch nicht gehackt werden. Allerdings sind dann Änderungen halt aufwändiger ... aber nicht nur für den Besitzer, auch für einen Angreifer.
 
Hallo, da ich mich nun auch mal an modfs trauen möchte, habe ich noch eine Frage zum Ablauf.

Als Beispiel (ausgeführt auf einer 7490 da es auf einer 7590 nicht ausführbar ist):
Code:
./modfs update /var/media/ftp/FRITZ.Box_7590.154.06.92.image /var/media/ftp/FRITZ.Box_7590.154.06.92.squashfs

Dann auf die 7590 laden...
(Darauf achten das in der inaktiven Partition auch die 6.92 installiert ist, bzw immer das selbe Image mit dem das squashfs Image erzeugt wurde)

Code:
./install_inactive_rootfs /var/tmp/FRITZ.Box_7590.154.06.92.squashfs

Und danach per "linux_fs_start" auf die andere Partition umstellen...

Verstehe ich es Richtig das ich mit meiner 7490 ein squashfs Image erstellen kann und dieses dann auf der 7590 einspielen kann, wollte bevor ich richtig loslege nochmal alles klarstellen für mich?

Sollte dies soweit korrekt sein -> Muss ich auch für jedes weitere Update das ich einspiele möchte um die modfs funktionen nicht zu verlieren, die gleiche Vorgehensweise benutzen, da ja leider das direkte ./modfs update <image> auf der 7590 nicht funktioniert?
 
Spätestens beim "install_inactive_rootfs" sollte das deutlich falsch sein ... das ist (aus der Erinnerung) nur dafür gedacht, ein SquashFS-Image in eine vorhandene YAFFS2-Partition zu schreiben ... bei der 7590 muß direkt ein SquashFS-Image in die passende UBIFS-Partition geschrieben werden.

Leute ... tut mir bitte den Gefallen und vergeßt "modfs" (das Programm bzw. Shell-Skript) für die Verwendung mit GRX5-Boxen. Das geht dabei los, daß "modfs" die Firmware eigentlich gar nicht auseinandernehmen kann (oder ich bin total auf dem Holzweg), weil die "filesystem.image" im AVM-Image kein SquashFS mit ext2-Header ist und das Wrapper-FS enthält (wo dann das eigentliche rootfs noch einmal als SquashFS-Image "verpackt" liegt), sondern direkt ein SquashFS-Image. Das könnte allerdings sogar noch klappen (müßte ich selbst erst erkunden, warum genau), weil ich mal ein paar Änderungen in Richtung 6490 eingebaut hatte und dort das Dateisystem auch direkt ein solches SquashFS-Image ist.

Ansonsten besteht doch das "modfs" am Ende auch nur aus dem Entpacken des AVM-Trees, der Ausführung von ein paar "modscripts", die man problemlos auch direkt aufrufen kann, wenn man die passende Umgebung schafft und am Ende aus dem Einpacken mit "mksquashfs". Das alles geht doch außerhalb der Box mindestens genauso gut und auf praktisch jedem Linux-System und auch ohne die komplette Freetz-Umgebung (das war ja mal die Idee hinter "modfs").

Je nachdem, was man also genau unter "modfs" versteht (das Framework, welches die Modifikationen erst ermöglicht oder die einzelnen Patches, die natürlich nicht darauf angewiesen sind, unbedingt von "modfs" aus aufgerufen zu werden, auch wenn ein paar Voraussetzungen wichtig sind), sollte man sich davon verabschieden ... das gilt zumindest für mich selbst, denn ich sehe (immer noch) das "modfs" als den "Rahmen" für die Ausführung von Patches und die von mir selbst dafür bereitgestellten Dateien für die verfügbaren Änderungen sind eher als Beispiele zu sehen, denn als "echter Bestandteil" von "modfs". Nicht zuletzt deshalb habe ich doch die "contrib"-Geschichte eingebaut und ein "template" als Gerüst für den Bau eigener Patches bereitgestellt.

Wer z.B. nur den "gui_bootmanager" in seine Firmware einbauen lassen möchte, der muß das Skript nur mit passenden Parametern (für eine bereits ausgepackte Dateisystem-Struktur) aufrufen - wie das z.B. für ein Freetz-Image in der "fwmod_custom" aussehen könnte, steht auch schon irgendwo (wenn ich es richtig in Erinnerung habe).

Wenn ich eine 7590 modifizieren wollte, würde ich das genau so machen, wie ich es beim Thema "Telnet-Zugang zur 7580" beschrieben habe - natürlich kann man zwischen dem Entpacken und dem Einpacken noch beliebige eigene Änderungen vornehmen lassen, auch wenn ich dort nur das Wiederanlegen des Symlinks für den Telnet-Daemon gezeigt habe. Danach dann das neue Image genau so installiert, wie ich es dort beschrieben habe und alles sollte funktionieren - zumindest mit deutlich höherer Wahrscheinlichkeit, als wenn man "modfs" dafür verwenden wollte. Im Prinzip gilt das auch für die Installation eines Freetz-Images (steht auch so im oben verlinkten Thread in #1, wenn auch erst am Ende, aber ich gehe ohnehin davon aus, daß man generell auch bis zum Ende liest) und ist (meinerseits jedenfalls) wohl die vollständigste Beschreibung der Benutzung von "eva_tools" (zur Installation "beliebiger" Images) bei den GRX5-Boxen.
 
  • Like
Reaktionen: Blackace
@PeterPawn :
Die rc.tail.sh endet ohne modfs mit "exit 0" und nach modfs mit "#exit 0".
Ist das gewollt oder ein Versehen?
 
Das kommt darauf an ... wenn Du "mod_custom_images" verwendet hast, ist das korrekt.

Endet die "rc.tail.sh" mit diesem "exit 0", wird vom "init" die Verarbeitung von "rc.S" an dieser Stelle beendet. Gestartet wird das aus der "/etc/inittab" und ruft dann die Skripte in "/etc/init.d/[SE][0-9]{2}-.*" (als RegEx zu sehen, nicht als Glob-Pattern) der Reihe nach auf ("der Reihe nach" heißt eigentlich "in Gruppen", die sich an der ersten Ziffer festmachen - also alle "[SE]0*"-Dateien vor "[SE]1*"-Dateien) ... die Dateien mit "S" an der ersten Stelle durch "Inkludieren" und die mit "E" in einer eigenen Shell-Instanz.

Das gilt am Ende der Initialisierung auch für die "S99-tail", die dann ihrerseits diese "rc.tail.sh" inkludiert (bis 06.9x, ab 06.98-Labor dann anders, habe ich irgendwo bei den sichtbaren Änderungen auch aufgeführt). Damit führt jedes "exit" in einer dieser Dateien (egal, wie tief die "Schachtelung" mit "source" (oder ".") auch sein mag, solange es nicht innerhalb einer Sub-Shell erfolgt) zum Ende der Verarbeitung der "rc.S".

Da durch das erwähnte "modscript" nach der "S99-tail" noch die "E99-custom" in den Ablauf eingebaut wird (deren Existenz im passenden Verzeichnis reicht aus, damit "rc.S" die nach der "S99-tail" aufrufen will), braucht es dieses Auskommentieren des "exit"-Statements. Bis zur 06.98 eben, wo das aber m.E. auch nicht stören sollte, weil ein fehlendes "exit" am Dateiende zum "impliziten Verlassen" mit dem letzten Return-Code führt. Bei der 06.98 ist das - wie gesagt - jetzt eine "E99-tail" und da könnte es sogar sein, daß auch die "rc.tail.sh" am Ende geändert wurde ... das läuft jetzt eben in einer gesonderten Shell-Instanz und hat damit auch seinen eigenen Satz an Variablen und kann keine im Kontext der "rc.S" setzen und noch einiges mehr an Auswirkungen, wenn man eine neue Shell-Instanz verwendet.
 
@eisbaerin: Erstelle mal eine Datei mit "echo "exit 0" > datei" und ruf die mal so auf: . datei
Das haut dich direkt aus dem Login, sprich, deine Loginshell wird beendet anstatt nur das Skript.
 
Hab ich was verpasst? :-(

Code:
If you're looking for any version of 'modfs' to modify the firmware of your
FRITZ!OS device, please use the current version from

yourfritz.de/modfs.tgz

If you want any older versions due to any good reason, you may checkout it
yourself from the GitHub repository at

github.com/PeterPawn/modfs

and prepare a TAR file for the FRITZ!OS device or use any other way to transfer
the files to your device.

Please keep in mind, that you have to use a filesystem, which handles Unix
access control rights correctly, to unpack and/or store the provided files.
Do not use an USB storage volume with FAT or NTFS format here.

It's not possible to download from a HTTPS URL (like GitHub) to a device with
firmware from AVM, because the 'wget' applet doesn't support TLS and AVM's own
'httpsdl' utility is a little bit shy with its options and I wasn't able to
persuade it to a direct download from

codeload.github.com/PeterPawn/modf…

- that's why I provide a mirror for the archive file, which is reachable without
a TLS connection.

But only the latest (or better: the most recent) version will be provided here
from now on.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.