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

Da läuft das Skript in die Funktion "extract_rootfs_from_firmware", die das neue Format mit dem 256-Byte-Header als "Dummy-SquashFS" nicht kennt.

Ändere ich in Kürze (vielleicht noch heute nacht) ... Workaround wäre manueller Download und Aufruf mit "update", dann kommt "extract_rootfs_from_wrapper" zum Einsatz und das sollte damit umgehen können.
 
Hallo PeterPawn, ok werde ich später deinen Workaround mal ausprobieren.
 
zu 1.:
"install" habe ich jetzt mal mit 113.06.05 benutzt, weil ich mir eine Partition zerschossen hatte.
Hat geklappt!
Ich habe das jetzt mal von einer 113.06.50 auf eine 113.06.51 versucht, was leider fehlgeschlagen ist.

Du schreibst immer etwas von einem DEBUG Modus, der angeblich in #1 beschrieben ist.
Ich habe schon 'zig mal danach gesucht. Bitte zeige mir wo es steht oder wie es genau geht, dann schicke ich dir gerne auch den.
Auf das Problem bin ich dann als nächstes gestoßen, als ich versucht habe, das ganze zu debuggen...
Auf der längeren Suche nach den Parametern zum Debuggen bin ich dann hier in Posting #190 fündig geworden.

@PeterPan
Wenn man mit modfs neu anfängt, ich das in der Tat ziemlich unübersichtlich geworden und daher stellen vermutlich viele in Zukunft Fragen ohne Debug output

Der Debug Output hat mich dann erst einmal völlig verwirrt, da er mit "starting modfs script version 0.3.1-01082015" beginnt, obwohl ich Version 0.3.3 frisch vom Server herunter geladen hatte :shock: (aber das steht in der Tat immer noch mit der alten Versionsnummer im source)

Der Fehler selbst wurde dann leider auch nicht mit protokolliert, aber zum Glück konnte ich das noch von der Konsole retten
Code:
Extrahieren des Wurzeldateisystems aus dem Flash-Filesystem ..../modfs: line 2886: /usr/sbin/blkid: not found
Fehler
Fehler beim Ermitteln des Dateisystemtyps der Image-Datei.
root@vdslbox:/var/mod# which blkid
/sbin/blkid
Hier scheint der Pfad anders zu sein. Nachdem ich das gefixed hatte, konnte dann das Wurzeldateisystem nicht entpackt werden:
Code:
Extrahieren des Wurzeldateisystems aus dem Flash-Filesystem ...Filesystem on /var/tmp/3965/filesyste
m.image is (0:0), which is a later filesystem version than I support!
 Fehler
