# /bin/sh
set -x
MODEL=${1:-7590}
VERSION=${2:-07.21}
MYDIR="${TMPDIR:-/tmp}/$(id | sed -n -e "s|uid=[0-9]*(\([^)]*\)).*|\1|p" | sed -e "s|[ \t]|_|g")/yf_sample"
[ -d "$MYDIR" ] && printf "Error creating working directory (already exists).\n\a" && exit 1
! mkdir -p "$MYDIR" && printf "Error creating working directory.\n\a" && exit 1
cd "$MYDIR"
URL="http://ftp.avm.de/fritzbox/fritzbox-$MODEL/deutschland/fritz.os/FRITZ.Box_$MODEL-$VERSION.image"
wget -q -O avm.tar $URL
tar -x -f avm.tar -O ./var/tmp/kernel.image >kernel
dd of=kernel.bin if=kernel bs=8 count=$(( ( $(stat -c %s kernel) / 8 ) - 1 )) 2>/dev/null
rm kernel
tar -x -f avm.tar -O ./var/tmp/filesystem.image >fs.sqfs
git clone --recurse-submodules https://github.com/PeterPawn/YourFritz.git
git clone --recurse-submodules https://github.com/PeterPawn/modfs.git
MAGIC=$(dd if=fs.sqfs count=4 bs=1 2>/dev/null)
[ "$MAGIC" = "sqsh" ] && ENDIAN=be || ENDIAN=le
sudo YourFritz/bin/squashfs/$(uname -m)/unsquashfs4-$ENDIAN -no-progress fs.sqfs
sudo chown -R $(id | sed -n -e "s|uid=\([0-9]*\).*|\1|p"):$(id | sed -n -e "s|.*gid=\([0-9]*\).*|\1|p") squashfs-root/
rm fs.sqfs
mkdir modfs/$MODEL
cd modfs/
for modscript in gui_boot_manager_v0.6 mod_enable_calllog mod_fixed_branding mod_telnet_enable mod_rc_tail_sh; do
ln -s ../modscripts/$modscript $MODEL/
done
./run_modscripts ../squashfs-root/ $MODEL
modrc=$?
cd ..
if [ "$modrc" -eq 0 ]; then
YourFritz/bin/squashfs/$(uname -m)/mksquashfs4-$ENDIAN squashfs-root/ fs.sqfs -all-root -no-progress
cat kernel.bin fs.sqfs >new.image
ls -l
else
printf "At least one 'modscript' reported an error, packing skipped.\n\a"
fi
exit $modrc
Funktioniert einwandfrei. Gerade auf dem Raspberry Pi für die 7530 getestetDiese Version kann einfach mit dem Modellnamen und der Versionsnummer der AVM-Firmware aufgerufen werden (für Release-Versionen und solange die URL bei AVM dann denselben
root@ubuntu:/opt# ./fritzbuild7530.sh
++ MODEL=7530
++ VERSION=07.21
+++ id
+++ sed -n -e 's|uid=[0-9]*(\([^)]*\)).*|\1|p'
+++ sed -e 's|[ \t]|_|g'
++ MYDIR=/tmp/root/yf_sample
++ '[' -d /tmp/root/yf_sample ']'
++ mkdir -p /tmp/root/yf_sample
++ cd /tmp/root/yf_sample
++ URL=http://ftp.avm.de/fritzbox/fritzbox-7530/deutschland/fritz.os/FRITZ.Box_7530-07.21.image
++ wget -q -O avm.tar http://ftp.avm.de/fritzbox/fritzbox-7530/deutschland/fritz.os/FRITZ.Box_7530-07.21.image
++ tar -x -f avm.tar -O ./var/tmp/kernel.image
+++ stat -c %s kernel
++ dd of=kernel.bin if=kernel bs=8 count=388064
++ rm kernel
++ tar -x -f avm.tar -O ./var/tmp/filesystem.image
++ git clone --recurse-submodules https://github.com/PeterPawn/YourFritz.git
Cloning into 'YourFritz'...
remote: Enumerating objects: 122, done.
remote: Counting objects: 100% (122/122), done.
remote: Compressing objects: 100% (72/72), done.
remote: Total 3487 (delta 75), reused 88 (delta 47), pack-reused 3365
Receiving objects: 100% (3487/3487), 4.03 MiB | 2.85 MiB/s, done.
Resolving deltas: 100% (2229/2229), done.
Submodule 'bin' (https://github.com/PeterPawn/yf_bin.git) registered for path 'bin'
Submodule 'first_aid' (https://github.com/PeterPawn/first_aid.git) registered for path 'first_aid'
Cloning into '/tmp/root/yf_sample/YourFritz/bin'...
remote: Enumerating objects: 99, done.
remote: Counting objects: 100% (99/99), done.
remote: Compressing objects: 100% (78/78), done.
remote: Total 926 (delta 22), reused 90 (delta 19), pack-reused 827
Receiving objects: 100% (926/926), 75.25 MiB | 5.68 MiB/s, done.
Resolving deltas: 100% (180/180), done.
Cloning into '/tmp/root/yf_sample/YourFritz/first_aid'...
remote: Enumerating objects: 42, done.
remote: Total 42 (delta 0), reused 0 (delta 0), pack-reused 42
Submodule path 'bin': checked out '761344186579a26a7f60791f76f0f938b19b3a44'
Submodule path 'first_aid': checked out '0359a4db07ffb555b5714184f16a2ffd7348955b'
++ git clone --recurse-submodules https://github.com/PeterPawn/modfs.git
Cloning into 'modfs'...
remote: Enumerating objects: 130, done.
remote: Counting objects: 100% (130/130), done.
remote: Compressing objects: 100% (86/86), done.
remote: Total 1735 (delta 75), reused 89 (delta 41), pack-reused 1605
Receiving objects: 100% (1735/1735), 17.22 MiB | 3.87 MiB/s, done.
Resolving deltas: 100% (1166/1166), done.
+++ dd if=fs.sqfs count=4 bs=1
++ MAGIC=hsqs
++ '[' hsqs = sqsh ']'
++ ENDIAN=le
+++ uname -m
++ sudo YourFritz/bin/squashfs/armv7l/unsquashfs4-le -no-progress fs.sqfs
sudo: unable to resolve host ubuntu: Name or service not known
Found TI checksum (0xED68084B) at the end of the image.
Filesystem on fs.sqfs is xz compressed (4:0)
Parallel unsquashfs: Using 4 processors
8325 inodes (9284 blocks) to write
created 7631 files
created 516 directories
created 693 symlinks
created 1 devices
created 0 fifos
+++ id
+++ sed -n -e 's|uid=\([0-9]*\).*|\1|p'
+++ id
+++ sed -n -e 's|.*gid=\([0-9]*\).*|\1|p'
++ sudo chown -R 0:0 squashfs-root/
sudo: unable to resolve host ubuntu: Name or service not known
++ rm fs.sqfs
++ mkdir modfs/7530
++ cd modfs/
++ for modscript in gui_boot_manager_v0.6 mod_enable_calllog mod_fixed_branding mod_telnet_enable mod_rc_tail_sh
++ ln -s ../modscripts/gui_boot_manager_v0.6 7530/
++ for modscript in gui_boot_manager_v0.6 mod_enable_calllog mod_fixed_branding mod_telnet_enable mod_rc_tail_sh
++ ln -s ../modscripts/mod_enable_calllog 7530/
++ for modscript in gui_boot_manager_v0.6 mod_enable_calllog mod_fixed_branding mod_telnet_enable mod_rc_tail_sh
++ ln -s ../modscripts/mod_fixed_branding 7530/
++ for modscript in gui_boot_manager_v0.6 mod_enable_calllog mod_fixed_branding mod_telnet_enable mod_rc_tail_sh
++ ln -s ../modscripts/mod_telnet_enable 7530/
++ for modscript in gui_boot_manager_v0.6 mod_enable_calllog mod_fixed_branding mod_telnet_enable mod_rc_tail_sh
++ ln -s ../modscripts/mod_rc_tail_sh 7530/
++ ./run_modscripts ../squashfs-root/ 7530
Running script 'gui_boot_manager_v0.6' ...
Patching file 'usr/www/1und1/system/reboot.js' ...
Patching file 'usr/www/1und1/system/reboot.lua' ...
Patching file 'usr/www/avm/system/reboot.js' ...
Patching file 'usr/www/avm/system/reboot.lua' ...
Patching file 'usr/www/avme/system/reboot.js' ...
Patching file 'usr/www/avme/system/reboot.lua' ...
Finished script 'gui_boot_manager_v0.6', rc=0
Running script 'mod_enable_calllog' ...
Finished script 'mod_enable_calllog', rc=0
Running script 'mod_fixed_branding' ...
Das Branding für das neue System wurde fest auf 'avm' eingestellt.
Finished script 'mod_fixed_branding', rc=0
Running script 'mod_rc_tail_sh' ...
Finished script 'mod_rc_tail_sh', rc=0
Running script 'mod_telnet_enable' ...
Finished script 'mod_telnet_enable', rc=0
++ modrc=0
++ cd ..
++ '[' 0 -eq 0 ']'
+++ uname -m
++ YourFritz/bin/squashfs/armv7l/mksquashfs4-le squashfs-root/ fs.sqfs -all-root -no-progress
Parallel mksquashfs: Using 4 processors
Creating 4.0 filesystem on fs.sqfs, block size 65536.
Exportable Squashfs 4.0 filesystem, xz compressed, data block size 65536
compressed data, compressed metadata, compressed fragments, no xattrs
duplicates are removed
Filesystem size 25160.05 Kbytes (24.57 Mbytes)
21.72% of uncompressed filesystem size (115822.59 Kbytes)
Inode table size 65690 bytes (64.15 Kbytes)
22.11% of uncompressed inode table size (297074 bytes)
Directory table size 83592 bytes (81.63 Kbytes)
37.49% of uncompressed directory table size (222986 bytes)
Number of duplicate files found 5052
Number of inodes 8848
Number of files 7637
Number of fragments 383
Number of symbolic links 694
Number of device nodes 1
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 516
Number of ids (unique uids + gids) 1
Number of uids 1
root (0)
Number of gids 1
root (0)
++ cat kernel.bin fs.sqfs
++ ls -l
total 86424
drwxr-xr-x 28 root root 4096 Jan 27 22:32 YourFritz
-rw-r--r-- 1 root root 30740480 Oct 27 14:50 avm.tar
-rw-r--r-- 1 root root 25767936 Jan 27 22:34 fs.sqfs
-rw-r--r-- 1 root root 3104512 Jan 27 22:32 kernel.bin
drwxr-xr-x 9 root root 4096 Jan 27 22:33 modfs
-rw-r--r-- 1 root root 28872448 Jan 27 22:34 new.image
drwxr-xr-x 13 root root 4096 Oct 19 18:31 squashfs-root
++ exit 0
root@ubuntu:/opt#
beta
auschecken (git switch beta
nach dem Klonen oder gleich ein -b beta
beim git clone
mit angeben).telefon
-Daemon erfolgt jetzt (dynamisch) in Abhängigkeit von der vorliegenden Version, wobei für den alten und neuen Weg (siehe https://www.ip-phone-forum.de/threads/busybox-mit-telnet-in-fritz-os-7-2x.307385/page-5#post-2416096 und Beiträge davor) derselbe Code verwendet wird, weil die reine Versionsnummer der Firmware wohl kein zuverlässiges Unterscheidungsmerkmal ist, welche Variable von AVM tatsächlich genutzt wird. Ich habe mich auch zur Nutzung von 998 (das, was bei AVM als "private" läuft) entschieden - bisher war dieses private
auch der Wert von config.gu_type
, der aus dem CONFIG_RELEASE=0
resultierte - solange das also keinen Unterschied zum Wert 2
macht, nehme ich lieber die 998
.calllog
auch weiterhin abgearbeitet wird, mithin der Name mod_enable_calllog
immer noch seine Berechtigung hat.master
-Branch) überführen, dann paßt es auch wieder mit dem Symlink unter modfs.tgz
ohne die Versionsangabe beim Download.Steht doch oben ... der wird alsWarum hast du dich für 998 entschieden und nicht für 2?
config.gu_type=private
gesehen in der /usr/lua/config.lua
(die 2
dagegen als beta
) und das ist derselbe Wert, der sich bis zur 07.24 aus dem CONFIG_RELEASE=0
ableitete.config.gu_type
im Lua-Code stabil, wenn man das config
-Objekt von AVM "nachnutzen" wollte und den Wert systemweit setzt (auch dafür enthält telnetd_by_avm
ja die Abfrage/Vorbereitung (https://github.com/PeterPawn/modfs/...9f80e998dd29d74bd9c2/files/telnetd_by_avm#L35 - die zweite Bedingung) und nicht nur für die Änderung, die durch mod_enable_calllog
in der rc.voip
vorgenommen wird) - das ist ggü. der bisherigen Implementierung die kleinere Änderung im Verhalten eines gepatchten Systems.Das verstehe ich (so lapidar) nicht - mal abgesehen von der Frage, ob das auch für einen Repeater gedacht ist/war oder nicht.Noch ein Hinweis zur mod_rc_trail_sh.
/etc/init.d/rc.tail.sh
getroffen (https://github.com/PeterPawn/modfs/...98dd29d74bd9c2/modscripts/mod_rc_tail_sh#L130) - bisher war bei den Systemen, die supervisor
zum Start verwenden, diese Datei nicht mehr vorhanden.supervisor
startet, aber trotzdem diese Datei noch hat, dann müßte man tatsächlich den Test etwas anders gestalten. Aber das kann man nun beim besten Willen aus #1845 nicht erkennen ... da wäre es hilfreich, wenn Du ein paar genauere Infos bereitstellen könntest; z.B. eben, welche "Startart" da nun tatsächlich verwendet wird und ob (ggf. sogar, warum) da nun noch eine rc.tail.sh
von AVM rumsteht und was die im Original enthält./etc/init.d/rc.S
), dann stellt sich eher die Frage, warum die Zeile (die ja keinen asynchronen Aufruf enthält) nicht korrekt abgearbeitet wird ... ich hätte hier eher den Verdacht (wobei mich auch die Frage quält, warum da eine 07.1x noch über die rc.S
gestartet wird), daß der Repeater gar keinen eigenen multid
enthält (den bräuchte er ja auch nur für die eigene Uhrzeit über chrony
, denn DHCP und DNS und den ganzen anderen Kram des multid
hat ein Repeater nicht) und damit generell auf diesem Gerät die Verwendung von delay
nicht möglich ist, weil das nur ein verkapptes msgsend
an den multid
ist.CONFIG_BUILDTYPE
) zu lokalisieren. Da spielt die Tatsache, daß der FR1200 ja auch per se kein von "modfs" unterstütztes Modell ist und ich nie den Anspruch erhoben habe, daß man irgendeines der vorbereiteten Skripte auch bei einem Repeater erfolgreich verwenden könnte, nur noch eine untergeordnete Rolle und auch wenn ich das durchaus nur als "Hinweis" gelesen und verstanden habe, verbindet sich ja damit wohl trotzdem eine gewisse "Erwartungshaltung".Ich habe heute mittels des hier beschriebenen Problems das "-b beta" getestet sowohl mit der 7.21 als auch der 7.25, was jeweils via #96*7* mit einem DECT-Phone (Gigaset S68H) brav telnet einschaltete.Nach den ersten zwei, drei positiven Rückmeldungen (oder nach dem Fehlen negativer Erfahrungen in den nächsten drei Tagen)
"squashfs-root" seems to be not an unpacked FRITZ!OS structure - so this script was unable to extract needed values from this directory.
supervisor
-basierte AVM-Firmware) verschaffen (https://www.ip-phone-forum.de/threads/modfs-starter-einmal-impfung-mit-shellinabox-für-vr9-boxen.283038/).Wenn du das nicht benutzt werden die VPN Verbindungen bei 7.21 auch angezeigt.mod_show_vpn_on_overview funktioniert nicht.
Ja die sieht viel besser aus als die original AVM VPN Ansicht und gehört zu meinen wichtigsten Mods.Ich notiere es mir als ToDo ... ich mag tatsächlich auch meine Version mehr als die Anzeige bei AVM, weil ich in "Einwahlboxen" mehrere VPN-Verbindungen konfiguriert habe, die aber nicht immer alle aktiviert sind und natürlich erst recht nicht immer alle aufgebaut werden.
Wann ich es gelöst haben werden, kann ich nicht sagen - erst muß ich mal erkunden, wo das Problem liegt. Ich vermute mal, die Datenübertragung wird in Ordnung sein, aber irgendetwas im DOM und im JS-Code wird sich wieder geändert haben. Das ist das Risiko, wenn man sich in die AVM-Anzeigen einklinkt - aber es gibt hier keine (sinnvollen) Alternativen. Und da ich mich i.d.R. darum bemühe, die Abweichungen zum AVM-Code so gering wie möglich zu halten, funktioniert das häufig - für mich selbst "erstaunlicherweise" - auch einigermaßen reibungslos.
Ja, geht bei mir.und hinterher auch wieder mit telnet auf diese zugreifen zu können?
da du das update schon gemacht hast... gibt es was zu beachten beim update auf 7.27 mit ModFS?Ja, geht bei mir.
Hast du auch die neue Version von mod_telnet_enable benutzt?
Was zeigt system_status an?
Ja, geht bei mir.
Hast du auch die neue Version von mod_telnet_enable benutzt?
Was zeigt system_status an?