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

Gut, damit stimmt aber erst einmal "modfs" an sich und auch das Protokollieren der Skript-Aufrufe funktioniert leidlich ... jetzt wende ich mich der Frage zu, warum "mktemp" zu "applet not found" und rc=1 führt. Die offensichtliche Lösung ist natürlich das Abfragen von "1" an dieser Stelle ... aber wenn das ein Fehler in der BusyBox ist und der wird demnächst mal korrigiert, dann steht man wieder vor demselben Problem - daher suche ich lieber nach der Ursache.
 
nach Ändern des Skripts check_signed_image von mktemp-Return-Code "127" nach "1" läuft modfs durch:

Code:
# MODFS_DEBUG_SHELL=1 ./modfs update ./FRITZ.Box_7490_Labor.113.06.69-41222.image
respawn script with custom BusyBox shell, SHLVL=4
/var/media/ftp/USB-Disk-01/download/modfs-0.3.5-240920161048/bin/185/busybox sh ./modfs update ./FRITZ.Box_7490_Labor.113.06.69-41222.image
Using debug mode with a 64 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.69-41222

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/USB-Disk-01/download/modfs-0.3.5-240920161048/FRITZ.Box_7490_Labor.113.06.69-41222.image' wird als Quelle für die Aktualisierung genutzt.
Überprüfen der Signatur der geladenen Datei ... OK
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 ... OK
Entpacken des root-Dateisystems für die Modifikationen ... |

- - - Aktualisiert - - -