Das extrahierte 'äuÃYere Dateisystem' kann nicht eingebunden werden.
Schaut man sich erneut das Debug Output an ist klar: es wird versucht mit "squashfs3" eine Version 4 zu nutzen, was natürlich nicht klappen kann. Aber nun bin ich mit meinem Latein erst einmal am Ende. Zwar ist das eine selbst gebaute FW, aber ich hatte sie schon mal auf anderem wege selbst geflashed, daher weiß ich, dass sie i.O. ist. :confused:
Irgendwie scheint auch die Forenoption zum Anhängen einer Datei nicht zu funktionieren (weder IE noch FF klappen bei mir), so dass ich den Output mal inline als "Code" hier einfüge:
Code:
1970-01-01 02:06:01.554 - modfs: starting modfs script version 0.3.1-01082015
1970-01-01 02:06:01.575 - modfs: script=./modfs
1970-01-01 02:06:01.600 - modfs: using language de
1970-01-01 02:06:01.628 - modfs: using temporary file list from /var/tmp/5434_filelist_3961
1970-01-01 02:06:01.649 - modfs: cleanup trap set
1970-01-01 02:06:01.671 - modfs: invoked with: install /var/media/ftp/FRITZ.Box_7490.113.06.51M.image
1970-01-01 02:06:01.694 - modfs: noversioncheck=1, update_file_provided=1
1970-01-01 02:06:01.715 - modfs: firmware_update_file=/var/media/ftp/FRITZ.Box_7490.113.06.51M.image
1970-01-01 02:06:01.736 - modfs: install_image_only=1, firmware_update_file=/var/media/ftp/FRITZ.Box_7490.113.06.51M.image, install_no_kernel=0, install_no_wrapper=0
1970-01-01 02:06:01.758 - check_prerequisites: starting checks
1970-01-01 02:06:01.825 - progress: mode=1, msg=Ermitteln der Hardware-Version ...
1970-01-01 02:06:01.858 - check_prerequisites: hwrev=185
1970-01-01 02:06:01.924 - progress: mode=3, msg= OK
1970-01-01 02:06:01.991 - progress: mode=1, msg=Prüfen, ob die Hardware-Version unterstützt wird ...
1970-01-01 02:06:02.016 - check_prerequisites: supported hardware revision
1970-01-01 02:06:02.084 - progress: mode=3, msg= OK
1970-01-01 02:06:02.151 - progress: mode=1, msg=Suchen der Einstellung zur Umschaltung auf das alternative System ...
1970-01-01 02:06:02.184 - check_prerequisites: system switch value is 1
1970-01-01 02:06:02.252 - progress: mode=3, msg= OK
1970-01-01 02:06:02.319 - progress: mode=1, msg=Prüfen der aktuell zu startenden Systemversion ...
1970-01-01 02:06:02.458 - progress: mode=3, msg= OK
1970-01-01 02:06:02.525 - progress: mode=1, msg=Suchen der aktuellen Kernel-Partition ...
1970-01-01 02:06:02.556 - check_prerequisites: kernel device is /dev/mtdblock2
1970-01-01 02:06:02.624 - progress: mode=3, msg= OK
1970-01-01 02:06:02.691 - progress: mode=1, msg=Suchen der alternativen Kernel-Partition ...
1970-01-01 02:06:02.722 - check_prerequisites: alternative kernel device is /dev/mtdblock0
1970-01-01 02:06:02.788 - progress: mode=3, msg= OK
1970-01-01 02:06:02.855 - progress: mode=1, msg=Vergleich der Systeme in den Kernel-Partitionen ...
1970-01-01 02:06:02.922 - progress: mode=3, msg= übersprungen
1970-01-01 02:06:02.988 - progress: mode=1, msg=Suchen der aktuellen Dateisystem-Partition ...
1970-01-01 02:06:03.020 - check_prerequisites: filesystem device is /dev/mtdblock3
1970-01-01 02:06:03.086 - progress: mode=3, msg= OK
1970-01-01 02:06:03.154 - progress: mode=1, msg=Suchen der alternativen Dateisystem-Partition ...
1970-01-01 02:06:03.185 - check_prerequisites: alternative filesystem device is /dev/mtdblock1
1970-01-01 02:06:03.252 - progress: mode=3, msg= OK
1970-01-01 02:06:03.320 - progress: mode=1, msg=Überprüfen des zur Verfügung stehenden Speicherplatzes im RAM ...
1970-01-01 02:06:03.349 - check_free_tmpfs: wanted=25165824, needed=10485760
1970-01-01 02:06:03.385 - check_free_tmpfs: exiting, rc=0
1970-01-01 02:06:03.451 - progress: mode=3, msg= OK
1970-01-01 02:06:03.519 - progress: mode=1, msg=Überprüfen des freien Speicherplatzes für das Auspacken des Dateisystems ...
1970-01-01 02:06:03.547 - find_free_storage_space: needed=140509184, accept=
1970-01-01 02:06:03.717 - get_nand_mountpoint: location=/var/media/ftp
1970-01-01 02:06:03.754 - check_free_nand: size=140509184, nand=/var/media/ftp, free=395923456
1970-01-01 02:06:03.777 - find_free_storage_space: /var/media/ftp:395923456
1970-01-01 02:06:03.799 - find_free_storage_space: exiting, rc=0
1970-01-01 02:06:03.866 - progress: mode=3, msg= OK
1970-01-01 02:06:03.888 - check_prerequisites: exiting, rc=0
1970-01-01 02:06:04.921 - modfs: source=file_update
1970-01-01 02:06:04.949 - modfs: firmware update file=/var/media/ftp/FRITZ.Box_7490.113.06.51M.image
1970-01-01 02:06:05.023 - progress: mode=3, msg=Die angegebene Datei '/var/media/ftp/FRITZ.Box_7490.113.06.51M.image' wird als Quelle für die Aktualisierung genutzt.
1970-01-01 02:06:05.048 - find_free_space: wanted=32M, order=tmpfs nand storage
1970-01-01 02:06:05.078 - check_free_tmpfs: wanted=33554432, needed=33554432
1970-01-01 02:06:05.112 - check_free_tmpfs: exiting, rc=0
1970-01-01 02:06:05.134 - find_free_space: tmpfs=/var/tmp
1970-01-01 02:06:05.156 - find_free_space: exiting, rc=0
1970-01-01 02:06:05.180 - get_working_directory: /var/tmp
1970-01-01 02:06:05.202 - modfs: working directory=/var/tmp
1970-01-01 02:06:05.230 - modfs: image directory=/var/tmp/3965
1970-01-01 02:06:05.295 - progress: mode=1, msg=Extrahieren des neuen Kernel-Images aus dem Firmware-Image ...
1970-01-01 02:06:05.317 - extract_kernel: src=/var/media/ftp/FRITZ.Box_7490.113.06.51M.image, target=/var/tmp/3965/kernel.image
1970-01-01 02:06:05.389 - extract_kernel: exiting, rc=0
1970-01-01 02:06:05.454 - progress: mode=3, msg= OK
1970-01-01 02:06:05.521 - progress: mode=1, msg=Extrahieren des Flash-Filesystems aus dem Firmware-Image ...
1970-01-01 02:06:05.542 - extract_filesystem: src=/var/media/ftp/FRITZ.Box_7490.113.06.51M.image, target=/var/tmp/3965/filesystem.image
1970-01-01 02:06:05.974 - extract_filesystem: exiting, rc=0
1970-01-01 02:06:06.039 - progress: mode=3, msg= OK
1970-01-01 02:06:06.105 - progress: mode=1, msg=Extrahieren des Wurzeldateisystems aus dem Flash-Filesystem ...
1970-01-01 02:06:06.126 - extract_rootfs_from_wrapper: src=/var/tmp/3965/filesystem.image, target=/var/tmp/3965/filesystem_core.squashfs
1970-01-01 02:06:06.161 - detect_image_filesystem: src=/var/tmp/3965/filesystem.image, fstype=squashfs3, rc=0
1970-01-01 02:06:06.192 - get_temp_dir: directory=/var/tmp/5434_3966
1970-01-01 02:06:06.297 - detect_image_filesystem: src=/var/tmp/3965/filesystem.image, fstype=squashfs3, rc=0
1970-01-01 02:06:06.321 - get_squashfs_tools_version: src=/var/tmp/3965/filesystem.image, version=3
1970-01-01 02:06:06.343 - unpack_squashfs: using SquashFS version 3
1970-01-01 02:06:06.385 - sq_unsquashfs: /var/mod/bin/185/unsquashfs3 -info /var/tmp/3965/filesystem.image -e filesystem_core.squashfs
1970-01-01 02:06:06.418 - sq_unsquashfs: exiting, rc=1
1970-01-01 02:06:06.440 - unpack_squashfs: exiting, rc=1
1970-01-01 02:06:06.469 - remove_directory: directory=/var/tmp/5434_3966, rc=0
1970-01-01 02:06:06.491 - extract_rootfs_from_wrapper: exiting, rc=40
1970-01-01 02:06:06.557 - progress: mode=3, msg= Fehler
1970-01-01 02:06:06.623 - cleanup: running cleanup from file /var/tmp/5434_filelist_3961
1970-01-01 02:06:06.642 - rm -r /var/tmp/3965
 
