TomTomNavigator
Mitglied
- Mitglied seit
- 24 Aug 2007
- Beiträge
- 643
- Punkte für Reaktionen
- 4
- Punkte
- 18
Das Aus- und Wiedereinpacken auf einer 7390 ist auch machbar (der Aufbau ist halt etwas abweichend, weil Kernel und Filesystem nicht getrennt sind)
mich hält das Problem beim Flashen des resultierenden Files davon ab, das "offiziell" für die 7390 auch anzubieten.
Du meinst eine Pseudoimagedatei mit modfs inklusive Pseudoimagegenerator für unterstützte Boxen?splenditnet schrieb:das Erstellen eines FW-Imagefiles direkt auf der Box, ohne LINUX-PC mit komplexer Freetz-Toolchain möglich sein
Nach den jüngsten Changesets in Freetz (CS 13288) sollte es kein Problem sein, solche Binaries für Host und Target bereitzustellen. Dazu fühlen sich aber eher andere berufen ... vielleicht gibt es ja auch aus dem Freetz-Trunk heraus künftig eine Möglichkeit, diese Tools direkt (analog zu den Toolchains, meinetwegen als tar-File) irgendwie anzubieten. Ein passendes Ticket dort könnte zumindest "die üblichen Verdächtigen" wie z.B. MaxMuster dazu animieren, einen Versuch ist es in jedem Falle wert und (nett und freundlich) fragen kostet nichts.über 2 Binaries (unsquashfs3, squashfs3) dankbar wären
# tar tvpf modfs-0.3.1.tar
-rw-r--r-- root/root 85032 2015-07-26 18:09:50 modfs
-r--r--r-- root/root 17964 2015-05-11 18:09:34 README
-r--r--r-- root/root 28257 2015-05-11 18:04:02 README.ger
-r--r--r-- root/root 18092 2014-09-03 10:47:14 COPYING
drwxr-xr-x root/root 0 2015-06-08 15:11:19 locale/
-r--r--r-- root/root 12570 2015-06-08 15:13:35 locale/de
-r--r--r-- root/root 10771 2015-05-11 17:50:51 locale/en
drwxr-xr-x root/root 0 2015-06-08 15:10:26 files/
-r--r--r-- root/root 144392 2014-09-14 00:43:43 files/128MB_ext3.gz
drwxr-xr-x root/root 0 2015-07-18 12:53:43 bin/
lrwxrwxrwx root/root 0 2015-06-18 11:52:45 bin/212 -> VR9
lrwxrwxrwx root/root 0 2014-09-22 13:57:43 bin/185 -> VR9
lrwxrwxrwx root/root 0 2014-11-18 02:04:16 bin/175 -> VR9
lrwxrwxrwx root/root 0 2014-09-22 13:57:43 bin/203 -> VR9
lrwxrwxrwx root/root 0 2015-07-18 12:53:43 bin/193 -> VR9
drwxr-xr-x root/root 0 2015-07-26 18:49:37 bin/VR9/
-r-xr-xr-x root/root 431216 2015-07-26 18:49:26 bin/VR9/mksquashfs4
-r-xr-xr-x root/root 56420 2014-09-03 09:57:48 bin/VR9/unsquashfs3
-r-xr-xr-x root/root 361692 2015-07-26 18:49:37 bin/VR9/unsquashfs4
-r-xr-xr-x root/root 105824 2014-09-03 09:57:48 bin/VR9/mksquashfs3
drwxr-xr-x root/root 0 2015-07-26 17:53:11 modscripts/
-r-xr-xr-- root/root 1349 2014-09-22 12:08:06 modscripts/mod_profile
-r-xr-xr-x root/root 2251 2014-09-22 12:01:18 modscripts/mod_rc_tail_sh
-r-xr-xr-- root/root 3818 2014-09-22 13:18:21 modscripts/edit_rcuser
-r-xr-xr-- root/root 1202 2015-07-26 17:53:09 modscripts/mod_enable_telnet
-rwxr-xr-x root/root 11678 2015-07-18 11:06:02 modscripts/gui_boot_manager
-rw-r--r-- root/root 168 2015-07-26 18:50:47 md5sums
-rw-r--r-- root/root 552 2015-07-26 18:50:47 sha512sums
-rw-r--r-- root/root 296 2015-07-26 18:50:47 sha256sums
-rw-r--r-- root/root 200 2015-07-26 18:50:47 sha1sums
#
# ./modfs
-sh: ./modfs: Permission denied
#
# chmod 755 ./modfs
# grep linux_fs_start /proc/sys/urlader/environment
linux_fs_start 0
#
# /etc/version
113.06.24
#
# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 49152 23356 25796 48% /wrapper
/dev/loop0 20928 20928 0 100% /
tmpfs 122940 1160 121780 1% /var
tmpfs 122940 40 122900 0% /dev
/dev/mtdblock4 2048 904 1144 44% /var/flash
/var/dev/nand 415744 79112 336632 19% /var/media/ftp
#
# mount
rootfs on / type rootfs (rw)
/dev/root on /wrapper type yaffs (ro,relatime)
/dev/loop0 on / type squashfs (ro,relatime)
proc on /proc type proc (rw,relatime)
tmpfs on /var type tmpfs (rw,relatime)
tmpfs on /dev type tmpfs (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
devpts on /dev/pts type devpts (rw,relatime,mode=600)
/dev/mtdblock4 on /var/flash type yaffs2 (rw,sync,relatime)
/var/dev/nand on /var/media/ftp type yaffs2 (rw,sync,relatime)
usbfs on /proc/bus/usb type usbfs (rw,relatime)
#
# uptime
16:33:40 up 2 min, load average: 1.26, 0.71, 0.28
#
# sh ./modfs update /var/media/ftp/jw/fritzbox-labor_7490-30987/FRITZ.Box_7490_Labor.113.06.35-30987.image
SNIP
Beim nächsten Start der Box wird das System in den alternativen Partitionen benutzt.
Sollte beim Start ein Problem auftreten, kann z.B. mit dem ruKernelTool wieder auf das aktuell laufende
System umgeschaltet werden.
Das neue root-Dateisystem wurde erfolgreich modifiziert und in die inaktive Partition kopiert.
Beim nächsten Start der Box wird das System in den alternativen Partitionen benutzt.
Sollte beim Start ein Problem auftreten, kann z.B. mit dem ruKernelTool wieder auf das aktuell laufende
System umgeschaltet werden.
# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 49152 23356 25796 48% /wrapper
/dev/loop0 20928 20928 0 100% /
tmpfs 122940 23248 99692 19% /var
tmpfs 122940 40 122900 0% /dev
/dev/mtdblock4 2048 904 1144 44% /var/flash
/var/dev/nand 415744 79112 336632 19% /var/media/ftp
/dev/loop1 22004 1 22003 0% /var/tmp/2203_1438440366/wrapperfs
# ls -la /var/tmp/2203_1438440366/wrapperfs
drwxr-xr-x 2 root root 1024 Aug 1 16:46 .
drwxr-xr-x 3 root root 60 Aug 1 16:46 ..
# umount /dev/loop1
# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 49152 23356 25796 48% /wrapper
/dev/loop0 20928 20928 0 100% /
tmpfs 122940 1172 121768 1% /var
tmpfs 122940 40 122900 0% /dev
/dev/mtdblock4 2048 904 1144 44% /var/flash
/var/dev/nand 415744 79112 336632 19% /var/media/ftp
#
... inzwischen in Freetz das Erstellen der Tools für SquashFS4 und die Abarbeitung auf der FRITZ!Box ebenfalls enthalten ist, habe ich meine eigenen Versionen durch mit dem Freetz-Trunk erstellte ersetzt in der veröffentlichten Version. Damit sind die zur Übersetzung der Binärdateien im Archiv notwendigen Quelltexte im Freetz-Trunk zu finden. Solange man diese Tools nicht in ein Firmware-Image mit einbauen will, spielt auch die Größe der komplett statisch gelinkten Binaries für SquashFS4 keine entscheidende Rolle.
Für den Einbau in ein neues root-Filesystem verwende ich selbst trotzdem weiterhin meine Version, da es sehr unwahrscheinlich ist, daß ich damit jemals auf einer 7490 ein SquashFS-Image der Versionen 1 oder 2 oder 3 entpacken werde (für V3 gibt es eigene Files) und dieser Platz im Image verschenkt ist.
OK, da sind irgendwo beim Einpacken die Permissions auf der Strecke geblieben. Danke für den Hinweis, ist bereits korrigiert.Problem 1: falsche UNIX-Filepermissions bei Skript modfs
Ohne Debug-Log (dafür habe ich das ja implementiert) kann man nicht sehen, welche Datei sich nun eigentlich hinter /dev/loop1 verbirgt. Normalerweise ist da für jedes "mount" auch ein passenden "umount" vorgesehen, wenn das bei Dir nicht ausgeführt wurde, muß man im Debug-Log nachsehen, welchen Weg die Abarbeitung genommen hat. Unter dem Namen "wrapperfs" wird eigentlich nur bei der Erkennung oder beim Download eines Images vom AVM-Server gemountet, beides kann eigentlich bei Dir nicht der Fall sein, wenn der Aufruf stimmt. Dann bleibt nur noch das Kopieren des gesamten Wrapper-FS in die mtdblock-Partition als mögliche Ursache übrig und wie das dort abläuft, hängt in höchstem Maße davon ab, was die vorhandene Busybox zu bieten hat an Kommandos und wie das Zieldateisystem aussieht ... das wiederum hängt davon ab, von wo nach wo man das Update machen läßt.Problem 2: Cleanup fehlt ("umount /dev/loop1")
Ich finde nicht, daß das notwendig ist/Sinn macht ... das hat auch nichts mit "Verweigerungshaltung" o.ä. zu tun, das liegt ganz simpel daran, daß es am Ende ohnehin immer wieder geändert wird und ich damit stets erneut vor der Entscheidung stehe, meine eigenen Patches fortzuführen oder nachträglich bei mir alles so anzupassen, daß es mit den von Dir zusätzlich vorgenommenen Änderungen dann wieder läuft (das fängt im simpelsten Fall mit einem anderen Pfad für ein Binary an).Ungeachtet gewisser (zweifellos existierender) "Meinungsverschiedenheiten" habe ich kein Problem damit, einige modfs related Patches in Freetz aufzunehmen.
Nimm's mir bitte nicht übel ... die Diskussion (und entsprechende Vorleistungen/-arbeiten meinerseits - die teilweise in fast verzweifelte Versuche, es Dir irgendwie recht zu machen, ausgeartet sind) hatten wir jetzt lange genug. Das müssen wir uns gegenseitig nicht antun. Ich bleibe künftig der "neutrale Beobachter".Ich hätte lediglich folgende Anforderungen an diese:
Das habe ich mit Freuden zur Kenntnis genommen ... mehr aber auch nicht. Das sind ja nun ausgerechnet die Tickets, die eigentlich für Dich die meiste Arbeit nach sich gezogen haben, weil sie eben ausdrücklich gerade nicht zur direkten Integration in die Freetz-Buildumgebung gedacht waren (das sollte auch irgendwo im Text zum Ticket so stehen) und dort nur als Anregung/Begründung/Archiv abgelegt wurden.Das meiste aus #2730, #2731 habe ich abgearbeitet.
# grep linux_fs_start /proc/sys/urlader/environment
linux_fs_start 0
# /etc/version
113.06.29
# df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 48.0M 23.0M 25.0M 48% /wrapper
/dev/loop0 20.6M 20.6M 0 100% /
tmpfs 120.1M 2.5M 117.6M 2% /var
tmpfs 120.1M 80.0K 120.0M 0% /dev
/dev/mtdblock4 2.0M 908.0K 1.1M 44% /var/flash
/var/dev/nand 406.0M 1.3M 404.7M 0% /var/media/ftp
/dev/sda1 929.6G 69.3G 813.7G 8% /var/media/ftp/Samsung-S2Portable-01
/dev/sdb1 29.2G 63.6M 27.7G 0% /var/media/ftp/HUAWEI-TFCARDStorage-01
https://webdav.mediencenter.t-online.de
25.0G 4.5G 20.5G 18% /var/media/ftp/Online-Speicher
Das neue root-Dateisystem wurde erfolgreich modifiziert und in die inaktive Partition kopiert.
Beim nächsten Start der Box wird das System in den alternativen Partitionen benutzt.
OK, KiRKman sind wir damit also auch los ... :mrgreen:Falls ich hier nie wieder was schreiben sollte... Naja Ihr wisst ja
01.08.15 20:06:48 Die Datei rc.user (TFFS-Minor-ID 98) wird abgearbeitet ...
Weiß zwar nicht, was genau Du damit meinst, aber zur Klarstellung... Mein Angebot galt lediglich der Aufnahme der Patches, die für die Erstellung der von modfs verwendeten SquashFS*-Binaries notwendig sind. Einerseits schreibst Du, dass Du auf die Freetz-Version von SquashFS4 umgestiegen bist, andererseits, wenn es darum geht, SquashFS4 Tools mit ins Image zu packen, nimmst Du immer noch Deine Version davon (wegen der Größe). Das hört sich für mich nach Mehraufwand an - Du musst weiter Deine eigene Version pflegen, sollte ich etwas nicht "passendes" in die Freetz-Version einbauen, musst Du auch noch darauf irgendwie reagieren. Auch musst Du irgendwo eine Fall-Unterscheidung haben - was habe ich vor, welche von beiden Versionen ist dafür besser geeignet und daher zu nehmen ist. Daher der Vorschlag die in Freetz noch fehlenden Anpassungen aufzunehmen.Ansonsten sehe ich eher nicht, was bzw. wie man modfs mit Freetz zusammenbringen sollte/könnte ...
Die Wahrscheinlichkeit, dass es auseinander läuft, wenn Du weiterhin Deine eigene Version pflegst, ist in meinen Augen größer. Dann müsstest Du früher oder später wieder auf ausschließlich Deine Version umsteigen. Wären die modfs relevanten Patches in Freetz enthalten, wären wir gezwungen, diese mitzupflegen. Der letzte Satz ist die typische Begründung, wenn es darum geht, etwas upstream aufzunehmen, auch wenn das Wort upstream an der Stelle völlig falsch ist (die sich daraus ergebenden Vorteile sind eben dieselben). Denk übrigens auch noch daran, dass es irgendwann mal eine neue Version von SquashFS4 (4.4 oder so) geben könnte.meine eigenen Patches fortzuführen oder nachträglich bei mir alles so anzupassen, daß es mit den von Dir zusätzlich vorgenommenen Änderungen dann wieder läuft (das fängt im simpelsten Fall mit einem anderen Pfad für ein Binary an).
Der Anreiz für mich bestand in erster Linie darin, ein Tool auf dem Build-Host zu haben, welches sowohl ZLIB als auch LZMA komprimierte Images unterstützt, denn einmal in das Binary verlagert spart es ein paar Fall-Unterscheidungen in fwmod (aktuell werden mittels unsquashfs3-multi alle bisher von AVM in Release-Versionen verwendeten SquashFS-Formate entpackt: squashfs2-lzma, squashfs3-lzma, squashfs3-zlib). Auf dem Host hätte ich weiterhin die C++ Version von liblzma1 verwenden können, aber "wo ich dran war" habe ich halt die für die C-only Version notwendigen Anpassungen mitgemacht.Das sind ja nun ausgerechnet die Tickets, die eigentlich für Dich die meiste Arbeit nach sich gezogen haben, weil sie eben ausdrücklich gerade nicht zur direkten Integration in die Freetz-Buildumgebung gedacht waren
Hmm, /usr/lib/freetz ist eigentlich völlig harmlos. Damit wird lediglich der Pfad angegeben, aus dem die Libraries bevorzugt geladen werden sollten. Existiert der Pfad nicht bzw. enthält die nötige Library nicht, so werden ganz normal alle anderen Standard-Pfade durchsucht (/lib, /usr/lib) und die Libraries aus diesen geladen.Aber ich kann eben wegen kleiner - aber fieser - Unterschiede nicht mit fliegenden Fahnen zur Freetz-Umgebung umschwenken ... das will ich auch gar nicht (der Unterschied fängt bei /usr/lib/freetz an).
Dadrüber habe ich öfter schon nachgedacht. Solange es aber noch bei Freetz selbst ein paar Baustellen gibt, werde ich diese höher priorisieren.Wenn Du noch weiteren "Freetz-Skeptikern" (das meint die Leute, die kein "echtes Freetz-Image" flashen wollen - warum auch immer) eine gewisse Unterstützung anbieten willst, könntest Du darüber nachdenken, eine Art "fwmod_lite" nur zum Umpacken
Hallo PeterPawn,Reply to #212
# MODFS_DEBUG=1 MODFS_BUFSIZE=32 ./modfs update /var/media/ftp/jw/fritzbox-labor_7490-30987/FRITZ.Box_7490_Labor.113.06.35-30987.image
SNIP
OK
Erstellen eines neuen 'äuÃeren Dateisystems' ...sh: 0: unknown operand
OK
Kopieren des neuen root-Dateisystems in die inaktive Dateisystem-Partition ... OK
# MODFS_DEBUG=1 MODFS_BUFSIZE=32 ./modfs update /var/media/ftp/jw/fritzbox-labor_7490-30987/FRITZ.Box_7490_Labor.113.06.35-30987.image
SNIP
# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 49152 23356 25796 48% /wrapper
/dev/loop0 20928 20928 0 100% /
tmpfs 122940 23292 99648 19% /var
tmpfs 122940 40 122900 0% /dev
/dev/mtdblock4 2048 904 1144 44% /var/flash
/var/dev/nand 415744 81156 334588 20% /var/media/ftp
/dev/loop1 22004 1 22003 0% /var/tmp/1911_1438458537/wrapperfs
#
# chmod 755 modfs
# MODFS_DEBUG=1 MODFS_BUFSIZE=32 ./modfs update /var/media/ftp/jw/fritzbox-labor_7490-30987/FRITZ.Box_7490_Labor.113.06.35-30987.image
Using debug mode with a 32 KB buffer
Ermitteln der Hardware-Version ... OK
Prüfen, ob die Hardware-Version unterstützt wird ... OK
Suchen der Einstellung zur Umschaltung auf das alternative System ... OK
Prüfen der aktuell zu startenden Systemversion ... OK
Suchen der aktuellen Kernel-Partition ... OK
Suchen der alternativen Kernel-Partition ... OK
Vergleich der Systeme in den Kernel-Partitionen ... übersprungen
Suchen der aktuellen Dateisystem-Partition ... OK
Suchen der alternativen Dateisystem-Partition ... OK
Ãberprüfen des zur Verfügung stehenden Speicherplatzes im RAM ... OK
Ãberprüfen des freien Speicherplatzes für das Auspacken des Dateisystems ... OK
Das System erfüllt die Voraussetzungen zur Modifikation des root-Dateisystems.
Im Moment läuft auf der Box die Version: 113.06.24
Die Angabe einer Datei nach dem 'update'-Parameter unterbindet jede Versionprüfung.
Somit ist jeder selbst dafür zuständig, die Kompatibilität der vorhandenen Einstellungen
mit dem verwendeten System sicherzustellen, speziell wenn ein Downgrade ausgeführt wurde
oder ggf. die 'Werkseinstellungen' wiederherzustellen.
Die angegebene Datei '/var/media/ftp/jw/fritzbox-labor_7490-30987/FRITZ.Box_7490_Labor.113.06.35-30987.image' wird als Quelle für die Aktualisierung genutzt.
Extrahieren des neuen Kernel-Images aus dem Firmware-Image ... OK
Extrahieren des Flash-Filesystems aus dem Firmware-Image ... OK
Extrahieren des Wurzeldateisystems aus dem Flash-Filesystem ...BPJM Update complete
OK
Entpacken des root-Dateisystem für die Modifikationen ... OK
Das entpackte Dateisystem ist jetzt bereit für die Modifikationen.
Verzeichnis des root-Dateisystems : /var/media/ftp/1438458164/squashfs-root
Die Modifikation 'enable system selection from GUI' wird verarbeitet ...
Ãberprüfen der unterstützten Sprachen ... OK
Ãberprüfen der Voraussetzungen für die Modifikation ... OK
Modifikation wird ausgeführt ... OK
Ãberprüfen des Erfolgs der Modifikation ... OK
Die Modifikation 'enable system selection from GUI' wurde angewendet, Fehlercode = 0.
Die Modifikation 'enable rc.user execution' wird verarbeitet ...
Ãberprüfen der unterstützten Sprachen ... OK
Ãberprüfen der Voraussetzungen für die Modifikation ... OK
Modifikation wird ausgeführt ... OK
Ãberprüfen des Erfolgs der Modifikation ... OK
Die Modifikation 'enable rc.user execution' wurde angewendet, Fehlercode = 0.
Die Modifikation 'create edit_rcuser command' wird verarbeitet ...
Ãberprüfen der unterstützten Sprachen ... OK
Soll die Modifikation 'create edit_rcuser command' mit folgender Beschreibung
Es wird ein zusätzliches Kommando 'edit_rcuser' erzeugt, mit dem die Kommandos
in der Datei 'rc.user' sicher bearbeitet werden können, ohne daà man sich um
die Besonderheiten des TFFS kümmern muÃ.
angewendet werden ? (j/N) j
Ãberprüfen der Voraussetzungen für die Modifikation ... OK
Modifikation wird ausgeführt ... OK
Ãberprüfen des Erfolgs der Modifikation ... OK
Die Modifikation 'create edit_rcuser command' wurde angewendet, Fehlercode = 0.
Die Modifikation '(re)enable telnet daemon' wird verarbeitet ...
Ãberprüfen der unterstützten Sprachen ... OK
Soll die Modifikation '(re)enable telnet daemon' mit folgender Beschreibung
Erstellen eines Symlinks, um die Ausführung des telnetd-Applets der
Busybox wieder zu ermöglicen
angewendet werden ? (j/N) j
Ãberprüfen der Voraussetzungen für die Modifikation ... OK
Modifikation wird ausgeführt ... OK
Ãberprüfen des Erfolgs der Modifikation ... OK
Die Modifikation '(re)enable telnet daemon' wurde angewendet, Fehlercode = 0.
Die Modifikation 'enable custom profile extension' wird verarbeitet ...
Ãberprüfen der unterstützten Sprachen ... OK
Soll die Modifikation 'enable custom profile extension' mit folgender Beschreibung
/etc/profile modifizieren, um die Kommandos in /var/custom/profile am Ende
zusätzlich auszuführen, wenn diese Datei existiert
angewendet werden ? (j/N) j
Ãberprüfen der Voraussetzungen für die Modifikation ... OK
Modifikation wird ausgeführt ... OK
Ãberprüfen des Erfolgs der Modifikation ... OK
Die Modifikation 'enable custom profile extension' wurde angewendet, Fehlercode = 0.
Das ist die letzte Chance zum manuellen Modifizieren des Dateisystems in /var/media/ftp/1438458164/squashfs-root.
Die Eingabetaste drücken, um mit dem Packen des neuen root-Dateisystems zu beginnen
oder 'q' eingeben, um die letzte Möglichkeit zum Abbruch zu nutzen :
Packen des neuen root-Dateisystems ... \
OK
Erstellen eines neuen 'äuÃeren Dateisystems' ...sh: 0: unknown operand
OK
Kopieren des neuen root-Dateisystems in die inaktive Dateisystem-Partition ... OK
Kopieren des neuen Kernel-Images in die Zielpartition ... OK
Festlegen des alternativen Systems als aktives System beim nächsten Start der Box ... OK
Das neue root-Dateisystem wurde erfolgreich modifiziert und in die inaktive Partition kopiert.
Beim nächsten Start der Box wird das System in den alternativen Partitionen benutzt.
Sollte beim Start ein Problem auftreten, kann z.B. mit dem ruKernelTool wieder auf das aktuell laufende
System umgeschaltet werden.
#
# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 49152 23356 25796 48% /wrapper
/dev/loop0 20928 20928 0 100% /
tmpfs 122940 23292 99648 19% /var
tmpfs 122940 40 122900 0% /dev
/dev/mtdblock4 2048 904 1144 44% /var/flash
/var/dev/nand 415744 81156 334588 20% /var/media/ftp
/dev/loop1 22004 1 22003 0% /var/tmp/1911_1438458537/wrapperfs
#
# showshringbuf modfs
SNIP
2015-08-01 21:43:49.985 - progress: mode=3, msg= OK
2015-08-01 21:43:50.046 - progress: mode=1, msg=Modifikation wird ausgeführt ...
2015-08-01 21:43:50.129 - progress: mode=3, msg= OK
2015-08-01 21:43:50.187 - progress: mode=1, msg=Ãberprüfen des Erfolgs der Modifikation ...
2015-08-01 21:43:50.218 - is_supported: option=postcheck, from=precheck postcheck install language(en,de), rc=1
2015-08-01 21:43:50.295 - progress: mode=3, msg= OK
2015-08-01 21:43:50.354 - execute_modscript: exiting, rc=0
2015-08-01 21:43:50.372 - execute_optional_modscript: exiting, rc=0
2015-08-01 21:43:50.403 - remove_directory: directory=/var/tmp/1911_1438458212, rc=0
2015-08-01 21:43:50.420 - modify_rootfs: exiting, rc=0
2015-08-01 21:43:55.026 - modfs: modifications done, rc=0
2015-08-01 21:43:55.085 - progress: mode=1, msg=Packen des neuen root-Dateisystems ...
2015-08-01 21:43:55.104 - run_spinner: dir=/var/media/ftp/1438458164, command=pack_squashfs /var/media/ftp/1438458164 /var/media/ftp/1438458164/newroot.squashfs 0 65536 4
2015-08-01 21:43:55.140 - pack_squashfs: using SquashFS version 4
2015-08-01 21:43:55.180 - sq_mksquashfs: /var/media/ftp/jw/modfs-0.3.1/bin/185/mksquashfs4 squashfs-root /var/media/ftp/1438458164/newroot.squashfs -info -b 65536 -force-uid 0 -force-gid 0
2015-08-01 21:48:56.915 - sq_mksquashfs: exiting, rc=0
2015-08-01 21:48:56.933 - pack_squashfs: exiting, rc=0
2015-08-01 21:48:56.960 - run_spinner: exiting, rc=0
2015-08-01 21:48:57.022 - progress: mode=3, msg= OK
2015-08-01 21:48:57.039 - modfs: packing done, rc=0
2015-08-01 21:48:57.098 - progress: mode=1, msg=Erstellen eines neuen 'äuÃeren Dateisystems' ...
2015-08-01 21:48:57.125 - copy_wrapper_filesystem: src=/var/tmp/1438458156/filesystem.image, rootfs=filesystem_core.squashfs
2015-08-01 21:48:57.427 - copy_wrapper_filesystem: clearing target device /dev/mtd3, rc=0
2015-08-01 21:48:57.483 - detect_image_filesystem: src=/var/tmp/1438458156/filesystem.image, fstype=ext2, rc=0
2015-08-01 21:48:57.518 - get_temp_dir: directory=/var/tmp/1911_1438458537
2015-08-01 21:48:57.627 - mount_ext2_image: src=/var/tmp/1438458156/filesystem.image, mp=/var/tmp/1911_1438458537/wrapperfs, type=ext2
2015-08-01 21:48:57.671 - mount_ext2_image: exiting, rc=0
2015-08-01 21:48:58.393 - copy_wrapper_filesystem: copying done, rc=0
2015-08-01 21:48:58.538 - remove_directory: directory=/var/tmp/1911_1438458537, rc=1
2015-08-01 21:48:58.558 - copy_wrapper_filesystem: exiting, rc=0
2015-08-01 21:48:58.616 - progress: mode=3, msg= OK
2015-08-01 21:48:58.634 - modfs: update wrapper filesystem done, rc=0
2015-08-01 21:48:58.693 - progress: mode=1, msg=Kopieren des neuen root-Dateisystems in die inaktive Dateisystem-Partition ...
2015-08-01 21:48:58.731 - get_temp_dir: directory=/var/tmp/1911_1438458538
2015-08-01 21:48:58.750 - copy_new_root_filesystem: src=/var/media/ftp/1438458164/newroot.squashfs, target=/dev/mtdblock3
2015-08-01 21:49:05.174 - remove_directory: directory=/var/tmp/1911_1438458538, rc=0
2015-08-01 21:49:05.191 - copy_new_root_filesystem: exiting, rc=0
2015-08-01 21:49:05.250 - progress: mode=3, msg= OK
2015-08-01 21:49:05.267 - modfs: copying new filesystem done, rc=0
2015-08-01 21:49:05.326 - progress: mode=1, msg=Kopieren des neuen Kernel-Images in die Zielpartition ...
2015-08-01 21:49:05.352 - copy_kernel_image: src=/var/tmp/1438458156/kernel.image, target=/dev/mtd2
2015-08-01 21:49:06.127 - copy_kernel_image: exiting, rc=0
2015-08-01 21:49:06.186 - progress: mode=3, msg= OK
2015-08-01 21:49:06.203 - modfs: update kernel done, rc=0
2015-08-01 21:49:06.261 - progress: mode=1, msg=Festlegen des alternativen Systems als aktives System beim nächsten Start der Box ...
2015-08-01 21:49:06.299 - switch_system_to: alternative
2015-08-01 21:49:06.437 - switch_system: switched to 1
2015-08-01 21:49:06.495 - progress: mode=3, msg= OK
2015-08-01 21:49:06.555 - modfs: switching system done, rc=0
2015-08-01 21:49:18.234 - remove_directory: directory=/var/media/ftp/1438458164, rc=0
2015-08-01 21:49:18.283 - remove_directory: directory=/var/tmp/1438458156, rc=0
2015-08-01 21:49:18.300 - modfs: reached normal exit point, rc=0
2015-08-01 21:49:18.317 - cleanup: running cleanup from file /var/tmp/1911_filelist_1438458152
#
Dem Debug-Log nach tritt das "sh: 0: unknown operand" ja in der Funktion "copy_wrapper_filesystem" auf, was im Log in den ZeilenEs läßt sich reproduzieren,
2015-08-01 21:48:57.098 - progress: mode=1, msg=Erstellen eines neuen 'äuÃeren Dateisystems' ...
2015-08-01 21:48:57.125 - copy_wrapper_filesystem: src=/var/tmp/1438458156/filesystem.image, rootfs=filesystem_core.squashfs
2015-08-01 21:48:57.427 - copy_wrapper_filesystem: clearing target device /dev/mtd3, rc=0
2015-08-01 21:48:57.483 - detect_image_filesystem: src=/var/tmp/1438458156/filesystem.image, fstype=ext2, rc=0
2015-08-01 21:48:57.518 - get_temp_dir: directory=/var/tmp/1911_1438458537
2015-08-01 21:48:57.627 - mount_ext2_image: src=/var/tmp/1438458156/filesystem.image, mp=/var/tmp/1911_1438458537/wrapperfs, type=ext2
2015-08-01 21:48:57.671 - mount_ext2_image: exiting, rc=0
2015-08-01 21:48:58.393 - copy_wrapper_filesystem: copying done, rc=0
2015-08-01 21:48:58.538 - remove_directory: directory=/var/tmp/1911_1438458537, rc=1
2015-08-01 21:48:58.558 - copy_wrapper_filesystem: exiting, rc=0
2015-08-01 21:48:58.616 - progress: mode=3, msg= OK
2015-08-01 21:48:58.634 - modfs: update wrapper filesystem done, rc=0
2015-08-01 21:48:58.693 - progress: mode=1, msg=Kopieren des neuen root-Dateisystems in die inaktive Dateisystem-Partition ...
copy_wrapper_filesystem()
{
local rc target src="$1" tmp fstype [COLOR="#FF0000"]mrc=0[/COLOR] kernelversion
target=$(get_mtd_by_name $reservedprefix$filesystemname)
# prepare MTD writes
# notify power management
echo MODE=update > /dev/avm_power
# prevent unwanted watchdog restarts, may be necessary but update is very fast
# echo "disable" > /dev/watchdog
# clear filesystem first
debug "copy_wrapper_filesystem: src=$src, rootfs=$rootfsname"
$update_kernel_binary -o /dev/$mtdprefix$target >/dev/null 2>&1
rc=$?
debug "copy_wrapper_filesystem: clearing target device /dev/$mtdprefix$target, rc=$rc"
if [ [COLOR="#FF0000"]$rc -ne 0[/COLOR] ]; then
rc=44
else
fstype=$(detect_image_filesystem "$src")
rc=$?
if [ [COLOR="#FF0000"]$rc -eq 0[/COLOR] ]; then
# mount squashfs and yaffs2 wrapper and copy from one to the other
tmp="$(get_temp_dir)"
mkdir -p $tmp/yaffs $tmp/wrapperfs
mount -t yaffs2 /dev/$mtdblockname$target $tmp/yaffs
[COLOR="#008000"] if [ "$fstype" == "ext2" -o "$fstype" == "sqfs_dummy256_ext2" ]; then[/COLOR]
# ext2 image with AVM's dummy header
mount_ext2_image "$src" "$tmp/wrapperfs" "$fstype"
rc=$?
[COLOR="#00FF00"]mrc=$rc[/COLOR]
[COLOR="#008000"] else[/COLOR]
mount "$src" $tmp/wrapperfs 2>/dev/null
rc=$?
[COLOR="#00FF00"]mrc=$rc[/COLOR]
if [ [COLOR="#FF0000"]$rc -ne 0[/COLOR] ]; then
# try to extract with unsquashfs3, if this is a 3.xx kernel based
# system without knowledge about SquashFS3 format while mounting
kernelversion=$(uname -r)
kernelversion=${kernelversion%%.*}
if [ $kernelversion -eq 3 -a x"$fstype" == x"squashfs3" ]; then
unpack_squashfs "$src" "$tmp" 2>&1 >/dev/null
rc=$?
if [ [COLOR="#FF0000"]$rc -eq 0[/COLOR] ]; then
rmdir "$tmp/wrapperfs"
mv "$tmp/$squashfsdirname" "$tmp/wrapperfs"
rc=$?
rm "$tmp/wrapperfs/$rootfsname"
fi
fi
fi
fi
if [ [COLOR="#FF0000"]$rc -eq 0[/COLOR] ]; then
tar -c -O -C $tmp/wrapperfs --exclude=$rootfsname . | tar -x -C $tmp/yaffs
rc=$?
debug "copy_wrapper_filesystem: copying done, rc=$rc"
[ [COLOR="#FF0000"]$mrc -eq 0[/COLOR] ] && [COLOR="#0000CD"]umount $tmp/wrapperfs[/COLOR]
umount $tmp/yaffs
remove_directory "$tmp"
rc=0
fi
fi
fi
debug "copy_wrapper_filesystem: exiting, rc=$rc"
return $rc
}
if [ "$fstype" == "ext2" -o "$fstype" == "sqfs_dummy256_ext2" ]; then
# ext2 image with AVM's dummy header
mount_ext2_image "$src" "$tmp/wrapperfs" "$fstype"
rc=$?
mrc=$rc
Reply to #219
# MODFS_DEBUG=1 MODFS_BUFSIZE=32 ./modfs update /var/media/ftp/jw/fritzbox-labor_7490-30987/FRITZ.Box_7490_Labor.113.06.35-30987.image
SNIP
OK
Erstellen eines neuen 'äuÃeren Dateisystems' ...sh: 0: unknown operand
OK
Kopieren des neuen root-Dateisystems in die inaktive Dateisystem-Partition ... OK
copy_wrapper_filesystem()
{
SNIP
mount -t yaffs2 /dev/$mtdblockname$target $tmp/yaffs
if [ "$fstype" == "ext2" -o "$fstype" == "sqfs_dummy256_ext2" ]; then
# ext2 image with AVM's dummy header
mount_ext2_image "$src" "$tmp/wrapperfs" "$fstype"
rc=$?
else
SNIP
fi
if [ $rc -eq 0 ]; then
tar -c -O -C $tmp/wrapperfs --exclude=$rootfsname . | tar -x -C $tmp/yaffs
rc=$?
debug "copy_wrapper_filesystem: copying done, rc=$rc"
[ $mrc -eq 0 ] && umount $tmp/wrapperfs
umount $tmp/yaffs
remove_directory "$tmp"
rc=0
fi
copy_wrapper_filesystem()
{
SNIP
mount -t yaffs2 /dev/$mtdblockname$target $tmp/yaffs
if [ "$fstype" == "ext2" -o "$fstype" == "sqfs_dummy256_ext2" ]; then
# ext2 image with AVM's dummy header
mount_ext2_image "$src" "$tmp/wrapperfs" "$fstype"
rc=$?
mrc=$rc # Zeile 625 einfügen: Merker-RC Variable befuellt
else
SNIP
fi
if [ $rc -eq 0 ]; then
tar -c -O -C $tmp/wrapperfs --exclude=$rootfsname . | tar -x -C $tmp/yaffs
rc=$?
debug "copy_wrapper_filesystem: copying done, rc=$rc"
[ $mrc -eq 0 ] && umount $tmp/wrapperfs
umount $tmp/yaffs
remove_directory "$tmp"
rc=0
fi