sowie die Datei /var/tmp/modfs_debug_scripts.log hierzu:
Code:
# cat /var/tmp/modfs_debug_scripts.log
<<<<<<<<<< check_image_signature check >>>>>>>>>>
+ avm_default_files=/etc/avm_firmware_public_key[1-9] plugin_global_key.pem
+ [ -z check ]
+ [ xcheck == xcheck ]
+ [ -x openssl ]
+ openssl version
+ [ 0 -ne 0 ]
+ [ -x check_signed_image ]
+ exit 0
<<<<<<<<<< check_image_signature verify /var/media/ftp/SanDisk-UltraFit-01/download/modfs-0.3.5-240920161048/FRITZ.Box_7490_Labor.113.06.69-41222.image >>>>>>>>>>
+ avm_default_files=/etc/avm_firmware_public_key[1-9] plugin_global_key.pem
+ [ -z verify ]
+ [ xverify == xcheck ]
+ [ xverify == xverify ]
+ [ -z /var/media/ftp/SanDisk-UltraFit-01/download/modfs-0.3.5-240920161048/FRITZ.Box_7490_Labor.113.06.69-41222.image ]
+ [ -f /var/media/ftp/SanDisk-UltraFit-01/download/modfs-0.3.5-240920161048/FRITZ.Box_7490_Labor.113.06.69-41222.image ]
+ [ x1 == x1 ]
+ debug=-x
+ debuglog=/var/tmp/modfs_debug_scripts.log
+ /var/run/modfs/sh -x check_signed_image /var/media/ftp/SanDisk-UltraFit-01/download/modfs-0.3.5-240920161048/FRITZ.Box_7490_Labor.113.06.69-41222.image -b
+ avm_default_files=/etc/avm_firmware_public_key[1-9] plugin_global_key.pem
+ eva_prompt=Eva_AVM
+ box_key_name=/var/flash/websrv_ssl_key.pem
+ box_cert_name1=/var/flash/websrv_ssl_cert.pem
+ box_cert_name2=/var/tmp/websrv_ssl_cert.pem
+ [ -z /var/media/ftp/SanDisk-UltraFit-01/download/modfs-0.3.5-240920161048/FRITZ.Box_7490_Labor.113.06.69-41222.image ]
+ image_file=/var/media/ftp/SanDisk-UltraFit-01/download/modfs-0.3.5-240920161048/FRITZ.Box_7490_Labor.113.06.69-41222.image
+ [ -f /var/media/ftp/SanDisk-UltraFit-01/download/modfs-0.3.5-240920161048/FRITZ.Box_7490_Labor.113.06.69-41222.image ]
[COLOR=#0000ff]+ mktemp -d
mktemp: applet not found
+ tmp=
+ [ 1 -eq 1 ]
+ date +%s
+ tmp=/tmp/tmp.1474708418.17973
+ mkdir -p /tmp/tmp.1474708418.17973[/COLOR]
+ trap rm -r "/tmp/tmp.1474708418.17973" EXIT HUP INT
+ show_version
 
Zuletzt bearbeitet:
Nur zur info

Code:
Die angegebene Datei '/var/media/ftp/modd8/41222.image' wird als Quelle für die Aktualisierung genutzt.
Überprüfen der Signatur der geladenen Datei ...[COLOR=#ff0000] Fehler[/COLOR]
# showshringbuf modfs
2016-09-24 11:14:17.152 - modfs: starting modfs script version 0.3.5-240920161048
2016-09-24 11:14:17.170 - modfs: script=./modfs
2016-09-24 11:14:17.191 - modfs: using language de
2016-09-24 11:14:17.209 - modfs: PATH=/var/media/ftp/modd8/bin/185
2016-09-24 11:14:17.227 - modfs: SHELL=/var/run/modfs/sh
2016-09-24 11:14:17.245 - modfs: SHLVL=5
2016-09-24 11:14:17.276 - modfs: BusyBox: BusyBox v1.24.2 (2016-04-02 23:18:36 CEST) multi-call binary.
2016-09-24 11:14:17.302 - modfs: using temporary file list from /var/tmp/13722_filelist_1474708457
2016-09-24 11:14:17.320 - modfs: cleanup trap set
2016-09-24 11:14:17.339 - modfs: invoked with: update 41222.image
2016-09-24 11:14:17.359 - modfs: noversioncheck=1, update_file_provided=1
2016-09-24 11:14:17.377 - modfs: firmware_update_file=41222.image
2016-09-24 11:14:17.408 - check_prerequisites: starting checks
2016-09-24 11:14:17.457 - progress: mode=1, msg=Ermitteln der Hardware-Version ...
2016-09-24 11:14:17.485 - check_prerequisites: hwrev=185
2016-09-24 11:14:17.535 - progress: mode=3, msg= OK
2016-09-24 11:14:17.584 - progress: mode=1, msg=Prüfen, ob die Hardware-Version unterstützt wird ...
2016-09-24 11:14:17.606 - check_prerequisites: supported hardware revision
2016-09-24 11:14:17.657 - progress: mode=3, msg= OK
2016-09-24 11:14:17.707 - progress: mode=1, msg=Suchen der Einstellung zur Umschaltung auf das alternative System ...
2016-09-24 11:14:17.736 - check_prerequisites: system switch value is 1
2016-09-24 11:14:17.785 - progress: mode=3, msg= OK
2016-09-24 11:14:17.836 - progress: mode=1, msg=Prüfen der aktuell zu startenden Systemversion ...
2016-09-24 11:14:17.940 - progress: mode=3, msg= OK
2016-09-24 11:14:17.991 - progress: mode=1, msg=Suchen der aktuellen Kernel-Partition ...
2016-09-24 11:14:18.016 - check_prerequisites: kernel device is /dev/mtdblock2
2016-09-24 11:14:18.067 - progress: mode=3, msg= OK
2016-09-24 11:14:18.117 - progress: mode=1, msg=Suchen der alternativen Kernel-Partition ...
2016-09-24 11:14:18.143 - check_prerequisites: alternative kernel device is /dev/mtdblock0
2016-09-24 11:14:18.193 - progress: mode=3, msg= OK
2016-09-24 11:14:18.243 - progress: mode=1, msg=Vergleich der Systeme in den Kernel-Partitionen ...
2016-09-24 11:14:18.294 - progress: mode=3, msg= übersprungen
2016-09-24 11:14:18.343 - progress: mode=1, msg=Suchen der aktuellen Dateisystem-Partition ...
2016-09-24 11:14:18.369 - check_prerequisites: filesystem device is /dev/mtdblock3
2016-09-24 11:14:18.421 - progress: mode=3, msg= OK
2016-09-24 11:14:18.470 - progress: mode=1, msg=Suchen der alternativen Dateisystem-Partition ...
2016-09-24 11:14:18.496 - check_prerequisites: alternative filesystem device is /dev/mtdblock1
2016-09-24 11:14:18.547 - progress: mode=3, msg= OK
2016-09-24 11:14:18.597 - progress: mode=1, msg=Überprüfen des zur Verfügung stehenden Speicherplatzes im RAM ...
2016-09-24 11:14:18.623 - check_free_tmpfs: wanted=25165824, needed=10485760
2016-09-24 11:14:18.650 - check_free_tmpfs: exiting, rc=0
2016-09-24 11:14:18.701 - progress: mode=3, msg= OK
2016-09-24 11:14:18.752 - progress: mode=1, msg=Überprüfen des freien Speicherplatzes für das Auspacken des Dateisystems ...
2016-09-24 11:14:18.776 - find_free_storage_space: needed=140509184, accept=
2016-09-24 11:14:18.893 - get_nand_mountpoint: location=/var/media/ftp
2016-09-24 11:14:18.922 - check_free_nand: size=140509184, nand=/var/media/ftp, free=356442112
2016-09-24 11:14:18.942 - find_free_storage_space: /var/media/ftp:356442112
2016-09-24 11:14:18.960 - find_free_storage_space: exiting, rc=0
2016-09-24 11:14:19.011 - progress: mode=3, msg= OK
2016-09-24 11:14:19.030 - check_prerequisites: exiting, rc=0
2016-09-24 11:14:19.477 - modfs: source=file_update
2016-09-24 11:14:19.503 - modfs: firmware update file=41222.image
2016-09-24 11:14:19.556 - progress: mode=3, msg=Die angegebene Datei '/var/media/ftp/modd8/41222.image' wird als Quelle für die Aktualisierung genutzt.
2016-09-24 11:14:19.578 - find_free_space: wanted=100M, order=tmpfs nand storage
2016-09-24 11:14:19.604 - check_free_tmpfs: wanted=104857600, needed=104857600
2016-09-24 11:14:19.630 - check_free_tmpfs: exiting, rc=0
2016-09-24 11:14:19.649 - find_free_space: tmpfs=/var/tmp
2016-09-24 11:14:19.668 - find_free_space: exiting, rc=0
2016-09-24 11:14:19.688 - get_working_directory: /var/tmp
2016-09-24 11:14:19.707 - modfs: working directory=/var/tmp
2016-09-24 11:14:19.734 - modfs: image directory=/var/tmp/1474708459
2016-09-24 11:14:19.753 - try_to_check_integrity: target=/var/media/ftp/modd8/41222.image
2016-09-24 11:14:19.801 - progress: mode=1, msg=Überprüfen der Signatur der geladenen Datei ...
2016-09-24 11:14:19.993 - progress: mode=3, msg= Fehler
2016-09-24 11:14:20.011 - try_to_check_integrity: integrity check failed, error code was [COLOR=#ff0000]132[/COLOR]
2016-09-24 11:14:20.030 - try_to_check_integrity: exiting, [COLOR=#ff0000]rc=205[/COLOR]
2016-09-24 11:14:20.049 - cleanup: running cleanup from file /var/tmp/13722_filelist_1474708457
2016-09-24 11:14:20.067 - /var/media/ftp/modd8/bin/185/busybox rm -r /var/tmp/1474708459
#

Debug-log nachträglich angehängt.
LG
 

Anhänge

  • modfs-debug-log.txt
    5.6 KB · Aufrufe: 3
Zuletzt bearbeitet:
Hallo Micha0815,
aktuell mußt Du wie Peter in 862 geschrieben hat die Datei "bin/VR9/check_signed_image" anpassen und es läuft, siehe 863.

Änderung:
Code:
diff bin/VR9/check_signed_image.org bin/VR9/check_signed_image
--- bin/VR9/check_signed_image.org
+++ bin/VR9/check_signed_image
@@ -334,7 +334,7 @@
 #                                                                                  #
 ####################################################################################
 tmp=$(mktemp -d)
-[ $? -eq [COLOR=#ff0000]127[/COLOR] ] && tmp="/tmp/tmp.$(date +%s).$$" && mkdir -p "$tmp"
+[ $? -eq [B][COLOR=#0000ff]1[/COLOR][/B] ] && tmp="/tmp/tmp.$(date +%s).$$" && mkdir -p "$tmp"
 trap "rm -r \"$tmp\"" EXIT HUP INT
 ####################################################################################
 #                                                                                  #
rot markierten Textstelle durch die blau markierte Textstelle ersetzen.
 
Moin

Die busybox (1.24.1 von PeterPawn) braucht keine Symlinks auf ihre Applets, die sind alle intern.

Beispiel:
Code:
./busybox env -i PATH= ./busybox ash
...startet eine ash mit minimalen Environment und ohne Suchpfade.
Alle Kommandos der busybox funktionieren so ohne Softlinks und Suchpfade.
Alle Kommandos anzeigen lassen: help

Das klappt nicht mit der (minimalen) AVM busybox in der Firmware.
 
Zuletzt bearbeitet:
Fehler 132 beim Prüfen der Signatur heißt am Ende Fehler 4 (132 - 128) in "check_signed_image" => https://github.com/PeterPawn/modfs/blob/master/bin/VR9/check_signed_image#L15

Das kann auch an einem Problem mit dem "dd"-Kommando liegen, denn die "Datei" für die Signaturprüfung wird ja nur temporär mit mehreren "dd"-Aufrufen zusammengestellt. Aber auch hier kann das fehlschlagende "mktemp" die eigentliche Ursache sein ... wenn die Datei mit den Namen der Archiv-Member nicht gespeichert werden kann, ist das Ergebnis ebenfalls "Signatur-Datei fehlt".

Ich habe (ohne Änderung im GitHub, nur das Archiv auf yourfritz.de ist angepaßt - 240920161205) mal ein paar zusätzliche Protokoll-Ausgaben in "check_signed_image" eingebaut, die einige Variablen und die Liste der Applets in die Debug-Ausgabe der Shell übernehmen ... für mich verhält sich nach wie vor das "mktemp" unerklärlich, denn eigentlich würde ich diese Reaktionen erwarten:
Code:
root@FB7490:/var/media/ftp/modfs $ unknown;echo $?
-sh: unknown: not found
127
root@FB7490:/var/media/ftp/modfs $ mktemp2;echo $?
-sh: mktemp2: not found
127
root@FB7490:/var/media/ftp/modfs $ mktemp;echo $?
/tmp/tmp.xL5CNj
0
Wenn also "mktemp" als Applet nicht in der BusyBox enthalten ist, dann erwarte ich genau dieselbe Reaktion, wie für jedes andere unbekannte Kommando (und das ist in meinem Beispiel schon die BusyBox aus dem "modfs"-Archiv).

Irgendetwas muß aber dazu führen, daß da keine "127" kommt, sondern diese "1" - das kann im Extremfall wieder ein Symlink im Verzeichnis mit den Binaries sein, der da nicht hingehört. Ist da vielleicht noch irgendwo ein Link in bin/VR9 für "mktemp" übrig geblieben beim Entpacken/Überschreiben anstelle des Auspackens in ein frisches Verzeichnis?

Aber auch das wäre recht merkwürdig (deshalb die parallele Änderung an "check_signed_image"), denn eigentlich müßte das Applet ja bereits wieder vor dem Symlink gefunden werden.

BTW ... wenn so ein Symlink "mktemp => busybox" lautet, dann würde ohnehin wieder der komplette Pfad in PATH erneut durchsucht (und die erste dort gefundene BusyBox verwendet), bei "./busybox" nicht - das ist dann wieder ein "absoluter Pfad", auch wenn er relativ zum aktuellen Verzeichnis ist.

- - - Aktualisiert - - -

@koy:
Das Verhalten der BusyBox ist von den Einstellungen beim Kompilieren abhängig ... das Einzige, was immer geht, ist der Aufruf eines Applets über "busybox applet".
 
Ist da vielleicht noch irgendwo ein Link in bin/VR9 für "mktemp" übrig geblieben beim Entpacken/Überschreiben anstelle des Auspackens in ein frisches Verzeichnis?

also bei mir sind die Verzeichnisse bin/*/* sauber (die Änderung von "check_signed_image" ist dokumentiert),
ich packe immer in leeres Verzeichnis aus:
Code:
# pwd
/var/media/ftp/USB-Stick-01/download/modfs-0.3.5-240920161048
# ls -la bin/*
lrwxrwxrwx    1 root     root             3 Sep 24 10:56 bin/175 -> VR9
lrwxrwxrwx    1 root     root             3 Sep 24 10:56 bin/185 -> VR9
lrwxrwxrwx    1 root     root             3 Sep 24 10:56 bin/193 -> VR9
lrwxrwxrwx    1 root     root             3 Sep 24 10:56 bin/203 -> VR9
lrwxrwxrwx    1 root     root             3 Sep 24 10:56 bin/212 -> VR9
lrwxrwxrwx    1 root     root             3 Sep 24 10:56 bin/218 -> VR9

bin/VR9:
drwxr-xr-x    2 root     root          4096 Sep 24 11:12 .
drwxr-xr-x    3 root     root          4096 Sep 24 10:56 ..
-rwxr-xr-x    1 root     root       1196472 Apr  2 23:20 busybox
-r--r-----    1 root     root         25729 Mar 18  2016 busybox.config
-r-xr-xr--    1 root     root          3657 Sep 24 02:52 check_image_signature
-r-xr-xr--    1 root     root         27922 Sep 24 11:13 check_signed_image
-r-xr-xr--    1 root     root         27924 Sep 22 20:49 check_signed_image.org
-rwxr-xr-x    1 root     root        466472 Apr  2 23:45 e2fsck
-rwxr-xr-x    1 root     root        354504 Apr  2 23:45 mke2fs
-rwxr-xr-x    1 root     root        356116 Apr  3 00:03 mksquashfs3
-rwxr-xr-x    1 root     root        390780 Apr  3 00:04 mksquashfs4
-rwxr-xr-x    1 1000     1000       1961304 Sep 22 19:04 openssl
-rwxr-xr-x    1 root     root        389864 Jul  3 08:50 unsquashfs
-rwxr-xr-x    1 root     root        261712 Apr  3 00:03 unsquashfs3
-rwxr-xr-x    1 root     root        316112 Apr  3 00:04 unsquashfs4
-rwxr-xr-x    1 root     root           195 Sep 24 02:28 wrap_script
#
 
Danke @Pokemon20021 in #865 jetzt fluppts. :D . Musste mir erst die Dateirechte ändern (Total-Commander) damit die geänderte dort landete.
Many TX und LG
 
Zuletzt bearbeitet:
@Pokemon20021:
Dann probiere mal bitte noch einmal mit dem von mir um die Protokollierung ergänzten "check_signed_image" ... ich verstehe absolut nicht, warum sich die BusyBox beim "mktemp" so anders verhält - aber eigentlich geht das schon beim Unverständnis los, warum das Applet nicht direkt gefunden wird.

- - - Aktualisiert - - -

Es sollte auch nicht daran liegen, daß "mktemp" ein Applet sein könnte. Wenn man dasselbe Spiel mit einigen anderen Kommandos macht, die ebenfalls nicht in der "modfs"-Version der BusyBox enthalten sind (script, sed, fbset, usw.), dann kommt das erwartete Ergebnis von "127".
 
Ich habe (ohne Änderung im GitHub, nur das Archiv auf yourfritz.de ist angepaßt - 240920161205) mal ein paar zusätzliche Protokoll-Ausgaben in "check_signed_image" eingebaut, die einige Variablen und die Liste der Applets in die Debug-Ausgabe der Shell übernehmen

@PeterPawn:
anbei der gewünschte Output:
Code:
# MODFS_DEBUG_SHELL=1 ./modfs update ./FRITZ.Box_7490_Labor.113.06.69-41222.image
respawn script with custom BusyBox shell, SHLVL=4
/var/media/ftp/USB-Stick-01/download/modfs-0.3.5-240920161205/bin/185/busybox sh ./modfs update ./FRITZ.Box_7490_Labor.113.06.69-41222.image
Using debug mode with a 64 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.69-41222

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/USB-Stick-01/download/modfs-0.3.5-240920161205/FRITZ.Box_7490_Labor.113.06.69-41222.image' wird als Quelle für die Aktualisierung genutzt.
Überprüfen der Signatur der geladenen Datei ... Fehler
#

Code:
# ls -la /var/tmp/modfs_debug_scripts.log
-rw-r--r--    1 root     root         15085 Sep 24 12:26 /var/tmp/modfs_debug_scripts.log
# cat /var/tmp/modfs_debug_scripts.log
<<<<<<<<<< check_image_signature check >>>>>>>>>>
+ avm_default_files=/etc/avm_firmware_public_key[1-9] plugin_global_key.pem
+ [ -z check ]
+ [ xcheck == xcheck ]
+ [ -x openssl ]
+ openssl version
+ [ 0 -ne 0 ]
+ [ -x check_signed_image ]
+ exit 0
<<<<<<<<<< check_image_signature verify /var/media/ftp/USB-Stick-01/download/modfs-0.3.5-240920161205/FRITZ.Box_7490_Labor.113.06.69-41222.image >>>>>>>>>>
+ avm_default_files=/etc/avm_firmware_public_key[1-9] plugin_global_key.pem
+ [ -z verify ]
+ [ xverify == xcheck ]
+ [ xverify == xverify ]
+ [ -z /var/media/ftp/USB-Stick-01/download/modfs-0.3.5-240920161205/FRITZ.Box_7490_Labor.113.06.69-41222.image ]
+ [ -f /var/media/ftp/USB-Stick-01/download/modfs-0.3.5-240920161205/FRITZ.Box_7490_Labor.113.06.69-41222.image ]
+ [ x1 == x1 ]
+ debug=-x
+ debuglog=/var/tmp/modfs_debug_scripts.log
+ /var/run/modfs/sh -x check_signed_image /var/media/ftp/USB-Stick-01/download/modfs-0.3.5-240920161205/FRITZ.Box_7490_Labor.113.06.69-41222.image -b
+ avm_default_files=/etc/avm_firmware_public_key[1-9] plugin_global_key.pem
+ eva_prompt=Eva_AVM
+ box_key_name=/var/flash/websrv_ssl_key.pem
+ box_cert_name1=/var/flash/websrv_ssl_cert.pem
+ box_cert_name2=/var/tmp/websrv_ssl_cert.pem
+ [ -z /var/media/ftp/USB-Stick-01/download/modfs-0.3.5-240920161205/FRITZ.Box_7490_Labor.113.06.69-41222.image ]
+ image_file=/var/media/ftp/USB-Stick-01/download/modfs-0.3.5-240920161205/FRITZ.Box_7490_Labor.113.06.69-41222.image
+ [ -f /var/media/ftp/USB-Stick-01/download/modfs-0.3.5-240920161205/FRITZ.Box_7490_Labor.113.06.69-41222.image ]
+ echo SHELL=/var/run/modfs/sh
+ busybox
+ sed -n -e 1p
+ echo BusyBox v1.24.2 (2016-04-02 23:18:36 CEST) multi-call binary.
+ echo PATH=/var/media/ftp/USB-Stick-01/download/modfs-0.3.5-240920161205/bin/185
+ echo applets:
+ busybox --list
+ read applet
+ echo [
+ read applet
+ echo [[
+ read applet
+ echo addgroup
+ read applet
+ echo adduser
+ read applet
+ echo arp
+ read applet
+ echo arping
+ read applet
+ echo ash
+ read applet
+ echo awk
+ read applet
+ echo base64
+ read applet
+ echo basename
+ read applet
+ echo bash
+ read applet
+ echo bbconfig
+ read applet
+ echo blkid
+ read applet
+ echo blockdev
+ read applet
+ echo brctl
+ read applet
+ echo bunzip2
+ read applet
+ echo bzcat
+ read applet
+ echo bzip2
+ read applet
+ echo cat
+ read applet
+ echo chat
+ read applet
+ echo chattr
+ read applet
+ echo chgrp
+ read applet
+ echo chmod
+ read applet
+ echo chown
+ read applet
+ echo chpst
+ read applet
+ echo chroot
+ read applet
+ echo cksum
+ read applet
+ echo clear
+ read applet
+ echo cmp
+ read applet
+ echo comm
+ read applet
+ echo conspy
+ read applet
+ echo cp
+ read applet
+ echo cpio
+ read applet
+ echo crond
+ read applet
+ echo crontab
+ read applet
+ echo cryptpw
+ read applet
+ echo cut
+ read applet
+ echo date
+ read applet
+ echo dc
+ read applet
+ echo dd
+ read applet
+ echo delgroup
+ read applet
+ echo deluser
+ read applet
+ echo depmod
+ read applet
+ echo devmem
+ read applet
+ echo df
+ read applet
+ echo dhcprelay
+ read applet
+ echo diff
+ read applet
+ echo dirname
+ read applet
+ echo dmesg
+ read applet
+ echo dnsd
+ read applet
+ echo dnsdomainname
+ read applet
+ echo dos2unix
+ read applet
+ echo dpkg
+ read applet
+ echo dpkg-deb
+ read applet
+ echo du
+ read applet
+ echo dumpleases
+ read applet
+ echo echo
+ read applet
+ echo egrep
+ read applet
+ echo env
+ read applet
+ echo envdir
+ read applet
+ echo envuidgid
+ read applet
+ echo ether-wake
+ read applet
+ echo expand
+ read applet
+ echo expr
+ read applet
+ echo false
+ read applet
+ echo fatattr
+ read applet
+ echo fdisk
+ read applet
+ echo fgconsole
+ read applet
+ echo fgrep
+ read applet
+ echo find
+ read applet
+ echo findfs
+ read applet
+ echo flash_eraseall
+ read applet
+ echo flash_lock
+ read applet
+ echo flash_unlock
+ read applet
+ echo flashcp
+ read applet
+ echo flock
+ read applet
+ echo fold
+ read applet
+ echo free
+ read applet
+ echo fsck
+ read applet
+ echo fstrim
+ read applet
+ echo fsync
+ read applet
+ echo ftpd
+ read applet
+ echo ftpget
+ read applet
+ echo ftpput
+ read applet
+ echo fuser
+ read applet
+ echo getopt
+ read applet
+ echo grep
+ read applet
+ echo groups
+ read applet
+ echo gunzip
+ read applet
+ echo gzip
+ read applet
+ echo halt
+ read applet
+ echo hd
+ read applet
+ echo hdparm
+ read applet
+ echo head
+ read applet
+ echo hexdump
+ read applet
+ echo hostid
+ read applet
+ echo hostname
+ read applet
+ echo httpd
+ read applet
+ echo i2cdetect
+ read applet
+ echo i2cdump
+ read applet
+ echo i2cget
+ read applet
+ echo i2cset
+ read applet
+ echo id
+ read applet
+ echo ifconfig
+ read applet
+ echo ifdown
+ read applet
+ echo ifenslave
+ read applet
+ echo ifup
+ read applet
+ echo inetd
+ read applet
+ echo init
+ read applet
+ echo inotifyd
+ read applet
+ echo insmod
+ read applet
+ echo install
+ read applet
+ echo iostat
+ read applet
+ echo ip
+ read applet
+ echo ipaddr
+ read applet
+ echo ipcalc
+ read applet
+ echo iplink
+ read applet
+ echo iproute
+ read applet
+ echo iprule
+ read applet
+ echo iptunnel
+ read applet
+ echo kill
+ read applet
+ echo killall
+ read applet
+ echo killall5
+ read applet
+ echo klogd
+ read applet
+ echo less
+ read applet
+ echo ln
+ read applet
+ echo logger
+ read applet
+ echo login
+ read applet
+ echo logname
+ read applet
+ echo logread
+ read applet
+ echo losetup
+ read applet
+ echo ls
+ read applet
+ echo lsattr
+ read applet
+ echo lsmod
+ read applet
+ echo lsof
+ read applet
+ echo lspci
+ read applet
+ echo lzcat
+ read applet
+ echo lzma
+ read applet
+ echo makedevs
+ read applet
+ echo makemime
+ read applet
+ echo md5sum
+ read applet
+ echo microcom
+ read applet
+ echo mkdir
+ read applet
+ echo mkfifo
+ read applet
+ echo mknod
+ read applet
+ echo mkpasswd
+ read applet
+ echo mkswap
+ read applet
+ echo mktemp
+ read applet
+ echo modinfo
+ read applet
+ echo modprobe
+ read applet
+ echo more
+ read applet
+ echo mount
+ read applet
+ echo mountpoint
+ read applet
+ echo mpstat
+ read applet
+ echo mv
+ read applet
+ echo nandwrite
+ read applet
+ echo nbd-client
+ read applet
+ echo nc
+ read applet
+ echo netstat
+ read applet
+ echo nice
+ read applet
+ echo nmeter
+ read applet
+ echo nohup
+ read applet
+ echo nslookup
+ read applet
+ echo ntpd
+ read applet
+ echo od
+ read applet
+ echo openvt
+ read applet
+ echo passwd
+ read applet
+ echo patch
+ read applet
+ echo pgrep
+ read applet
+ echo pidof
+ read applet
+ echo ping
+ read applet
+ echo ping6
+ read applet
+ echo pipe_progress
+ read applet
+ echo pivot_root
+ read applet
+ echo pkill
+ read applet
+ echo pmap
+ read applet
+ echo poweroff
+ read applet
+ echo printenv
+ read applet
+ echo printf
+ read applet
+ echo ps
+ read applet
+ echo pscan
+ read applet
+ echo pstree
+ read applet
+ echo pwd
+ read applet
+ echo pwdx
+ read applet
+ echo rdate
+ read applet
+ echo rdev
+ read applet
+ echo readlink
+ read applet
+ echo realpath
+ read applet
+ echo reboot
+ read applet
+ echo reformime
+ read applet
+ echo renice
+ read applet
+ echo reset
+ read applet
+ echo rev
+ read applet
+ echo rfkill
+ read applet
+ echo rm
+ read applet
+ echo rmdir
+ read applet
+ echo rmmod
+ read applet
+ echo route
+ read applet
+ echo rpm
+ read applet
+ echo rpm2cpio
+ read applet
+ echo run-parts
+ read applet
+ echo runsv
+ read applet
+ echo runsvdir
+ read applet
+ echo rx
+ read applet
+ echo sed
+ read applet
+ echo sendmail
+ read applet
+ echo seq
+ read applet
+ echo setconsole
+ read applet
+ echo setlogcons
+ read applet
+ echo setserial
+ read applet
+ echo setsid
+ read applet
+ echo setuidgid
+ read applet
+ echo sh
+ read applet
+ echo sha1sum
+ read applet
+ echo sha256sum
+ read applet
+ echo sha3sum
+ read applet
+ echo sha512sum
+ read applet
+ echo shuf
+ read applet
+ echo slattach
+ read applet
+ echo sleep
+ read applet
+ echo smemcap
+ read applet
+ echo softlimit
+ read applet
+ echo sort
+ read applet
+ echo split
+ read applet
+ echo start-stop-daemon
+ read applet
+ echo stat
+ read applet
+ echo strings
+ read applet
+ echo stty
+ read applet
+ echo stun-ip
+ read applet
+ echo sv
+ read applet
+ echo svlogd
+ read applet
+ echo swapoff
+ read applet
+ echo swapon
+ read applet
+ echo switch_root
+ read applet
+ echo sync
+ read applet
+ echo sysctl
+ read applet
+ echo syslogd
+ read applet
+ echo tac
+ read applet
+ echo tail
+ read applet
+ echo tar
+ read applet
+ echo taskset
+ read applet
+ echo tcpsvd
+ read applet
+ echo tee
+ read applet
+ echo telnet
+ read applet
+ echo telnetd
+ read applet
+ echo test
+ read applet
+ echo tftp
+ read applet
+ echo tftpd
+ read applet
+ echo time
+ read applet
+ echo timeout
+ read applet
+ echo top
+ read applet
+ echo touch
+ read applet
+ echo tr
+ read applet
+ echo traceroute
+ read applet
+ echo traceroute6
+ read applet
+ echo true
+ read applet
+ echo truncate
+ read applet
+ echo tty
+ read applet
+ echo tunctl
+ read applet
+ echo tune2fs
+ read applet
+ echo ubiattach
+ read applet
+ echo ubidetach
+ read applet
+ echo ubimkvol
+ read applet
+ echo ubirmvol
+ read applet
+ echo ubirsvol
+ read applet
+ echo ubiupdatevol
+ read applet
+ echo udhcpc
+ read applet
+ echo udhcpc6
+ read applet
+ echo udhcpd
+ read applet
+ echo udpsvd
+ read applet
+ echo uevent
+ read applet
+ echo umount
+ read applet
+ echo uname
+ read applet
+ echo unexpand
+ read applet
+ echo uniq
+ read applet
+ echo unix2dos
+ read applet
+ echo unlink
+ read applet
+ echo unlzma
+ read applet
+ echo unxz
+ read applet
+ echo unzip
+ read applet
+ echo uptime
+ read applet
+ echo users
+ read applet
+ echo usleep
+ read applet
+ echo uudecode
+ read applet
+ echo uuencode
+ read applet
+ echo vconfig
+ read applet
+ echo vi
+ read applet
+ echo watch
+ read applet
+ echo watchdog
+ read applet
+ echo wc
+ read applet
+ echo wget
+ read applet
+ echo which
+ read applet
+ echo who
+ read applet
+ echo whois
+ read applet
+ echo xargs
+ read applet
+ echo xz
+ read applet
+ echo xzcat
+ read applet
+ echo yes
+ read applet
+ echo zcat
+ read applet
+ echo zcip
+ read applet
+ mktemp -d
mktemp: applet not found
+ eval n=;[ -z $n ] || rmdir $n
+ n=
+ [ -z ]
+ mktemp -d
mktemp: applet not found
+ tmp=
+ [ 1 -eq 127 ]
+ trap rm -r "" EXIT HUP INT
+ show_version
+ local v
+ openssl version
+ v=OpenSSL 1.0.2i  22 Sep 2016
+ [ 0 -eq 127 ]
+ echo -e Found \x1B[1;34mOpenSSL 1.0.2i  22 Sep 2016\x1B[0m
Found OpenSSL 1.0.2i  22 Sep 2016
+ return 0
+ [ 0 -ne 0 ]
+ openssl version
+ sed -n -e s|WARNING: can't open config file: \(.*\)$|\1|p
+ cnf=/var/custom_config/ssl/openssl.cnf
+ [ -n /var/custom_config/ssl/openssl.cnf ]
+ touch /openssl.cnf
touch: /openssl.cnf: Read-only file system
+ export OPENSSL_CONF=/openssl.cnf
+ echo -en Check \x1B[1mdgst\x1B[0m command ...
Check dgst command ... + echo
+ openssl+  dgst
grep -q ^(stdin)=
+ rc=0
+ [ 0 -eq 0 ]
+ show_ok
+ echo -e \x1B[1;32mOK\x1B[0m
OK
+ echo -en Check \x1B[1mrsautl\x1B[0m command ...
Check rsautl command ... + echo
+ openssl rsautl
+ grep -q ^no keyfile specified
+ rc=0
+ [ 0 -eq 0 ]
+ show_ok
+ echo -e \x1B[1;32mOK\x1B[0m
OK
+ offset=0
+ tar -t -v -f /var/media/ftp/USB-Stick-01/download/modfs-0.3.5-240920161205/FRITZ.Box_7490_Labor.113.06.69-41222.image
+ sed -n -e s|^[^ ]* *[^ ]* *\([0-9]*\) *[^ ]* *[^ ]* *\(.*\)$|SIZE=\1 MEMBER=\2|p
+ read line
+ eval SIZE=0 MEMBER=./var/
+ SIZE=0 MEMBER=./var/
+ file_offset=0
+ file_start=512
+ file_end=512
+ offset=512
check_signed_image: line 1: can't create /image_members: Read-only file system
+ echo HEADER=0 START=512 END=512 SIZE=0 BLOCKS=1 MEMBER="./var/"
+ read line
+ eval SIZE=34518 MEMBER=./var/install
+ SIZE=34518 MEMBER=./var/install
+ file_offset=512
+ file_start=1024
+ file_end=35542
+ offset=35840
check_signed_image: line 1: can't create /image_members: Read-only file system
+ echo HEADER=512 START=1024 END=35542 SIZE=34518 BLOCKS=69 MEMBER="./var/install"
+ read line
+ eval SIZE=283844 MEMBER=./var/regelex
+ SIZE=283844 MEMBER=./var/regelex
+ file_offset=35840
+ file_start=36352
+ file_end=320196
+ offset=320512
check_signed_image: line 1: can't create /image_members: Read-only file system
+ echo HEADER=35840 START=36352 END=320196 SIZE=283844 BLOCKS=556 MEMBER="./var/regelex"
+ read line
+ eval SIZE=0 MEMBER=./var/tmp/
+ SIZE=0 MEMBER=./var/tmp/
+ file_offset=320512
+ file_start=321024
+ file_end=321024
+ offset=321024
check_signed_image: line 1: can't create /image_members: Read-only file system
+ echo HEADER=320512 START=321024 END=321024 SIZE=0 BLOCKS=1 MEMBER="./var/tmp/"
+ read line
+ eval SIZE=2505736 MEMBER=./var/tmp/kernel.image
+ SIZE=2505736 MEMBER=./var/tmp/kernel.image
+ file_offset=321024
+ file_start=321536
+ file_end=2827272
+ offset=2827776
check_signed_image: line 1: can't create /image_members: Read-only file system
+ echo HEADER=321024 START=321536 END=2827272 SIZE=2505736 BLOCKS=4896 MEMBER="./var/tmp/kernel.image"
+ read line
+ eval SIZE=23875592 MEMBER=./var/tmp/filesystem.image
+ SIZE=23875592 MEMBER=./var/tmp/filesystem.image
+ file_offset=2827776
+ file_start=2828288
+ file_end=26703880
+ offset=26704384
check_signed_image: line 1: can't create /image_members: Read-only file system
+ echo HEADER=2827776 START=2828288 END=26703880 SIZE=23875592 BLOCKS=46634 MEMBER="./var/tmp/filesystem.image"
+ read line
+ eval SIZE=2795 MEMBER=./var/info.txt
+ SIZE=2795 MEMBER=./var/info.txt
+ file_offset=26704384
+ file_start=26704896
+ file_end=26707691
+ offset=26707968
check_signed_image: line 1: can't create /image_members: Read-only file system
+ echo HEADER=26704384 START=26704896 END=26707691 SIZE=2795 BLOCKS=7 MEMBER="./var/info.txt"
+ read line
+ eval SIZE=278552 MEMBER=./var/chksum
+ SIZE=278552 MEMBER=./var/chksum
+ file_offset=26707968
+ file_start=26708480
+ file_end=26987032
+ offset=26987520
check_signed_image: line 1: can't create /image_members: Read-only file system
+ echo HEADER=26707968 START=26708480 END=26987032 SIZE=278552 BLOCKS=546 MEMBER="./var/chksum"
+ read line
+ eval SIZE=128 MEMBER=./var/signature
+ SIZE=128 MEMBER=./var/signature
+ file_offset=26987520
+ file_start=26988032
+ file_end=26988160
+ offset=26988544
check_signed_image: line 1: can't create /image_members: Read-only file system
+ echo HEADER=26987520 START=26988032 END=26988160 SIZE=128 BLOCKS=2 MEMBER="./var/signature"
+ read line
+ last_sig=0
+ i=0
check_signed_image: line 425: can't open /image_members: no such file
+ [ 0 -eq 0 ]
+ echo -e The specified image file \x1B[1m/var/media/ftp/USB-Stick-01/download/modfs-0.3.5-240920161205/FRITZ.Box_7490_Labor.113.06.69-41222.image\x1B[0m contains no signature file.
The specified image file /var/media/ftp/USB-Stick-01/download/modfs-0.3.5-240920161205/FRITZ.Box_7490_Labor.113.06.69-41222.image contains no signature file.
+ exit 4
+ rm -r
rm: can't remove '': No such file or directory
+ rc=4
+ [ 4 -ne 0 ]
+ exit 132
#
 
In der Liste der Applets ist ja nun deutlich "mktemp" zu sehen ... bleibt die Frage, warum er das dann nicht finden will (zweimal sogar).

Ich könnte jetzt auch einfach die Änderung des Error-Codes ausführen und alles wäre in Ordnung ... aber mich interessiert viel mehr, wo das Problem seine Wurzeln hat und da mich das jetzt so langsam wirklich neugierig macht, werde ich vermutlich doch einmal ein weitgehend originales AVM-Image mit deren BusyBox als Ausgangsbasis testen und notfalls mal ein "strace" für so einen "mktemp"-Aufruf machen.

Was passiert eigentlich bei der AVM-BusyBox, wenn man einfach so auf der Kommandozeile ein "mktemp -d;echo $?" ausführt? Sieht das dann genauso aus, daß die Meldung "applet not found" kommt?
 
Was passiert eigentlich bei der AVM-BusyBox, wenn man einfach so auf der Kommandozeile ein "mktemp -d;echo $?" ausführt? Sieht das dann genauso aus, daß die Meldung "applet not found" kommt?


Code:
# telnet 192.168.1.49
Entering character mode
Escape character is '^]'.

Fritz!Box user: admin
password:

BusyBox v1.22.1 (2015-06-09 10:54:06 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

ermittle die aktuelle TTY
tty is "/dev/pts/0"
Console Ausgaben auf dieses Terminal umgelenkt
disable start/stop characters and flowcontrol
#

# mktemp -d;echo $?
-sh: mktemp: not found
127
#

- - - Aktualisiert - - -

und mit modfs-busybox:

Code:
# cd /var/media/ftp/USB-Disk-01/download/modfs-0.3.5-240920161205
# bin/VR9/busybox sh
/var/media/ftp/USB-Disk-01/download/modfs-0.3.5-240920161205 #
/var/media/ftp/USB-Disk-01/download/modfs-0.3.5-240920161205 # mktemp -d;echo $?
mktemp: applet not found
1
/var/media/ftp/USB-Disk-01/download/modfs-0.3.5-240920161205 #

- - - Aktualisiert - - -

Seltsam, dass dies auch mit gesetztem PATH-Environment nicht geht:

Code:
# export PATH=/var/media/ftp/USB-Stick-01/download/modfs-0.3.5-240920161205/bin/VR9
# bin/VR9/busybox sh
/var/media/ftp/USB-Stick-01/download/modfs-0.3.5-240920161205 # echo $PATH
/var/media/ftp/USB-Stick-01/download/modfs-0.3.5-240920161205/bin/VR9
/var/media/ftp/USB-Stick-01/download/modfs-0.3.5-240920161205 # mktemp -d;echo $?
mktemp: applet not found
1
/var/media/ftp/USB-Stick-01/download/modfs-0.3.5-240920161205 #

- - - Aktualisiert - - -

kann ich das mit strace analysieren ?
# strace -V
strace -- version 4.8

- - - Aktualisiert - - -

notfalls mal ein "strace" für so einen "mktemp"-Aufruf machen.


ich denke der Test wird schwierig;
Aufrufe von UNIX-Binaries gehen:
Code:
strace -fv /bin/ls -la
execve("/bin/ls", ["/bin/ls", "-la"], ["CONFIG_FON_HD=y", "CONFIG_TIMERCONTROL=y", "CONFIG_USB_STORAGE_USERS=n", "CONFIG_WLAN=y", "CONFIG_WLAN_RADIOSENSOR=y", "ANNEX_TEST=0", "DISABLE_WLAN=0", "CONFIG_AB_COUNT=2", "CONFIG_EWETEL_SMARTMETER=n", "CONFIG_FON_IPPHONE=y", "CONFIG_I2C=n", "CONFIG_LFS=y", "CONFIG_LTE=n", "CONFIG_PERL=n", "CONFIG_USB_HOST_AVM=n", "CONFIG_UTF8_FULL=y", "CONFIG_VPN_CERTSRV=n", "CONFIG_WLAN_TXPOWER=y", "CONFIG_BETA_RELEASE=1", "USER=root", "CONFIG_ATA_NOPASSTHROUGH=n", "CONFIG_CAPI_NT=y", "CONFIG_JFFS2=n", "CONFIG_NFS_CLI=n", "CONFIG_ONLINEHELP_URL=https://he"..., "CONFIG_T38=y", "CONFIG_UDEV=y", "CONFIG_WLAN_OPENWIFI=n",

"shell interne Befehle" jedoch nicht:
Code:
strace -fv mktemp -d
/var/media/ftp/bin/strace: Can't stat 'mktemp': No such file or directory
 
Kommt drauf an ... da die Suche nach Applets nur dann angestoßen wird (ich nehme mal an, die kommt zu dem "Beschluß" mit dem "applet not found"-Fehler), wenn das als "Kommando" verstanden wurde, muß man den gesamten Shell-Aufruf bereits mitschneiden, weil ansonsten nur für das "strace" die Suche gestartet wird.

Das sähe dann in etwa so aus:
Code:
root@FB7490:~ $ PS1='::' strace -ff -v -x -y -s 256 -o /var/tmp/strace.out [COLOR="#008000"]busybox sh[/COLOR]
::mktemp -d
/tmp/tmp.Ac9cjS
:: <CTRL-D tippen>
root@FB7490:~ $ ls -la /var/tmp/strace.out*
-rw-r--r--    1 root     root         34380 Sep 24 13:17 /var/tmp/strace.out.27129
-rw-r--r--    1 root     root          9853 Sep 24 13:17 /var/tmp/strace.out.27130
root@FB7490:~ $
Um die zusätzliche Shell-Instanz von der ersten zu unterscheiden, wird ein anderer Prompt verwendet. Nach dem "mktemp"-Aufruf (der sollte den Fehler liefern) dann mit "CTRL-D" diese zusätzliche Shell wieder verlassen und dann ist auch "strace" beendet. Die Ausgabedateien sind bei "-ff" nach Child-Prozessen getrennt ... man kann auch mit einfachem "-f" eine gemeinsame erzeugen, aber ich vermute mal, einzelne sind erst einmal übersichtlicher und das (nachträgliche) Zusammenmischen ist leichter als das Trennen.

Ach so ... beim "strace"-Aufruf muß natürlich der Pfad zur "modfs"-BusyBox angegeben werden, sonst nimmt das doch die von AVM aus dem Pfad.
 
irgendwie kann ich aus strace-output auf Anhieb nicht wirklich was herauslesen:

Code:
# cat /var/tmp/strace.out.7732
setpgid(0, 7732)                        = 0
ioctl(10</dev/tty>, 0x80047476, 0x7fbc473c) = 0
rt_sigaction(SIGTSTP, {SIG_DFL, ~[RT_65 RT_66 RT_71 RT_72 RT_73 RT_74 RT_75 RT_77 RT_79 RT_83 RT_84 RT_86 RT_88 RT_89 RT_90 RT_91 RT_92 RT_93 RT_94], 0}, NULL, 16) = 0
rt_sigaction(SIGTTOU, {SIG_DFL, ~[RT_65 RT_66 RT_71 RT_72 RT_73 RT_74 RT_75 RT_77 RT_79 RT_83 RT_84 RT_86 RT_88 RT_89 RT_90 RT_91 RT_92 RT_93 RT_94], 0}, NULL, 16) = 0
rt_sigaction(SIGINT, {SIG_DFL, ~[RT_65 RT_66 RT_71 RT_72 RT_73 RT_74 RT_75 RT_77 RT_79 RT_83 RT_84 RT_86 RT_88 RT_89 RT_90 RT_91 RT_92 RT_93 RT_94], 0}, NULL, 16) = 0
rt_sigaction(SIGTERM, {SIG_DFL, ~[RT_65 RT_66 RT_71 RT_72 RT_73 RT_74 RT_75 RT_77 RT_79 RT_83 RT_84 RT_86 RT_88 RT_89 RT_90 RT_91 RT_92 RT_93 RT_94], 0}, NULL, 16) = 0
rt_sigaction(SIGQUIT, {SIG_DFL, ~[RT_65 RT_66 RT_71 RT_72 RT_73 RT_74 RT_75 RT_77 RT_79 RT_83 RT_84 RT_86 RT_88 RT_89 RT_90 RT_91 RT_92 RT_93 RT_94], 0}, NULL, 16) = 0
execve("/bin/busybox", ["mktemp", "-d"], ["DISABLE_WLAN=0", "ANNEX_TEST=0", "CONFIG_WLAN_RADIOSENSOR=y", "CONFIG_WLAN=y", "CONFIG_USB_STORAGE_USERS=n", "CONFIG_TIMERCONTROL=y", "CONFIG_FON_HD=y", "CONFIG_BETA_RELEASE=1", "CONFIG_WLAN_TXPOWER=y", "CONFIG_VPN_CERTSRV=n", "CONFIG_UTF8_FULL=y", "CONFIG_USB_HOST_AVM=n", "CONFIG_PERL=n", "CONFIG_LTE=n", "CONFIG_LFS=y", "CONFIG_I2C=n", "CONFIG_FON_IPPHONE=y", "CONFIG_EWETEL_SMARTMETER=n", "CONFIG_AB_COUNT=2", "CONFIG_WLAN_OPENWIFI=n", "CONFIG_UDEV=y", "CONFIG_T38=y", "CONFIG_ONLINEHELP_URL=https://help.avm.de/fritzbox.php?hardware=185&oem=avm&language=de&country=049&version=113.06.69&subversion=41222", "CONFIG_NFS_CLI=n", "CONFIG_JFFS2=n", "CONFIG_CAPI_NT=y", "CONFIG_ATA_NOPASSTHROUGH=n", "USER=root", "LTE_LIFETEST=0", "CONFIG_USB_TETHERING=y", "CONFIG_STOREUSRCFG=y", "CONFIG_NFS=n", "CONFIG_LED_EVENTS=y", "CONFIG_KIDS_CONTENT=n", "CONFIG_CODECS_IN_PCMROUTER=y", "STATUS_TEST=0", "USB_HOST_TEST=0", "CONFIG_YAFFS2=y", "CONFIG_WLAN_ATH_NM_MAGPIE=n", "CONFIG_UBIK2=n", "CONFIG_SQLITE=y", "CONFIG_NEUERUL=y", "CONFIG_CAPI_XILINX=y", "prevlevel=N", "TFTP_SERVER=192.168.178.20", "CONFIG_WEBGUI_PASS=n", "CONFIG_FONGUI2=y", "CONFIG_DSL_UR8=n", "CONFIG_CONFIGD=y", "CONFIG_CHRONY=y", "SHLVL=5", "OLDPWD=/", "DSL_ECHO_TEST=0", "CONFIG_WLAN_WDS_NO_SLAVE=n", "CONFIG_USB=n", "CONFIG_TAM_ONRAM=n", "CONFIG_SQLITE_VIDEO=y", "CONFIG_GPS=n", "CONFIG_FTP=y", "CONFIG_FONQUALITY=y", "HOME=/", "WLAN_TEST=0", "GCOV_PREFIX=/var/gcov", "OEM=avm", "CONFIG_VDSL=y", "CONFIG_PRODUKT_NAME=FRITZ!Box 7490", "CONFIG_NCURSES=n", "CONFIG_MULTI_COUNTRY=n", "CONFIG_ENVIRONMENT_PATH=/proc/sys/urlader", "CONFIG_USB_HOST_TI=n", "CONFIG_DECT_NO_EMISSION=y", "CONFIG_DECT_AUDIOD=y", "ethaddr=C8:0E:14:12:34:56", "DSLMODE=0", "CONFIG_SWAP=n", "CONFIG_PROV_DEFAULT=n", "CONFIG_NTFS=y", "CONFIG_LED_NO_DSL_LED=y", "CONFIG_HOME_AUTO=y", "CONFIG_AVMIPC_REMOTE_IP=", "CONFIG_ASSIST=y", "CONFIG_MANUAL_URL=https://assets.avm.de/manual/?hardware=185&oem=avm&language=de&country=049&version=113.06.69&subversion=41222", "CONFIG_SUBVERSION=-41222", "CONFIG_VERSION=06.69", "CONFIG_USB_STORAGE=y", "CONFIG_USB_INTERNAL_HUB=n", "CONFIG_DIAGNOSE_LEVEL=0", "CONFIG_CAPI_POTS=y", "HWRevision_ATA=1", "runlevel=S", "PS1=::", "CONFIG_WEBSRV=y", "CONFIG_USB_XHCI=y", "CONFIG_SAMBA=y", "WLAN_CAL=0", "CONFIG_BUILDNUMBER=41222", "CONFIG_RELEASE=2", "CONFIG_DECT_MONI_EX=y", "CONFIG_BLUETOOTH_CTP=n", "Language_is_default=yes", "CONFIG_ROMSIZE=0-sflash_size=1MB-nand_size=512MB", "CONFIG_SERVICEPORTAL_URL=https://www.avm.de/fritzbox-service-portal.php?hardware=185&oem=avm&language=de&country=049&version=113.06.69&subversion=41222", "CONFIG_PRODUKT=Fritz_Box_HW185", "CONFIG_FLASH_DOUBLE=y", "CONFIG_FIRMWARE_URL=https://www.avm.de/fritzbox-firmware-update.php?hardware=185&oem=avm&language=de&country=049", "CONFIG_DECT_FW_ULE=n", "HWRevision=185", "HWRevision_BitFileCount=", "ANNEX=B", "CONFIG_XILINX=y", "CONFIG_VERSION_MAJOR=113", "CONFIG_TR064=y", "CONFIG_NO_EXTENDED_CODECS=n", "CONFIG_MAILD=y", "CONFIG_BUTTON=y", "CONFIG_ACCESSORY_URL=https://www.avm.de/fritzbox_apps.php?hardware=185&oem=avm&language=de&country=049&version=113.06.69&subversion=41222", "CONFIG_WLAN_ATH_NM_COMBO=n", "CONFIG_ONLINEHELP=y", "CONFIG_NQOS=y", "CONFIG_MEDIASRV_MOUNT=n", "CONFIG_FIBER=n", "CONFIG_DOCSIS_PCD_NO_REBOOT=n", "CONFIG_CXX=n", "CONFIG_BOXLOWRESSOURCES=n", "Country_is_default=yes", "Recover_was_here=", "CONFIG_VPN=y", "CONFIG_USB_PRINT_SERV=y", "CONFIG_GDB=n", "sflash_size=1024KB", "CONFIG_UPNP=y", "CONFIG_ETH_COUNT=4", "POTSCALL=0", "CONFIG_WEBDAV=y", "CONFIG_USB_LTE=n", "CONFIG_CAPI=y", "TERM=vt102", "CONFIG_LABOR_ID_NAME=BETA", "CONFIG_WLAN_STANDALONE_MODE=n", "CONFIG_WLAN_GUEST=y", "CONFIG_TR069=y", "CONFIG_MAILER=n", "CONFIG_DSL_2DP=y", "CONFIG_WLAN_WEATHER_CAC=n", "CONFIG_USB_GSM=y", "CONFIG_PLUGINV2=n", "CONFIG_PLC_DETECTION=y", "CONFIG_ONLINEPB=y", "CONFIG_FAXSEND=y", "CONFIG_DECT_HOME_HANFUN=y", "CONFIG_CDROM_FALLBACK=n", "nor_size=0MB", "CONFIG_WLAN_WDS=n", "CONFIG_USB_GSM_VOICE=y", "CONFIG_FHEM=n", "CONFIG_DECT=y", "PATH=/var/media/ftp/USB-Disk-01/download/modfs-0.3.5-240920161205/bin/VR9", "CONFIG_WLAN_1130TNET=n", "CONFIG_TELEKOM_KOFFER=n", "CONFIG_RAMDISK=n", "CONFIG_NAND=y", "CONFIG_MTD_MAILSEND=y", "CONFIG_INSTALL_TYPE=mips34_512MB_xilinx_vdsl_dect446_4geth_2ab_isdn_nt_te_pots_2usb_host_wlan11n_27490", "CONFIG_FAXSUPPORT=y", "CONFIG_DSL_BONDING=n", "CONFIG_DECT_PICTURED=y", "CONFIG_CAPI_UBIK=n", "enable_ata=1", "CONFIG_WLAN_MADWIFI=y", "CONFIG_WLAN_ATH_NM_PCI=n", "CONFIG_SRTP=n", "CONFIG_QOS_METER=y", "CONFIG_MULTI_LANGUAGE=n", "CONFIG_IGD=y", "CONFIG_HOME_AUTO_NET=y", "CONFIG_DECT_HOME=y", "CONFIG_CONFIGSPACE_ONNAND=y", "CONFIG_WLAN_WMM=y", "CONFIG_UNIQUE_PASSWD=n", "CONFIG_PLUGINV2_WEBCM_INTERPRETER=n", "CONFIG_OEM_DEFAULT=avm", "CONFIG_MEDIASRV=y", "CONFIG_FAX2MAIL=y", "CONFIG_EXT2=y", "CONFIG_DECT_ONOFF=n", "CONFIG_DECT_14446=y", "nand_size=512MB", "CAPISERV_TEST=0", "CONFIG_MYFRITZ=y", "CONFIG_HOMEI2C=n", "CONFIG_EXT3=y", "CONFIG_ERR_FEEDBACK=y", "CONFIG_BOX_FEEDBACK=y", "CONFIG_BASIS=y", "CONFIG_AUDIO=n", "CONFIG_ATA=y", "CONFIG_WLAN_1350TNET=n", "CONFIG_VOIP_ENUM=n", "CONFIG_VLYNQ=n", "CONFIG_URLADER_UPDATE=n", "CONFIG_SQLITE_BILDER=y", "CONFIG_IPV6=y", "CONFIG_ECO=y", "CONFIG_DSL_MULTI_ANNEX=n", "CONFIG_USB_HOST_INTERNAL=n", "CONFIG_STRACE=y", "CONFIG_LOGD=n", "CONFIG_INETD=y", "CONFIG_DOCSIS_MODEM=n", "SHELL=/bin/sh", "CONFIG_WLAN_IPTV=y", "CONFIG_WLAN_EACS=y", "CONFIG_VOL_COUNTER=y", "CONFIG_UTF8=y", "CONFIG_USB_WLAN_AUTH=y", "CONFIG_SPEEDSTEP=n", "CONFIG_REMOTE_HTTPS=y", "CONFIG_NOTELNETD=n", "CONFIG_MEDIACLI=y", "CONFIG_HOSTNAME=fritz.box", "CONFIG_GFAST=n", "CONFIG_GDB_FULL=n", "CONFIG_CDROM=n", "CONFIG_USB_STORAGE_SPINDOWN=y", "CONFIG_USB_HOST=y", "CONFIG_PLUGINV2_TAM=n", "CONFIG_LIB_MATH=y", "CONFIG_ECO_SYSSTAT=y", "CONFIG_DOCSIS_CLI=n", "CONFIG_AUTOUPDATE=y", "CONFIG_MAILER2=y", "CONFIG_DOCSIS=n", "CONFIG_AURA=y", "ETC_CONFIG_PATH=/etc/init.d/rc.init", "CONFIG_WLAN_TCOM_PRIO=n", "CONFIG_PLUGINV2_WLAN=n", "Language=de", "CONFIG_UPDATEFEATURE_URL=https://www.avm.de/fritzbox_firmware-features.php?hardware=185&oem=avm&language=de&country=049&version=113.06.69&subversion=41222", "CONFIG_WLAN_WDS2=y", "CONFIG_WLAN_HOTSPOT=y", "CONFIG_WEBCM_INTERPRETER=y", "CONFIG_SESSIONID=y", "CONFIG_MTD_RSS=y", "CONFIG_KIDS=y", "CONFIG_DECT2=y", "CONFIG_CAPI_TE=y", "CONFIG_NEWSLETTER_URL=https://www.avm.de/newsletter?hardware=185&oem=avm&language=de&country=049&version=113.06.69&subversion=41222", "CONFIG_BUILDTYPE=1001", "CONFIG_WLAN_WPS=y", "CONFIG_WEBUSB=y", "CONFIG_SOCAT=n", "CONFIG_LABOR_DSL=n", "CONFIG_DECT_MONI=y", "CONFIG_ANNEX=B", "PWD=/var/media/ftp/USB-Disk-01/download/modfs-0.3.5-240920161205", "CONFIG_PLC=n", "CONFIG_MINI=n", "CONFIG_LINEARTV=n", "CONFIG_DSL_VENDORID=", "Country=049", "CONFIG_WLAN_GREEN=y", "CONFIG_VLYNQ0=0", "CONFIG_TAM_MODE=1", "CONFIG_ETH_GBIT=y", "GCOV_PREFIX_STRIP=1", "TZ=CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00", "CONFIG_WLAN_SAVEMEM=n", "CONFIG_WLAN_BRCM=n", "CONFIG_VLYNQ1=0", "CONFIG_PPA=y", "CONFIG_MTD_MAIL=y", "CONFIG_GDB_SERVER=n", "CONFIG_FONBOOK2=y", "CONFIG_CAPI_MIPS=n", "FINALIZE=0", "OEM_DEFAULT_INDEX=", "CONFIG_WLAN_ATH_NM_USB=n", "CONFIG_WLAN_ATH_NM_OFFLOAD=y", "CONFIG_TAM=y", "CONFIG_SPEECH_FEEDBACK=y", "CONFIG_SDK=n", "CONFIG_NFS_SRV=n", "CONFIG_NAS=y", "CONFIG_MORPHSTICK=n", "CONFIG_LUA=y", "CONFIG_LLTD=n", "CONFIG_BLUETOOTH=n", "CONFIG_ATA_FULL=n", "CONFIG_RAMSIZE=256", "CONFIG_LIBZ=y", "CONFIG_IPTV_4THOME=y", "CONFIG_FON=y", "CONFIG_DSL=y", "CONFIG_DECT_CATIQ20=n", "HWSubRevision=5"]) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_UNINITIALIZED, -1, 0) = 0x7767b000
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3</lib/libuClibc-0.9.33.2.so>, {st_dev=makedev(7, 0), st_ino=1036, st_mode=S_IFREG|0777, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=1370, st_size=701296, st_atime=2016/09/22-12:45:08, st_mtime=2016/09/22-12:45:08, st_ctime=2016/09/22-12:45:08}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_UNINITIALIZED, -1, 0) = 0x7767a000
read(3</lib/libuClibc-0.9.33.2.so>, "\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x08\x00\x00\x00\x01\x00\x00\xbf\x00\x00\x00\x00\x34\x00\x0a\xad\xa8\x70\x00\x10\x07\x00\x34\x00\x20\x00\x0b\x00\x28\x00\x25\x00\x24\x00\x00\x00\x06\x00\x00\x00\x34\x00\x00\x00\x34\x00\x00\x00\x34\x00\x00\x01\x60\x00\x00\x01\x60\x00\x00\x00\x05\x00\x00\x00\x04\x00\x00\x00\x03\x00\x09\xba\xa0\x00\x09\xba\xa0\x00\x09\xba\xa0\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x04\x00\x00\x00\x04\x70\x00\x00\x00\x00\x00\x01\x94\x00\x00\x01\x94\x00\x00\x01\x94\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\xc0\xe8\x00\x09\xc0\xe8\x00\x00\x00\x05\x00\x01\x00\x00\x00\x00\x00\x01\x00\x09\xcd\x90\x00\x0a\xcd\x90\x00\x0a\xcd\x90\x00\x00\x12\x20\x00\x00\x91\x44\x00\x00\x00\x06\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x01\xac\x00\x00\x01\xac\x00\x00\x01\xac\x00\x00\x00\xd8\x00\x00\x00\xd8\x00\x00\x00\x07\x00\x00\x00\x04\x00\x00\x00\x07\x00\x09\xcd\x90\x00\x0a\xcd\x90"..., 4096) = 4096
mmap(NULL, 745472, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x775b0000
mmap(0x775b0000, 639208, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3</lib/libuClibc-0.9.33.2.so>, 0) = 0x775b0000
mmap(0x7765c000, 8112, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3</lib/libuClibc-0.9.33.2.so>, 0x9c000) = 0x7765c000
mmap(0x7765e000, 32468, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7765e000
close(3</lib/libuClibc-0.9.33.2.so>)    = 0
munmap(0x7767a000, 4096)                = 0
stat("/lib/ld-uClibc.so.0", {st_dev=makedev(7, 0), st_ino=675, st_mode=S_IFREG|0777, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=62, st_size=31680, st_atime=2016/09/22-12:45:08, st_mtime=2016/09/22-12:45:08, st_ctime=2016/09/22-12:45:08}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_UNINITIALIZED, -1, 0) = 0x7767a000
set_thread_area(0x77681460)             = 0
mprotect(0x7765c000, 4096, PROT_READ)   = 0
mprotect(0x7767c000, 4096, PROT_READ)   = 0
ioctl(0</dev/pts/0>, TIOCNXCL, {c_iflags=0x100, c_oflags=0x1805, c_cflags=0xbf, c_lflags=0xb3b, c_line=0, c_cc="\x03\x1c\x08\x15\x01\x00\x00\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x04\x00\x00\x00\x00\x00\x00"}) = 0
ioctl(1</dev/pts/0>, TIOCNXCL, {c_iflags=0x100, c_oflags=0x1805, c_cflags=0xbf, c_lflags=0xb3b, c_line=0, c_cc="\x03\x1c\x08\x15\x01\x00\x00\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x04\x00\x00\x00\x00\x00\x00"}) = 0
getuid()                                = 0
write(2</dev/pts/0>, "mktemp", 6)       = 6
write(2</dev/pts/0>, ": applet not found\n", 19) = 19
exit_group(1)                           = ?
+++ exited with 1 +++
 
Zuletzt bearbeitet:
Die Tatsache, daß der überhaupt dynamisch Bibliotheken nachladen will, zeigt ja schon, daß es eben die falsche BusyBox ist, die hier aufgerufen wird. Die "modfs"-Version ist ja statisch gelinkt, da braucht es kein dynamisches Laden.

Interessant wäre auch eher die Ausgabe des Eltern-Prozesses ... hier ist ja die Frage, wie der zu der Idee kommt, das "mktemp -d" in ein "execve("/bin/busybox", "mktemp", "-d", ...)" zu "übersetzen". Da wird offensichtlich wieder die AVM-BusyBox aufgerufen (die ist ja nach wie vor diejenige, die als "/bin/busybox" existiert bei Dir) und für die stimmt dann die Aussage "applet not found" auch wieder. Da es sich hier im Prinzip um den Aufruf "busybox mktemp -d" handelt, ist die Fehlernachricht sogar wieder zutreffend.

Das führt dann zu der oben erwähnten Frage, warum da dieser "execve()"-Call gemacht wird und das obendrein noch mit der falschen Binärdatei ... denn wenn da anstelle von "/bin/busybox" die "modfs"-Datei aufgerufen würde, klappt das auch wieder. Wie kommt der also auf das schmale Brett, hier die "/bin/busybox" zu suchen? Das kann nur ein Symlink irgendwo sein, der dann seinerseits für "mktemp" auf "/bin/busybox" verweist (oder auch relativ, das würde vorher aufgelöst - vermute ich einfach mal).

Bei mir klappt es halt deshalb, weil die als "/bin/busybox" existierende Datei ihrerseits das "mktemp" als Applet enthält.

- - - Aktualisiert - - -

Irgendetwas stimmt mit der Implementierung in der BusyBox nicht ... ob das im Upstream auch so ist oder erst ein Freetz-Patch daran schuld ist (die "modfs"-BusyBox ist ja mit der Freetz-Toolchain gebaut), wäre als nächstes zu klären.

Laut BusyBox-INSTALL sollte das so aussehen:
Code:
Standalone shell mode causes busybox's built-in command shell to run
any built-in busybox applets directly, without looking for external
programs by that name.  Supplying an empty command path (as above) means
the only commands busybox can find are the built-in ones.

Note that the standalone shell requires CONFIG_BUSYBOX_EXEC_PATH
to be set appropriately, depending on whether or not /proc/self/exe is
available. If you do not have /proc, then point that config option
to the location of your busybox binary, usually /bin/busybox.
Another solution is to patch the kernel (see
examples/linux-*_proc_self_exe.patch) to make exec("/proc/self/exe")
always work.
Auf der FRITZ!Box ist das "procfs" verfügbar, damit sollte ein Aufruf von "mktemp" aus einer BusyBox unterhalb des "modfs"-Verzeichnisses auch dazu führen, daß diese BusyBox erneut sich selbst aufruft, denn "/proc/self/exe" sollte eben genau auf die eigene Binärdatei zeigen. Wenn dann trotzdem "/bin/busybox" verwendet wird, ist das in meinen Augen ein Fehler ... bleibt die Frage, woher der stammt.

Jedenfalls sollte nach der BusyBox da /proc/self/exe benutzt werden:
Code:
config FEATURE_PREFER_APPLETS
     bool "exec prefers applets"
     default n
     help
       This is an experimental option which directs applets about to
       call 'exec' to try and find an applicable busybox applet before
       searching the PATH. This is typically done by exec'ing
       /proc/self/exe.
       This may affect shell, find -exec, xargs and similar applets.
       They will use applets even if /bin/<applet> -> busybox link
       is missing (or is not a link to busybox). However, this causes
       problems in chroot jails without mounted /proc and with ps/top
       (command name can be shown as 'exe' for applets started this way).

config FEATURE_SH_STANDALONE
     bool "Standalone shell"
     default n
     depends on (HUSH || ASH) && FEATURE_PREFER_APPLETS
     help
       This option causes busybox shells to use busybox applets
       in preference to executables in the PATH whenever possible. For
       example, entering the command 'ifconfig' into the shell would cause
       busybox to use the ifconfig busybox applet. Specifying the fully
       qualified executable name, such as '/sbin/ifconfig' will still
       execute the /sbin/ifconfig executable on the filesystem. This option
       is generally used when creating a statically linked version of busybox
       for use as a rescue shell, in the event that you screw up your system.

       This is implemented by re-execing /proc/self/exe (typically)
       with right parameters. Some selected applets ("NOFORK" applets)
       can even be executed without creating new process.
       Instead, busybox will call <applet>_main() internally.

       However, this causes problems in chroot jails without mounted /proc
       and with ps/top (command name can be shown as 'exe' for applets
       started this way).
Beide Einstellungen auf "y" beschreibt ja genau den Zustand, den ich gerne hätte ... jedes interne Applet wird zuerst benutzt, egal ob es einen Symlink irgendwo im Dateisystem bzw. im Suchpfad gibt.

Bleibt die Frage, warum für "mktemp" das interne Applet nicht gefunden wird. Da es dort eine binäre Suche gibt und einiges von Freetz an der Stelle gepatcht wird (u.a. die Möglichkeit, an den Applet-Namen noch ein "-busybox" anzuhängen), sind das u.U. zwei unabhängige Fehler bzw. der zusätzliche Aufruf (für den dann auch noch BUSYBOX_EXEC_PATH anstelle von /proc/self/exe genutzt wird) ist vermutlich die Folge des Problems bei der Suche nach dem Applet.

- - - Aktualisiert - - -

So, nach einer umfangreichen Expedition durch die Eingeweide der BusyBox stellt sich dann heraus, daß die Verwendung von "/proc/self/exe" als Quelle für den Namen des eigenen Binaries gar nicht über irgendeine Option "ja/nein" eingestellt wird, sondern daß da mittels "readlink" die Datei gesucht wird, auf die der Pfad in der Konfigurationsvariablen (compile time) "BUSYBOX_EXEC_PATH" zeigt.

Diese wird dann innerhalb von Freetz auf "/bin/busybox" gesetzt und damit funktioniert das ganze Zeug mit "SH_STANDALONE" und "PREFER_APPLETS" nur noch, wenn die gewünschte BusyBox auch diejenige ist, welche als "/bin/busybox" im Dateisystem liegt.

Ich übersetze gerade mal eine BusyBox in Freetz, bei der ich da wieder "/proc/self/exe" eingetragen habe ... die sollte dann endlich wirklich funktionieren. Dauert noch ein paar Minuten, ich gebe dann Bescheid, wenn die neue Version online ist.
 
Gut debugt :D

Hab mich auch schon gewundert, warum ls und rm gefunden werden aber mktemp nicht.
(Obwohl es keine Suchpfade gibt)
...weil die Gefundenen aus der /bin/busybox ausgeführt werden.
 
Zuletzt bearbeitet:
So, wäre bereit zum Test ... irgendwann muß es ja mal funktionieren - ich teste jetzt parallel mit meiner älteren BusyBox und baue mir dann gleich selbst eine 41222; dann auch gleich mit der neuen BusyBox als Ersetzung über "ownfiles".
 
So, wäre bereit zum Test

es läuft mit modfs-0.3.5-240920161740 noch nicht;

Code:
# cat /var/tmp/modfs_debug_scripts.log
SNIP
mktemp: applet not found
+ eval n=;[ -z $n ] || rmdir $n
+ n=
+ [ -z ]
+ mktemp -d
mktemp: applet not found
+ tmp=
+ [ 1 -eq 127 ]
 
Mache mal bitte ein "grep self bin/VR9/busybox" (das sollte eine Zeile "/proc/self/exe" enthalten) und wiederhole mal bitte den Test mit "strace" ... da sollte jetzt ein "execve("/proc/self/exe")" auftauchen für das "mktemp".

Ansonsten hast Du ja den Teil mit der Anzeige der BusyBox-Version gerade weggeschnitten - ist zwar auch langweilig, immer dasselbe zu sehen, aber da sollte sich jetzt etwas geändert haben. Außerdem habe ich gerade noch die Anzeige von /proc/self/exe noch in die Debug-Ausgabe von "check_signed_image" aufgenommen.
 
Prima

Hier ohne Probleme. Lieben Dank @PeterPawn
LG

Nachtrag bis zu dem Sigcheck der ringbuf

Code:
# showshringbuf modfs
2016-09-24 18:39:01.820 - modfs: starting modfs script version 0.3.5-[COLOR=#0000ff]240920161740[/COLOR]
2016-09-24 18:39:01.838 - modfs: script=./modfs
2016-09-24 18:39:01.859 - modfs: using language de
2016-09-24 18:39:01.878 - modfs: PATH=/var/media/ftp/modd9/bin/185
2016-09-24 18:39:01.896 - modfs: SHELL=/var/run/modfs/sh
2016-09-24 18:39:01.915 - modfs: SHLVL=5
2016-09-24 18:39:01.948 - modfs: BusyBox: BusyBox v1.24.2 (2016-09-24 17:17:47 CEST) multi-call binary.
2016-09-24 18:39:01.975 - modfs: using temporary file list from /var/tmp/4112_filelist_1474735141
2016-09-24 18:39:01.994 - modfs: cleanup trap set
2016-09-24 18:39:02.012 - modfs: invoked with: update ./41222.image
2016-09-24 18:39:02.032 - modfs: noversioncheck=1, update_file_provided=1
2016-09-24 18:39:02.050 - modfs: firmware_update_file=./41222.image
2016-09-24 18:39:02.081 - check_prerequisites: starting checks
2016-09-24 18:39:02.131 - progress: mode=1, msg=Ermitteln der Hardware-Version ...
2016-09-24 18:39:02.159 - check_prerequisites: hwrev=185
2016-09-24 18:39:02.210 - progress: mode=3, msg= OK
2016-09-24 18:39:02.261 - progress: mode=1, msg=Prüfen, ob die Hardware-Version unterstützt wird ...
2016-09-24 18:39:02.284 - check_prerequisites: supported hardware revision
2016-09-24 18:39:02.334 - progress: mode=3, msg= OK
2016-09-24 18:39:02.386 - progress: mode=1, msg=Suchen der Einstellung zur Umschaltung auf das alternative System ...
2016-09-24 18:39:02.415 - check_prerequisites: system switch value is 1
2016-09-24 18:39:02.467 - progress: mode=3, msg= OK
2016-09-24 18:39:02.518 - progress: mode=1, msg=Prüfen der aktuell zu startenden Systemversion ...
2016-09-24 18:39:02.626 - progress: mode=3, msg= OK
2016-09-24 18:39:02.677 - progress: mode=1, msg=Suchen der aktuellen Kernel-Partition ...
2016-09-24 18:39:02.704 - check_prerequisites: kernel device is /dev/mtdblock2
2016-09-24 18:39:02.755 - progress: mode=3, msg= OK
2016-09-24 18:39:02.807 - progress: mode=1, msg=Suchen der alternativen Kernel-Partition ...
2016-09-24 18:39:02.833 - check_prerequisites: alternative kernel device is /dev/mtdblock0
2016-09-24 18:39:02.883 - progress: mode=3, msg= OK
2016-09-24 18:39:02.934 - progress: mode=1, msg=Vergleich der Systeme in den Kernel-Partitionen ...
2016-09-24 18:39:02.985 - progress: mode=3, msg= übersprungen
2016-09-24 18:39:03.036 - progress: mode=1, msg=Suchen der aktuellen Dateisystem-Partition ...
2016-09-24 18:39:03.062 - check_prerequisites: filesystem device is /dev/mtdblock3
2016-09-24 18:39:03.113 - progress: mode=3, msg= OK
2016-09-24 18:39:03.164 - progress: mode=1, msg=Suchen der alternativen Dateisystem-Partition ...
2016-09-24 18:39:03.190 - check_prerequisites: alternative filesystem device is /dev/mtdblock1
2016-09-24 18:39:03.242 - progress: mode=3, msg= OK
2016-09-24 18:39:03.293 - progress: mode=1, msg=Überprüfen des zur Verfügung stehenden Speicherplatzes im RAM ...
2016-09-24 18:39:03.318 - check_free_tmpfs: wanted=25165824, needed=10485760
2016-09-24 18:39:03.346 - check_free_tmpfs: exiting, rc=0
2016-09-24 18:39:03.398 - progress: mode=3, msg= OK
2016-09-24 18:39:03.450 - progress: mode=1, msg=Überprüfen des freien Speicherplatzes für das Auspacken des Dateisystems ...
2016-09-24 18:39:03.474 - find_free_storage_space: needed=140509184, accept=
2016-09-24 18:39:03.592 - get_nand_mountpoint: location=/var/media/ftp
2016-09-24 18:39:03.621 - check_free_nand: size=140509184, nand=/var/media/ftp, free=323112960
2016-09-24 18:39:03.641 - find_free_storage_space: /var/media/ftp:323112960
2016-09-24 18:39:03.659 - find_free_storage_space: exiting, rc=0
2016-09-24 18:39:03.711 - progress: mode=3, msg= OK
2016-09-24 18:39:03.730 - check_prerequisites: exiting, rc=0
2016-09-24 18:39:04.127 - modfs: source=file_update
2016-09-24 18:39:04.153 - modfs: firmware update file=./41222.image
2016-09-24 18:39:04.206 - progress: mode=3, msg=Die angegebene Datei '/var/media/ftp/modd9/41222.image' wird als Quelle für die Aktualisierung genutzt.
2016-09-24 18:39:04.229 - find_free_space: wanted=100M, order=tmpfs nand storage
2016-09-24 18:39:04.255 - check_free_tmpfs: wanted=104857600, needed=104857600
2016-09-24 18:39:04.281 - check_free_tmpfs: exiting, rc=0
2016-09-24 18:39:04.300 - find_free_space: tmpfs=/var/tmp
2016-09-24 18:39:04.319 - find_free_space: exiting, rc=0
2016-09-24 18:39:04.338 - get_working_directory: /var/tmp
2016-09-24 18:39:04.358 - modfs: working directory=/var/tmp
2016-09-24 18:39:04.385 - modfs: image directory=/var/tmp/1474735144
2016-09-24 18:39:04.404 - try_to_check_integrity: target=/var/media/ftp/modd9/41222.image
[COLOR=#00ff00]2016-09-24 18:39:04.453 - progress: mode=1, msg=Überprüfen der Signatur der geladenen Datei ...
2016-09-24 18:39:06.638 - progress: mode=3, msg= OK
2016-09-24 18:39:06.657 - try_to_check_integrity: integrity check passed
2016-09-24 18:39:06.676 - try_to_check_integrity: exiting, rc=0[/COLOR]
2016-09-24 18:39:06.727 - progress: mode=1, msg=Extrahieren des neuen Kernel-Images aus dem Firmware-Image ...
...[COLOR=#008000][/COLOR]
2016-09-24 18:47:23.854 - [COLOR=#00ff00]modfs: reached normal exit point, rc=0[/COLOR]
2016-09-24 18:47:23.880 - cleanup: running cleanup from file /var/tmp/4112_filelist_1474735141
2016-09-24 18:47:23.912 - /var/media/ftp/modd9/bin/185/busybox rm -r /var/tmp/1474735144
2016-09-24 18:47:23.913 - /var/media/ftp/modd9/bin/185/busybox rm -r /var/tmp/4112_1474735147
2016-09-24 18:47:23.913 - /var/media/ftp/modd9/bin/185/busybox rm -r /var/media/ftp/1474735148
2016-09-24 18:47:23.913 - /var/media/ftp/modd9/bin/185/busybox rm -r /var/tmp/4112_1474735197
2016-09-24 18:47:23.913 - /var/media/ftp/modd9/bin/185/busybox rm -r /var/tmp/4112_1474735200
2016-09-24 18:47:23.913 - /var/media/ftp/modd9/bin/185/busybox rm -r /var/tmp/4112_1474735205
2016-09-24 18:47:23.913 - /var/media/ftp/modd9/bin/185/busybox rm -r /var/tmp/4112_1474735210
2016-09-24 18:47:23.913 - /var/media/ftp/modd9/bin/185/busybox rm -r /var/tmp/4112_1474735214
2016-09-24 18:47:23.913 - /var/media/ftp/modd9/bin/185/busybox rm -r /var/tmp/4112_1474735218
2016-09-24 18:47:23.913 - /var/media/ftp/modd9/bin/185/busybox rm -r /var/tmp/4112_1474735222
2016-09-24 18:47:23.913 - /var/media/ftp/modd9/bin/185/busybox rm -r /var/tmp/4112_1474735226
2016-09-24 18:47:23.913 - /var/media/ftp/modd9/bin/185/busybox rm -r /var/tmp/4112_1474735240
2016-09-24 18:47:23.913 - /var/media/ftp/modd9/bin/185/busybox rm -r /var/tmp/4112_1474735244
2016-09-24 18:47:23.913 - /var/media/ftp/modd9/bin/185/busybox rm -r /var/tmp/4112_1474735248
2016-09-24 18:47:23.913 - /var/media/ftp/modd9/bin/185/busybox rm -r /var/tmp/4112_1474735252
2016-09-24 18:47:23.913 - /var/media/ftp/modd9/bin/185/busybox rm -r /var/tmp/4112_1474735256
2016-09-24 18:47:23.913 - /var/media/ftp/modd9/bin/185/busybox rm -r /var/tmp/4112_1474735262
2016-09-24 18:47:23.913 - /var/media/ftp/modd9/bin/185/busybox rm -r /var/tmp/4112_1474735281
2016-09-24 18:47:23.913 - /var/media/ftp/modd9/bin/185/busybox rm -r /var/tmp/4112_1474735622
2016-09-24 18:47:23.913 - /var/media/ftp/modd9/bin/185/busybox rm -r /var/tmp/4112_1474735623
 
Zuletzt bearbeitet:

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,100
Beiträge
2,246,177
Mitglieder
373,582
Neuestes Mitglied
Achim17
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.