Zuletzt bearbeitet:
Da macht dann offenbar die Dateisystem-Erkennung noch Probleme, wenn das eingesetzte blkid-Kommando irgendwelche Optionen nicht kennt. Ich schaue es mir demnächst an ... im Moment kann ich gerade nicht.

Das Pfad-Problem dürfte aber ein "Phantom-Fehler" sein, denn wenn da keine weiteren Änderungen erfolgt sind am AVM-Original, ist /sbin/blkid nur ein Symlink auf /usr/sbin/blkid und der Pfad im originalen Skript stimmt eigentlich.

Warum schreibe ich solche Sachen überhaupt (meistens) mit absoluten Pfaden und verlasse mich nicht einfach darauf, daß das System schon selbst die richtige Datei findet? Weil bei Existenz zweier wirklich unterschiedlicher Versionen, die auch noch über komplett andere Aufrufoptionen verfügen, die Reihenfolge in der PATH-Variablen dann (solange es außerhalb der Busybox ist) entscheidet, welche Version gefunden und benutzt wird.

Am einfachsten wird es wohl wieder sein, einfach eine Busybox mit ins "bin"-Verzeichnis zu legen (habe ich ja für "patch" bereits gemacht, damit ist die jetzt vorhanden) und künftig alle etwas "hakeligen" Kommandos nur noch auf der Basis dieser Busybox aufzurufen (und notfalls eben zusätzliche Kopfstände im Skript-Code zu veranstalten, die mit einem anderen Binary nicht erforderlich wären).

Das verhindert dann die Abhängigkeiten von den im aktuellen Image enthaltenen Kommandos ... aber dann müßte/würde ich modfs auf die Behandlung von Versionen > 06.36 beschränken (also eigentlich sogar auf SquashFS4), weil die ganzen "regression tests" mit alten Images mir zu anstrengend sind in der Wiederholung. Am Ende habe ich eigentlich mehr Zeit in die ganzen Tests bei der 0.3.1 investiert (die Versionsnummer im Skript passe ich an, danke für den Hinweis) als in das Schreiben, weil es so viele unterschiedliche Kombinationen gab (s. Tabelle in #1).

Das würde dann den Bruch der Kompatibillität mit Versionen vor 06.36 bedeuten und dafür ist es im Moment wohl noch zu früh, solange nicht alle (in hwrevs aufgeführten) Modelle die Weihen der 06.5x-Versionen erhalten haben. Immerhin gibt es die ja nun für die 7362SL, das ist schon mal ein Schritt weiter.

Daß der Inhalt von #1 inzwischen nicht mehr allzu übersichtlich ist, sehe ich ja ein ... aber mir fehlt auch die Zeit, das noch einmal "aufzuarbeiten". Am Ende wird es wohl auf eine etwas kürzere Version als README.md im GitHub (dann primär in Englisch und ggf. noch eine in Deutsch, wenn ich wirklich sehr viel Muße haben sollte) hinauslaufen anstelle irgendwelcher weiteren Änderungen/Hinweise in #1.

Wenn sich jemand berufen fühlen sollte, das Wesentliche/Aktuelle aus #1 ins IPPF-Wiki zu transferieren, lese ich gerne Korrektur für entsprechende Entwürfe (auch vor der "Veröffentlichung"), wenn der-/diejenige daran Interesse haben sollte.

Es gibt schon einen Grund, warum Developer eher selten die Nutzeranleitungen für ihre eigenen Elaborate schreiben (sollten) ... immerhin habe ich bei "modfs-Starter" versucht, die Fehler hier im Thread zu vermeiden; auch wußte ich natürlich im Sept.2014 nicht, wie sich das weiter entwickeln würde - damals dachte ich ja noch an eine Zusammenführung mit Freetz in irgendeiner Form.

EDIT: Ok, das mit dem "blkid"-Kommando ist wohl noch komplizierter ... das schaue ich mir noch genauer an. Womöglich bin ich da meinem eigenen "copy_binaries" aufgesessen, weil ich natürlich auf meiner Box mit modifizierter Firmware teste anstelle des AVM-Originals. Zwar versuche ich immer, mich von der Existenz der verwendeten Kommandos auch in "stock firmware" zu überzeugen, aber da steht ja eindeutig "not found" in der Fehlermeldung, damit ist natürlich die Symlink-Story Unsinn.

EDIT2:
Ne, mit dem Skript ist alles in Ordnung, das verwendete System zum Aufruf von "modfs" enthält offenbar Änderungen ggü. dem AVM-Original. In einer "ausgepackten" (unmodifizierten) Struktur der AVM-Firmware sieht das bei mir so aus:
Code:
113.06.51 $ find . -name "blkid" -exec ls -l '{}' \;
lrwxrwxrwx    1 root     root            17 Feb  4 21:32 ./sbin/blkid -> ../usr/sbin/blkid
lrwxrwxrwx    1 root     root            17 Feb  4 21:32 ./yaffs2/sbin/blkid -> ../usr/sbin/blkid
-rwxrwxrwx    1 root     root         62672 Feb  3 16:37 ./usr/sbin/blkid
Da stimmt also meine oben aufgestellte Behauptung bzgl. des "blkid"-Kommandos und der Symlinks - außer beim Auspacken mit "extract_7490_new_filesystem" würde da bereits etwas durcheinander gebracht (das nur als mögliche andere Fehlerquelle, weil ich ein vorsichtiger Mensch bin und die Pferde ja immer direkt vor der Apotheke stehen).
Für die 06.50 gilt (bei mir) dasselbe:
Code:
113.06.50 $ find . -name "blkid" -exec ls -l '{}' \;
lrwxrwxrwx    1 root     root            17 Dec 12 05:00 ./sbin/blkid -> ../usr/sbin/blkid
lrwxrwxrwx    1 root     root            17 Dec 12 05:00 ./yaffs2/sbin/blkid -> ../usr/sbin/blkid
-rwxrwxrwx    1 root     root         62672 Dec  8 13:50 ./usr/sbin/blkid
... es liegt also auch nicht daran, daß dort von der 06.50 auf die 06.51 "gearbeitet" wird.

Wo mir bekannt ist, daß es Probleme gibt, ist der Übergang von der 06.30 auf die 06.50 bei der 7412 ... da paßt das "blkid"-Kommando nicht und man sollte die 7412 erst mit der 06.50 aktualisieren und anschließend SIAB per EVA nachrüsten (wie ich es irgendwo beschrieben habe), wenn man dort "modfs" verwenden will mit dem "install"-Parameter. Das mache ich bei der nächsten Änderung wahrscheinlich gleich mit, das ist aber auch ein Punkt, der bei der Aufgabe der Kompatibilität mit Versionen vor 06.36 unter den Tisch fallen würde.

EDIT3 (last one here):
Das Herausstellen des Verweises auf #190 in #1 in rot war offenbar nicht ausreichend, ich werde noch einen entsprechenden Hinweis in #1 ganz am Beginn einfügen. Die "Verwirrung" mit "Debug" und "Protokollierung" tut mir ja leid ... da diese Protokollierung aber mit der Environment-Variablen "MODFS_DEBUG" gesteuert wird, ist das (für mich zumindest) synonym (und hoffentlich bei einer Suche auch so zu finden, selbst wenn ich das jetzt nicht getestet habe).
 
Zuletzt bearbeitet:
EDIT2:
Ne, mit dem Skript ist alles in Ordnung, das verwendete System zum Aufruf von "modfs" enthält offenbar Änderungen ggü. dem AVM-Original. In einer "ausgepackten" (unmodifizierten) Struktur der AVM-Firmware sieht das bei mir so aus:
Code:
113.06.51 $ find . -name "blkid" -exec ls -l '{}' \;
lrwxrwxrwx    1 root     root            17 Feb  4 21:32 ./sbin/blkid -> ../usr/sbin/blkid
lrwxrwxrwx    1 root     root            17 Feb  4 21:32 ./yaffs2/sbin/blkid -> ../usr/sbin/blkid
-rwxrwxrwx    1 root     root         62672 Feb  3 16:37 ./usr/sbin/blkid
Da stimmt also meine oben aufgestellte Behauptung bzgl. des "blkid"-Kommandos und der Symlinks - außer beim Auspacken mit "extract_7490_new_filesystem" würde da bereits etwas durcheinander gebracht (das nur als mögliche andere Fehlerquelle, weil ich ein vorsichtiger Mensch bin und die Pferde ja immer direkt vor der Apotheke stehen).
Für die 06.50 gilt (bei mir) dasselbe:
Na klar, das ist die Lösung! Auf der FritzBox sind 2 Firmware Versionen 113.06.50, 1x original AVM und 1x mit Freetz. Bei meinen vorhergehenden Tests muss ich wohl versehentlich das aktive System gewechselt haben, aber da meine Modifikationen so gering sind, ist mir das nicht aufgefallen...
Dummer Weise war in der Freetz Image (unbeabsichtigt, wohl durch eine alte Abhängigkeit) noch das freetz blkid (aus util-linux) enthalten, was zu der genannten Pfadänderung geführt hat :heul: *Sorry for noise* mein Fehler!

Nachdem ich das ganze mit dem original AVM image und auch noch einmal mit einem Freetz build ohne das blkid von util-linux getstet habe, kann ich bestätigen, dass alles wie es soll funktioniert. Etwas amüsiert war ich allerdings, dass Du am Ende für das ruKernelTool Werbung machst, an statt auf Dein eigenes Script zum Flashen via EVA zu verweisen oder (vermutlich noch schneller) auf die Befehle, die man gerade per Hand in EVA setzt:
Code:
quote GETENV linux_fs_start (liefert das aktive System als 0 oder 1)
quote SETENV linux_fs_start 1 (setzt das beim nächsten Start aktive System auf 1 alternativ halt auf 0)
quote REBOOT

Das habe ich nämlich gemacht, da sich meine Box nach dem install in einer Reboot Schleife befand. Jetzt muss ich mal herausbekommen, woran das wohl liegen kann...
 
Zuletzt bearbeitet:
@KingTutt:
Das mit dem ruKernelTool ist nur noch eine Altlast ... selbst für "nur Windows"-User ist meine Beschreibung irgendwo im Thread zur 06.50 oder 06.51 der 7490 ja inzwischen wesentlich einfacher und für die Linux-/MacOS-Benutzer kommt demnächst ein kleines Skript in das GitHub-Repository, das mittels "socat" und ansonsten "den üblichen Befehlen" das Auffinden einer startenden FRITZ!Box im LAN automatisiert.

Wenn das dann fertig ist, kommt sicherlich auch eine geänderte Beschreibung in der README-Datei mit entsprechender "Anleitung" für Windows-Benutzer (falsches Recovery-Programm verwenden, irgendwann ist sicherlich auch mal ein PowerShell-Skript geplant) und mit dem Verweis auf "eva_discover" für Linux/MacOS X.

Ich habe das "eva_discover" mal informationshalber eingecheckt und es funktioniert auch, wenn man alle Parameter beim Aufruf komplett angibt (eva_discover FROM=192.168.178.2 TO=192.168.178.1 WAIT=10 BLIP=1 HOLD=1) ... im Moment fehlt da allerdings noch etwas bei der Parametrierung bzw. beim automatischen Ermitteln von nicht angegebenen Werten und auch meinen MacMini muß ich erst einmal wieder "entstauben", damit ich das unter MacOS X selbst testen kann. Dauert also noch ein wenig ... ach ja, die "yourfritz_helpers" braucht es auch noch für das Funktionieren des Skripts.
 
@PeterPan
warum meine Box nach dem "install" mit modfs in einer Reboot Schleife landet ist mir ein Rätsel. das FW Image ist soweit ich das beurteilen kann OK.
Ich habe gerade via EVA zurück auf das alte System (113.06.50) gewechselt und mein FW Image anstatt mit modfs über die AVM GUI installiert (bei einer 113.06.50 geht das ja noch) und da klappt das Update auf die neue FW ohne Probleme. Die Box startet wie erwartet...
Hast Du irgend eine Idee, was Du im modfs install anders machst, als AVM über die GUI?
 
Da fiele mir nur ein, daß das extrahierte root-Filesystem nicht direkt mit in die Wrapper-Partition geschrieben wird, selbst wenn nur "install" aufgerufen wurde ... beim Kopieren des Wrapper-Dateisystems wird dieses über "tar" zusammengepackt aus dem ext2-Image und dabei wird das root-FS (filesystem_core.squashfs) ausgeschlossen ... das wird (im Normalfall) ja in der modifizierten Variante in die wrapper-Partition kopiert und auch beim Aufruf mit "install" wird das daher in zwei Operationen aufgeteilt (copy_wrapper_filesystem und copy_new_root_filesystem). Das wäre zwar bei reinem "install" nicht notwendig (nicht einmal bei "installfs"), aber dann bräuchte es wieder eine neue Funktion, die das wrapper-Filesystem ohne "tar --exclude" kopiert.

Sollte sich das reproduzieren lassen, sehe ich gerne mal ins zugehörige Debug-Log ... ich habe allerdings bisher auch keine mit "fwmod" behandelten Images damit installiert, sondern nur originale AVM-Images zum Testen verwendet. So jedenfalls auf der 7490, auf der 7412 habe ich nur "installroot" benutzt, weil da erst einmal auf 06.50 aktualisiert werden mußte - das Problem dort ist ja auch nicht eine falsche "blkid"-Version, wie ich oben irrtümlich schrieb, sondern deren komplettes Fehlen, weil dieses Modell eben auch kein NAS hat und das Binary damit gar nicht benötigt wird/nicht existiert (sehr wohl aber der Symlink unter /sbin/blkid, aber der zeigt eben ins Leere).
 
Ich scheine der Lösung langsam näher zu kommen. Gibt es eine Möglichkeit, aus SIAB einen Telnetd zu starten? Die busybox hat das Applet auf jeden Fall drin (ist die original AVM BB aus der 113.06.50). Ich dachte eigentlich, dass es mit
Code:
busybox telnetd -l /sbin/ar7login
funktionieren sollte (so war es auch mal bei modfs-starter beschrieben), allerdings scheint der Dienst sofort wieder zu terminieren

EDIT1:
OK, Man kann mit install sowohl ein freetz image aufspielen, als auch eine eigene FW, die mit fwmod erstellt wurde. Ist allerdings schon ein freetz im aktiven System, auf dem man versucht, ein anderes image mit modfs install auf zu spielen, scheint das Ganze noch nicht zuverlässig zu funktionieren.
 
Zuletzt bearbeitet:
Ansonsten fehlt für den Telnet-Daemon wahrscheinlich der Symlink, wenn man die AVM-Version der Busybox benutzt. Nimmt man die aus dem SIAB-Image (sollte unter /var/custom/bin/busybox zu finden sein, wenn man ein "modfs-Starter"-Image verwendet), dann wird die Existenz des Symlinks nicht geprüft. Zum Thema "Symlink für Telnet-Daemon bei AVM-Busybox" gibt es genug frühere Beiträge (auch von mir), das wärme ich mal nicht neu auf.
 
Genau.

Und wenn du schon die Möglichkeit hast, nimm lieber gleich den dropbearmulti.
...auch im Heimnetz.

Ich hab den übrigens noch nie mit ar7login probiert.
Geht das überhaupt?
...
Nö, root ein Passwort verpassen bleibt einen also nicht erspart.
 
Zuletzt bearbeitet:
Ne, mit "public key"-Authentifizierung entfällt auch diese Notwendigkeit und es reicht vollkommen aus, im Home-Verzeichnis von "root" im Subdirectory ".ssh" die passende "authorized_keys"-Datei abzulegen. Das ist nicht nur wegen des Wegfalls eines gesonderten Login-Prompts sehr bequem, es führt auch dazu, daß niemand so eine Kennwort-Eingabe belauschen kann. Zwar verlagert sich damit das Sicherheitserfordernis auch nur auf den zugehörigen "private key" auf dem SSH-Client, aber einen Tod muß man wohl sterben. Und hat man erst einmal einen SSH-Server auf dem Gerät, steht auch einem SFTP-Zugriff nur noch wenig im Weg (und damit dem transparenten Einbinden des Box-Dateisystems in einem Linux-Client z.B. über "autofs") - sicherer und komfortabler geht es dann fast nicht mehr, da käme nicht einmal WebDAV heran mit den gebotenen Möglichkeiten, denn über so einen Zugriff kann man dann sogar "chmod" u.ä. machen; halt alles, was man auf einem Linux-Dateisystem so brauchen könnte.
 
@PeterPan
Habe das Problem gelöst. Freetz benutzt schon eine neuere BusyBox (1.24.1) welche den Parameter 'exclude' von tar nicht mehr kennt. Die BusyBox von AVM (1.22.1) kennt das noch. Beide Version kennen aber den Parameter 'X' für tar zum excludieren von Dateien. Du könntest also mit einem Parameterwechsel Abhilfe schaffen.

Zusammenfassung: Hat man eine BusyBox 1.24.1 für modfs install zur Verfügung wird das script in Zeile 648 beim
Code:
tar -c -O -C  $tmp/wrapperfs --exclude=$rootfsname . | tar -x -C $tmp/yaffs
zwar eine Fehlermeldung werfen
Code:
Erstellen eines neuen 'äuÃYeren  Dateisystems' ...tar: unrecognized option `--exclude=filesystem_cor
e.squashfs'
BusyBox v1.24.1 (2016-02-16 15:52:39 CET) multi-call binary.

Usage: tar -[cxtzhvO] [-X FILE] [-T FILE] [-f TARFILE] [-C DIR] [FILE]...

Create, extract, or list files from a tar file

Operation:
        c       Create
        x       Extract
        t       List
        f       Name of TARFILE ('-' for stdin/out)
        C       Change to DIR before operation
        v       Verbose
        z       (De)compress using gzip
        O       Extract to stdout
        h       Follow symlinks
        X       File with names to exclude
        T       File with names to include
tar: short read
 OK
aber nicht abbrechen. Daher fehlt dann bei einem Neustart das Dateisystem und man landet in einer Reboot Schleife :rolleyes:
 
Ich verstehe gerade die AVM-Welt nicht mehr. Habe meine 7362SL nun auch auf die 06.50 upgedatet und modifiziert.

Was mich jetzt wundert: Die ar7.cfg und die meisten anderen sind hier normale Dateien und keine C-Dateien.
Macht das AVM auf jeder Box anders oder woran kann das liegen?
Code:
7362SL:$(pwd)# uname -a
Linux fritz.box 3.10.73 #2 SMP Tue Jan 26 15:10:05 CET 2016 mips GNU/Linux
7362SL:$(pwd)# ls -la /var/flash
drwxr-xr-x    1 root     root          2048 Mar  5 11:14 .
drwxr-x---   14 root     root          1520 Mar  5 11:18 ..
-rw-r--r--    2 root     root            24 Mar  5 11:14 aha.cfg
-rw-r--r--    2 root     root             0 Jan  1  1970 ahadect.cfg
-rw-r--r--    2 root     root             0 Jan  1  1970 ahaglobal.cfg
-rw-r--r--    2 root     root            24 Mar  5 11:14 ahanet.cfg
-rw-r--r--    2 root     root            83 Mar  5 11:13 ahapushmail.cfg
-rw-r--r--    2 root     root             0 Jan  1  1970 ahastat.cfg
-rw-r--r--    2 root     root             0 Jan  1  1970 ahausr.cfg
-rw-r--r--    2 root     root         59564 Mar  4 13:58 ar7.cfg
-rw-r--r--    2 root     root             0 Jan  1  1970 aura-usb
-rw-r--r--    2 root     root             0 Jan  1  1970 browser-data
-rw-r--r--    2 root     root             0 Jan  1  1970 calllog
-rw-r--r--    2 root     root             0 Jan  1  1970 cert.cfg
-rw-r--r--    2 root     root          1374 Jan  1  1970 configd
crw-r--r--    1 root     root      243,  95 Jan  1  1970 crash.log
drwxr-xr-x    1 root     root          2048 Jan  1  1970 data
crw-r--r--    1 root     root      243,  98 Jan  1  1970 debug.cfg
-rw-r--r--    2 root     root          2551 Mar  5 11:14 dect_eeprom
-rw-r--r--    2 root     root             0 Jan  1  1970 dect_misc
-rw-r--r--    2 root     root             0 Jan  1  1970 dmgr_handset_user
-rw-r--r--    2 root     root             0 Jan  1  1970 featovl.cfg
-rw-r--r--    2 root     root             0 Jan  1  1970 fonctrl
-rw-r--r--    2 root     root           116 Mar  5 11:13 fx_cg
-rw-r--r--    2 root     root         27440 Mar  5 11:14 fx_conf
crw-r--r--    1 root     root      243,  99 Jan  1  1970 fx_def
-rw-r--r--    2 root     root          5892 Jan  1  1970 fx_lcr
-rw-r--r--    2 root     root             0 Jan  1  1970 fx_moh
drwx------    1 root     root          2048 Jan  1  1970 lost+found
-rw-r--r--    2 root     root             0 Jan  1  1970 maild.xml
-rw-r--r--    2 root     root             0 Jan  1  1970 modulemem
-rw-r--r--    2 root     root             0 Jan  1  1970 multid.leases
-rw-r--r--    2 root     root             0 Jan  1  1970 net.update
crw-------    1 root     root      243,  96 Mar  4 12:38 panic
-rw-r--r--    2 root     root          2420 Mar  5 11:13 phonebook
drwxr-xr-x    1 root     root          2048 Jan  1  1970 provider_default
-rw-r--r--    2 root     root             0 Jan  1  1970 stat.cfg
-rw-r--r--    2 root     root          8392 Jan  1  1970 tamconf
-rw-r--r--    2 root     root          4286 Jan  1  1970 telefon_misc
-rw-r--r--    2 root     root             0 Jan  1  1970 timeprofile.cfg
-rw-r--r--    2 root     root             0 Jan  1  1970 tr069.cfg
-rw-r--r--    2 root     root             0 Jan  1  1970 umts.cfg
-rw-r--r--    2 root     root          2143 Jan  1  1970 usb.cfg
-rw-r--r--    2 root     root          1554 Jan  1  1970 usbgsm.cfg
-rw-r--r--    2 root     root          4595 Jan  1  1970 user.cfg
-rw-r--r--    2 root     root             0 Jan  1  1970 userstat.cfg
-rw-r--r--    2 root     root          7016 Mar  4 12:38 voip.cfg
-rw-r--r--    2 root     root             0 Jan  1  1970 voipd_call_stat
-rw-r--r--    2 root     root             0 Jan  1  1970 vpn.cfg
-rw-r--r--    2 root     root          1302 Jan  1  1970 websrv_ssl_cert.pem
-rw-r--r--    2 root     root          1766 Jan  1  1970 websrv_ssl_key.pem
-rw-r--r--    2 root     root          4323 Mar  4 13:03 wlan.cfg
-rw-r--r--    2 root     root             0 Jan  1  1970 xdslmode
7362SL:$(pwd)#
Unter /var/flash/data liegen übrigens alle Dateien noch mal mit etwas anderer Zeit.
 
Zuletzt bearbeitet:
Freetz benutzt schon eine neuere BusyBox (1.24.1) welche den Parameter 'exclude' von tar nicht mehr kennt.
Kennt es sehr wohl, es ist bloß per Default ausgeschaltet, da weder von AVM noch von Freetz benötigt wird.
 
Wie gesagt ... ich teste in der Regel gegen eine originale AVM-Firmware, da bei den meisten die Kombination aus Freetz und "modfs" wohl eher nicht gleichzeitig im Einsatz sein dürfte - ich sehe da nur sehr sehr seltene Umstände, die so etwas sinnvoll erscheinen lassen. "modfs" war ja primär genau dafür gedacht, dem Benutzer ohne Freetz-Mods die Änderung der Firmware zu ermöglichen.

Insofern habe ich mir über die Verwendung der kurzen oder langen Form von Parametern eher keine Gedanken gemacht - ob sich das noch lohnt, wenn ich wohl ohnehin auf die "embedded busybox" umstellen werde/will, bezweifele ich auch.
EDIT: Auch ist natürlich die Bedeutung von "-X" eine andere als die von "--exclude" ... der eine Parameter erlaubt die direkte Angabe des Dateinamens (kann wiederholt auftreten) und der andere erwartet eine (zusätzliche) Datei mit den Namen.

@eisbaerin:
Ich habe zwar keine 7362SL, daher ist das nur geraten ... aber da ist wohl irgendetwas durcheinander bei Dir.

Wenn AVM da nichts grundlegendes geändert hat (was ich nicht glaube), dann werden eigentlich diese "Dateien" nach wie vor in irgendeinem Skript in /etc/init.d angelegt und zwar als char-Devices.

Allerdings verwendet wohl auch die 7362SL (die Supportdaten geben da Auskunft oder auch die Kommandozeile) eine kleine yaffs2-Partition von 2 MB (mit dem Namen "config") unter dem Pfad "/var/flash".

Bisher war es so, daß eine dort event. schon vorhandene "reguläre Datei" durch die Initialisierung "überschrieben" wurde mit dem Inode für das char-Device.

Vielleicht ist das jetzt bei dem neuen Kernel anders (habe ich auch auf der 7490 nicht getestet) und damit funktioniert u.U. das Verfahren, was ich im "bootmanager" mit den Einstellungen verwendet habe (das "Ersetzen" der Einstellungen des aktuell noch laufenden Systems durch reguläre Dateien, während im Hintergrund im TFFS schon die Daten für das andere System nach den nächsten Neustart gespeichert sind), nicht mehr richtig.

Wenn Du den "bootmanager" verwendet haben solltest beim letzten Start (inkl. "Wiederherstellen" von vorher gesicherten Einstellungen pro System), dann könnte sich dieses Bild in der "config"-Partition also auch ergeben.

Je nachdem, was die Antwort darauf ist, muß man dann eben weiter suchen oder ggf. auch die Initialisierung und/oder den "bootmanager" entsprechend anpassen. In jedem Falle solltest Du mal die Einstellungen noch gesondert sichern (exportieren), denn dabei ist es egal, ob die aus dem TFFS oder aus regulären Dateien kommen.

Anschließend müßte man die Partition unter "/var/flash" dismounten (das sollte klappen, weil m.W. kein Prozess dort etwas permanent offen hält), mittels "update_kernel" löschen und dann die Box einfach per PoR neu starten ... dann sollte beim nächsten Mounten von "config" das yaffs2 neu initialisiert werden und das Anlegen der char-Devices für das TFFS wieder funktionieren.

Je nachdem, wie lange bei Dir die Einstellungen schon in diesen regulären Dateien gespeichert werden, sind die im TFFS natürlich veraltet und Du müßtest nach diesem Start die zuvor gesicherten Einstellungen wiederherstellen.
 
Zuletzt bearbeitet:
Danke für die schnelle Antwort.
Ich habe das Update und die Modifikation genau so wie bei der 7412 gemacht.

Ich habe die Datei zum Modifizieren auf der 7490 erstellt.
Auf der 7362SL ein normales Update von 06.03 auf 06.50 gemacht.
Per Adam/ftp wieder auf 06.03 gewechselt.
Mit install_inactive_rootfs die Datei eingespielt
Und als letztes: "echo linux_fs_start 1 >> /proc/sys/urlader/environment" + reboot

Wenn ich die Konfig über die GUI ändere, dann erscheint es in den Dateien.
Mir ist es ja recht, da kann ich mir die Dateien ja mit WinSCP anschauen.
Ich werde mal testen ob ein ändern der Dateien und ein ar7cfgchanged geht.
 
Ist halt eine "unsichere" Speicherung der Einstellungen im NAND- anstelle des NOR-Flashs und (wenn meine Vermutung stimmt) nicht einmal "Werkseinstellungen" würde in diesem Falle (solange nicht "config" aus irgendeinem anderen Grund neu initialisiert wird) die vorhandenen Einstellungen wirklich löschen, weil das direkt auf das TFFS wirkt.

Aber ich habe - wie oben geschrieben - keinen Blick in die Firmware der 7362SL geworfen und daher ist es nur eine Annahme, daß es von AVM nicht so geplant ist ... wobei mich das schon extrem verblüffen würde, wenn AVM solche Änderungen absichtlich ausführt. Denn damit würde das ganze Zurücksetzen von Einstellungen nicht einmal mehr bei Recovery richtig funktionieren, weil natürlich EVA nur aus dem TFFS liest (bei "get env") und auch nur in die TFFS-Partitionen schreibt. Da würde dann also auch noch ein anderer Bootloader gebraucht ... das sind dann die berühmten drei Wünsche (Spannung, Spiel und Schokolade) auf einmal (hier eben mehrere tiefgreifende Veränderungen der Firmware), da wäre AVM nach meiner Ansicht mit dem Klammerbeutel gepudert.
 
ändern der Dateien und ein ar7cfgchanged
bewirkt nichts, habe es mit LED ausschalten getestet.

Werkseinstellung ändert auch nichts.

So, dann habe ich wirklich alles zig mal probiert. Noch mal update auf die 06.50, recover auf die 06.50.
Andere Partition recover auf 06.03, 06.20, 06.30 und jedes mal mir per telnet oder SIAB den Pfad angeschaut.
Sieht eigentlich immer identisch aus.

Die Box hatte jetzt mal nach einem Reboot das Problem, daß sie in keiner Partition mehr startete.
Aber nach einem recover sollte doch eigentlich wieder alles gehen, oder?
Was könnte da jetzt noch kaputt sein und wie kann ich das beheben?

Soll ich das noch machen?
PeterPawn schrieb:
Anschließend müßte man die Partition unter "/var/flash" dismounten (das sollte klappen, weil m.W. kein Prozess dort etwas permanent offen hält), mittels "update_kernel" löschen und dann die Box einfach per PoR neu starten ... dann sollte beim nächsten Mounten von "config" das yaffs2 neu initialisiert werden und das Anlegen der char-Devices für das TFFS wieder funktionieren.
Könntest du mir da bitte die genauen Befehle aufschreiben?
Code:
7362SL:$(pwd)# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/root                49152     18268     30884  37% /wrapper
[COLOR="#FF0000"]devtmpfs                 53608        52     53556   0% /wrapper/dev[/COLOR]
/dev/loop0               15808     15808         0 100% /
devtmpfs                 53608        52     53556   0% /dev
tmpfs                    53760      2448     51312   5% /var
/dev/mtdblock4            2048      1124       924  55% /var/flash
/var/dev/nand            22528     13468      9060  60% /var/media/ftp
7362SL:$(pwd)# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00400000 00020000 "reserved-kernel"
mtd1: 03000000 00020000 "reserved-filesystem"
mtd2: 00400000 00020000 "kernel"
mtd3: 03000000 00020000 "filesystem"
mtd4: 00200000 00020000 "config"
mtd5: 01600000 00020000 "nand-filesystem"
mtd6: 00040000 00001000 "urlader"
mtd7: 00060000 00001000 "tffs (1)"
mtd8: 00060000 00001000 "tffs (2)"
7362SL:$(pwd)# cat /proc/partitions
major minor  #blocks  name

   7        0      15804 loop0
  31        0       4096 mtdblock0
  31        1      49152 mtdblock1
  31        2       4096 mtdblock2
  31        3      49152 mtdblock3
  31        4       2048 mtdblock4
  31        5      22528 mtdblock5
  31        6        256 mtdblock6
  31        7        384 mtdblock7
  31        8        384 mtdblock8
7362SL:$(pwd)#
Die rote Zeile ist neu, die gab es früher nicht. Ist das die Ursache?
 
Zuletzt bearbeitet:
Habe ich doch oben schon geschrieben ... ein System so weit booten, daß man mittels "update_kernel" (das ist ein Binary von AVM, das auch NAND-Partitionen löschen kann - also deren Inhalt) die "config"-Partition (welche das ist, steht in "cat /proc/mtd") löschen kann. Dann bewirken auch die diversen anderen Aktionen wie Werkseinstellungen oder Recovery wieder etwas.

Wenn gar kein System mehr starten will, mußt Du ein AVM-Image hernehmen und das so abändern, daß die erwähnte Partition bei Start über EVA gelöscht wird.
 
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.