AVM-Watchdog - kann man den guten gewissen deaktivieren?

JokerGermany

Mitglied
Mitglied seit
7 Aug 2007
Beiträge
552
Punkte für Reaktionen
5
Punkte
18
Tja, ich von Freetz höre ich nichts mehr, also muss ich mich wohl mit Freetz-NG anfreunden, auch wenn ich bei Freetz ein besseres Gefühl bezüglich Stabilität hatte...

Ich habe ein FB 7590 die derzeit noch mit 154.07.12 rev69995 und Freetz (master-20200702-a9dc8e293) läuft.
Scheinbar hat die neue AVM Version zu großen Problemen zwischen Freetz und AVM geführt.
Der bisherige Workaround scheint ja zu sein den AVM-Watchdog zu deaktivieren.

Da man aber scheinbar bis heute nicht weiß, weswegen der AVM-Watchdog die Fritz!Box neu startet, bin ich ein wenig besorgt.
Die FB ist ein zentraler Bestandteil unseres Netzwerk und war trotz Freetz immer der Fels in der Brandung und das hätte ich gern auch weiterhin.

Wie wichtig ist der AVM-Watchdog? Was ich weiß ist, dass der AVM-Watchdog die Box neu startet, wenn bestimmte Dienste crashen oder das starten länger als 2-5 Minuten dauern.
Für mich bedeutet das aber auch, dass ohne den AVM-Watchdog keiner die Reißleine zieht, wenn, wenn im laufenden Betrieb Dienste crashen, man also evtl so lange mit einer "Zombie-FB" leben muss, bis man es merkt.
Dadurch können dann meiner Einschätzung nach Fehler im Netzwerk/Telefonie auftreten, die man evtl nicht sofort auf die FB zurückführen kann und somit sich erst einmal einen Wolf suchen darf um den Fehler zu finden.

Aber da ich nicht tief genug in der Materie drin bin, wollte ich euch mal um eine Meinung bitten.
 

gismotro

Mitglied
Mitglied seit
5 Sep 2007
Beiträge
429
Punkte für Reaktionen
68
Punkte
28
Wenn es dein Fels in der Brandung ist, dann verstehe ich nicht warum du "Beta"-Software drauf flashen willst.
Der aktuelle trunk ist eben kein "Stable" und somit wird dir keiner einen 100% Betrieb bestätigen.
 
  • Like
Reaktionen: prisrak1

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
13,410
Punkte für Reaktionen
1,129
Punkte
113
@JokerGermany:
Diese Watchdogs bei/von AVM haben natürlich auch ihren Sinn ... daher kann/sollte deren Deaktivierung auch tatsächlich nur als Workaround begriffen werden und kann eigentlich nicht zur dauerhaften Lösung mutieren(so stand es ja auch mal in dem Ticket).

Nur braucht's für die Eingrenzung, wann und warum dieser Watchdog zubeißt, dann eben auch die Leute, die (a) von dem Problem betroffen sind (sprich, ein Freetz-(NG-)Image mit der passenden FRITZ!OS-Version auf dem entsprechenden Modell verwenden UND mit ihrer Konfiguration - so ein Problem auch noch davon abhängt, was zu mind. 50% der Fall sein wird, ansonsten ist so ein Fehler ja im Handumdrehen zu lokalisieren bzw. zu reproduzieren - zu den Betroffenen zählen) und (b) dann auch bereit sind, auf den kurzfristigen (und tatsächlich kurzsichtigen, zumindest auch nach meiner Ansicht) Erfolg mit einem "Workaround" zu verzichten und die jeweiligen Versuche, das eigentliche Problem zu fixen, dann auch dadurch zu unterstützen, daß sie - selbst wenn sie ein Image mit Workaround am Laufen haben - diese Ansätze auch jeweils testen.

So ein Watchdog schlägt jedenfalls auch nicht "einfach so" zu ... da gibt es eine Ursache und wenn man diese beseitigt, ist auch ein solcher Workaround nicht (mehr) erforderlich. Aber dazu braucht es eben auch die Hilfe derjenigen, die betroffen sind ... wenn sich mit dem Auslassen des erwähnten Patches ein reproduzierbarer Absturz ergibt, kann das ja auch wieder jeder sein, der diesen Fork benutzt. Andererseits kam das als Problem erst so spät auf und beschränkte sich (zumindest am Beginn und wir wissen ja auch, daß es vielen sehr schwer fällt, zwischen Symptomen und Ursachen eines Problems zu differenzieren, daher halte ich es sogar für denkbar, daß sich hinter dem Symptom "Reboot durch Watchdog" durchaus mehr als ein Problem verbirgt) ja auch auf wenige Nutzer - und das obendrein noch mitten in der Labor-Phase.

Wenn es tatsächlich nur daran liegen sollte, daß ein Image mit Freetz etwas länger bei der Initialisierung braucht und die 120 Sekunden von AVM nicht ausreichen, dann müßte man ja nur in der "/etc/boot.d/core/watchdog" diese Zeitvorgabe erhöhen ... und nicht gleich den Watchdog komplett abschalten in der "rc.mod" (was eben auch nicht nur den "init"-Watchdog killt, sondern tatsächlich ebenso alle anderen).

Auf der anderen Seite behandelt AVM den Watchdog ja schon seit ein paar Versionen durchaus differenziert ... da wird dann in einigen Skript-Dateien, die über mehrere Modelle identischen Inhalt haben (wie z.B. die "/bin/prepare_fwupgrade"), auch mal entsprechend getestet und in Abhängigkeit vom Ergebnis anders fortgesetzt:
Code:
## AVM watchdog compatibility blurb
if [ -x /sbin/avm_watchdog ]; then
have_avm_watchdog() { avm_watchdog --detect >/dev/null; }
else
## Old system, /dev/watchdog is AVM device
have_avm_watchdog() { test -c /dev/watchdog; }
avm_watchdog() { echo "$*" > /dev/watchdog; }
fi
... und (kleiner Spoiler meinerseits) die 7590 hat in der Version 07.2x durchaus das Programm "/sbin/avm_watchdog" an Bord.

Daher finde ich auch den Patch in Freetz-NG etwas "kurzsichtig" ... sogar dann, wenn das "/sbin/avm_watchdog" nichts anderes machen sollte, als selbst direkt nach "/dev/watchdog" zu schreiben (was es derzeit wohl auch tatsächlich noch macht). DAS kann AVM mit jeder neuen Version ändern und dann paßt der Patch (egal, ob der nun als Workaround gedacht ist oder nicht) auch nicht länger - und das ohne jede Not, denn man könnte das natürlich (selbst wenn es nicht "für die Ewigkeit" gedacht sein mag) ja auch 1:1 so umsetzen, wie es AVM selbst macht und man kann/darf davon ausgehen, daß AVM da am ehesten den Überblick behält, für welches Modell mit welcher FRITZ!OS-Version welche Version des Watchdog (und vieler anderer Komponenten) verwendet wird. Zumal die meisten Zugriffe auf den Watchdog bei AVM auch nicht über Shell-Code laufen ... da dürfte deutlich mehr über die "libwdt.so" zugegriffen werden.

Seitdem bei AVM das Ende der Initialisierung gar nicht mehr mit einem "init-done" in der "rc.tail.sh" signalisiert wird (was seit der Umstellung auf "supervisor" der Fall ist), muß es irgendeinen anderen Mechanismus dafür geben (denn das originale FRITZ!OS stürzt ja auch nicht ab) und man sollte wohl erst mal das ermitteln, bevor man da irgendwie eingreift. Ich halte es für das Wahrscheinlichste, daß eben dieser "supervisor" dann den Systemstart-Watchdog abschaltet, wenn er der Ansicht ist, er hätte alle relevanten Services gestartet - ggf. sogar schon beim Erreichen eines bestimmten "targets", das in "/lib/systemd/system" hinterlegt ist.

Wer wissen will, welche Watchdogs gerade aktiv sind, kann sich das mit einem cat /proc/avm/wdt anzeigen lassen - allerdings nur so lange, wie man eben kein "disable" für ALLE diese Watchdogs in Auftrag gegeben hat. Diese Ausgabe kann man natürlich (zur Fehlersuche) jetzt an diversen Stellen der Freetz-Initialisierung einbauen und dann einfach mal schauen (auch in der eigenen FRITZ!Box), welches Problem der Watchdog da tatsächlich "vermeldet".

Die Schlußfolgerung, daß jede FRITZ!Box mit Freetz-NG, die mit 07.2x innerhalb der Initialisierung einen Reboot hinlegt, auch exakt dasselbe Problem haben müsse, ist ja Pipifax - und wenigstens die "panic.log" sollte man sich (von einem funktionierenden System in der anderen Partition aus) da noch einmal ansehen, bevor man ein "hier bei mir auch" vom Stapel läßt. Denn wie oben schon erwähnt: Neustart/Reboot ist ein Symptom, das vollkommen unterschiedliche Ursachen haben kann ... nicht jeder Kopfschmerz ist auch von einem Hirntumor verursacht. Und weil wir damit schon beim Hirn sind: Sapere aude.
 

JokerGermany

Mitglied
Mitglied seit
7 Aug 2007
Beiträge
552
Punkte für Reaktionen
5
Punkte
18
Also Kurzfassung:
Image draufspielen, auf reboot warten, aufs andere Image wechseln und dann die Panic log + config hier posten?

Nach Absprache mit meinen Mitbewohnern kann ich mir schon vorstellen Bugtester zu spielen....
 

gismotro

Mitglied
Mitglied seit
5 Sep 2007
Beiträge
429
Punkte für Reaktionen
68
Punkte
28
Und du kannst ja jederzeit zurück zur 154.07.12 rev69995 wechseln in dem du die Partition wechseln lässt.
Reboot.PNG
 

JokerGermany

Mitglied
Mitglied seit
7 Aug 2007
Beiträge
552
Punkte für Reaktionen
5
Punkte
18
Das weiß ich, hatte ich damals auch genutzt, fand ich sehr praktisch. Hat das normale freetz ja noch nicht. (zumindestens bis Juli 2020 nicht)
 

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
13,410
Punkte für Reaktionen
1,129
Punkte
113
Hat das normale freetz ja noch nicht.
Das gibt's aber auch im Freetz: https://github.com/Freetz/freetz/blob/master/config/ui/patches.in#L1451 - nur halt an einer anderen Stelle: https://github.com/PeterPawn/YourFritz/tree/master/bootmanager und seit August 2018.

Und wenn man sich in der anderen Partition eine originale Firmware (ohne Freetz, aber mit Shell-Zugang) installiert, kriegt man nicht mal Probleme mit inkompatiblen Konfigurationen zwischen 07.12 und 07.2x.
 
  • Like
Reaktionen: gismotro

JokerGermany

Mitglied
Mitglied seit
7 Aug 2007
Beiträge
552
Punkte für Reaktionen
5
Punkte
18
Es ist nicht mehr möglich in der make menuconfig den AVM Watchdog zu aktivieren, wenn man die 7590 + 7.21 ausgewählt hat.
Habe daher
Code:
FREETZ_PATCH_DISABLE_AVM_WATCHDOG=y
in
Code:
# FREETZ_PATCH_DISABLE_AVM_WATCHDOG is not set
manuell geändert

Alles andere ist Standard.
=> make menuconfig => Expert => FB790 7.2X => make

Dann bin ich in Freetz unter System => Firmware-Update gegangen und habe die Firmware geupdatet.

In Freetz-NG bin ich nach den Update unter System gegangen und habe den Schalter für die andere Firmware wieder umgelegt.
Nach dem Crash ist sie dann wieder mit Freetz 7.12 normal hochgefahren.

Wenn weitere Logs benötigt werden, Bescheid sagen.
 

Anhänge

Zuletzt bearbeitet:

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
13,410
Punkte für Reaktionen
1,129
Punkte
113
In der Support-Datei und/oder im procfs - wo genau da im procfs, steht wieder im Skript zum Erzeugen der Support-Datei (das hat sich immer mal wieder geändert):
Code:
echo "##### BEGIN SECTION PANICLOG /proc/avm/log_sd"
echo "=========="
if [ -d /proc/avm/log_sd ]; then
    for file in /proc/avm/log_sd/panic* ; do
        if [ -f $file ] ; then
            echo
            echo "BEGIN SECTION '$file' "
            echo "----------"
            cat $file
            if [ $? -ne 0 ]; then
                echo "$file no data"
            fi
            echo "----------"
            echo "END SECTION '$file'"
        fi
    done
fi
echo
echo "=========="
echo "##### END SECTION PANICLOG"
(aus 154.07.24-irgendwas)

Ob AVM jetzt tatsächlich am TFFS-Treiber (der ist auch für die Speicherung der Log-Files bei einer "kernel panic" zuständig) zwischen 07.12 und 07.2x nur so wenig geändert hat, daß die 07.12 die "panic.log" einer 07.20 auslesen kann, weiß ich nicht genau ... daher auch meinerseits der Ratschlag, das mit 2x 07.2x zu betreiben, dann sollte man auf der sicheren Seite sein. Andererseits kann das mit einem solchen Versionsmix auch funktionieren ... nur hinterher nicht maulen, wenn's doch nicht klappen sollte.

Eine Besonderheit gibt es (oder gab es zumindest) bei diesen Daten aber ... sie lassen sich nur einmalig auslesen und werden dann gelöscht - man sollte also nicht "erst mal nachgucken", sondern sie gleich gezielt irgendwo speichern (das macht das Skript für die Support-Datei mehr oder weniger auch so - da landet das halt in der STDOUT-Pipe).

EDIT: Kleiner Tipp noch von mir ... die verwendete Konfigurationsdatei ist schneller zu überblicken, wenn man da anstelle der kompletten nur die komprimierte Version (die enthält nur die Änderungen ggü. der Standardkonfiguration) anfügt - siehe die Erklärungen zur ".config.compressed" in Freetz (m.W. auch egal, welcher Fork). In der "Langversion" kann man eben nicht auf einen Blick erkennen, ob das tatsächlich ein "Minimal-Image" ist oder nicht - nachdem bei Freetz-NG sogar (iirc) die 7590 der Standard ist und ggf. auch die 07.21 (das müßte ich erst nachsehen), könnte die ".config.compressed" für ein echtes minimales Images sogar leer sein.
 
Zuletzt bearbeitet:

JokerGermany

Mitglied
Mitglied seit
7 Aug 2007
Beiträge
552
Punkte für Reaktionen
5
Punkte
18
Also bei mir ist die panic auch in der 2. exportierten Supportdatei drin. (hatte tatsächlich "erst mal nachgucken" gemacht)
Würde gerne erstmal die 7.12 Taktik weiterverfolgen solange bis wir wissen, dass es nicht klappt.
Weil ich mir bei meinen Mitbewohnern nur Zeitfenster "erkaufe" ;)

Was ich probieren kann ist, nach einen Crash unter der "kaputten 7.21" schnell eine Supportdatei erstellen zu lassen bevor alles wieder crasht...

Also was brauchst du?
Ich sende gleich die Supportdatei, wenn ich die Dateien nach persönlichen Daten durchgeschaut habe.

€dit:
Die Supportdatei vom 7.12 macht glaube ich wenig sinn, da das meiste schon von der 7.12 zu sein scheint. Habe die aber ehrlich gesagt auch zu spät erstellt.
Außer eben die Panic und das hier:
Code:
1970-01-01 01:05:42 [8906]: [online] approved
1970-01-01 01:05:42 [8910]: [onlineipv6] waiting
1970-01-01 01:05:42 [8906]: [online] executing /etc/onlinechanged/00-get_ip
1970-01-01 01:05:42 [8906]: [online] executing /etc/onlinechanged/webdav_net
1970-01-01 01:05:42 [8906]: [online]  * webdav_net online status_onlinev4
1970-01-01 01:05:43 [8906]: [online]  * 6
 
Zuletzt bearbeitet:

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
13,410
Punkte für Reaktionen
1,129
Punkte
113
Es gibt einen gesonderten Abschnitt für dieses Protokoll in der Support-Datei - die Begrenzungszeilen sieht man oben in meinem kleinen Auszug aus der "/bin/supportdata" (das ist das Skript, womit die Support-Datei erstellt wird).

EDIT:
Also was brauchst du?
Und bevor das falsch ankommt ... ich bin nicht wirklich scharf darauf zu erkunden, was da schiefgehen mag (Warum? Weil ich immer noch kein Freetz-Image benutze, auch keines mit Freetz-NG.). Ich wollte nur versuchen zu helfen (was ich sicherlich auch mit einem - mehr oder weniger langen - Blick in die Protokolle versuchen werde) und aufzeigen, woran es wohl bei Freetz-NG derzeit krankt, wenn es um diesen Watchdog-Patch geht. Denn @cuma hat ja durchaus viel Richtiges geschrieben in der schon erwähnten Issue (bis hin zu Fragen an die anderen Beteiligten an der Diskussion) - nur hat man ihm dort schlecht zugehört und das weitere Bemühen um eine "echte Lösung" ist dann wohl auch von seiner Seite eher eingeschlafen, so daß es jetzt bei einer "dirty solution" geblieben ist. Aber bekanntlich hält nichts so lange, wie ein Provisorium ...
 
Zuletzt bearbeitet:

JokerGermany

Mitglied
Mitglied seit
7 Aug 2007
Beiträge
552
Punkte für Reaktionen
5
Punkte
18
/bin/supportdata von 7.12
Code:
#! /bin/sh

. /etc/puma6_helper.sh

PATH=$PATH:/sbin:/usr/sbin

echo -n "##### TITLE Version "
/etc/version
echo -n "##### TITLE SubVersion "
/etc/version --subversion
echo "##### TITLE Produkt ${CONFIG_PRODUKT}"
echo -n "##### TITLE Datum "
date
echo "##### BEGIN SECTION Support_Data Supportdata `uname -a` Version `/etc/version` `/etc/version --subversion`"
echo Support Data
echo ------------
date
uname -r
cat /proc/sys/urlader/environment | sed "s/^wlan_key.*/wlan_key SECRET/" | sed "s/^tr069_passphrase.*/tr069_passphrase SECRET/" | sed "s/^webgui_pass.*/webgui_pass SECRET/"
env
echo -e "reset_status"=`cat /proc/sys/urlader/reboot_status`

if [ "$1" = "enhanced" ] ; then
   enhanced=y
else
   enhanced=n
fi

# generate echo canceller support data (see below)
echo pcmlink_ecdump >/dev/debug

echo "##### BEGIN SECTION  Processes_Memory Processes and Memory"
echo
echo Processes and Memory
echo --------------------
ps -lT
if type top > /dev/null ; then
   echo
   echo Processes sorted by CPU time:
   top -b -n1
   echo
   echo Processes sorted by Memory used:
   top -b -n1 -m
fi
/sbin/lsmod
uptime
free
echo slabinfo
cat /proc/slabinfo
echo meminfo
cat /proc/meminfo
echo buddyinfo
cat /proc/buddyinfo
if [ "`echo avmlogd.redzonecheck | ar7cfgctl -s`" = yes ] ; then
   echo Redzone check active
else
   killall -usr1 ctlmgr
   killall -usr1 multid
   killall -usr1 ddnsd
   killall -usr1 upnpd
   killall -usr1 dsld
   killall -usr1 voipd
   killall -usr1 usermand
   killall -usr1 mediasrv
   killall -usr1 avmike
   killall -usr1 tr069discover
   killall -usr1 l2tpv3d
   killall -usr1 avmnexusd
   killall -usr1 pcpd
   killall -usr1 deviceinfod
   killall -usr1 contfiltd
   killall -usr1 boxnotifyd
   killall -usr1 avmipcd
   killall -usr1 aha
   killall -usr1 rextd
fi
ls -la /var
ls -laR /var/tmp
SLABPARSE=cat
if type slabparse > /dev/null ; then
   SLABPARSE=slabparse
fi
eval $SLABPARSE /var/tmp/ctlmgr*.slab
eval $SLABPARSE /var/tmp/multid*.slab
eval $SLABPARSE /var/tmp/ddnsd*.slab
eval $SLABPARSE /var/tmp/upnpd*.slab
eval $SLABPARSE /var/tmp/dsld*.slab
eval $SLABPARSE /var/tmp/voipd*.slab
eval $SLABPARSE /var/tmp/usermand*.slab
eval $SLABPARSE /var/tmp/mediasrv*.slab
eval $SLABPARSE /var/tmp/avmike*.slab
eval $SLABPARSE /var/tmp/tr069discover*.slab
eval $SLABPARSE /var/tmp/l2tpv3d*.slab
eval $SLABPARSE /var/tmp/avmnexusd*.slab
eval $SLABPARSE /var/tmp/pcpd*.slab
eval $SLABPARSE /var/tmp/deviceinfod*.slab
eval $SLABPARSE /var/tmp/contfiltd*.slab
eval $SLABPARSE /var/tmp/notifyd*.slab
eval $SLABPARSE /var/tmp/avmipcd*.slab
eval $SLABPARSE /var/tmp/aha*.slab
eval $SLABPARSE /var/tmp/rextd*.slab

echo "##### END SECTION Processes_Memory"
echo "##### BEGIN SECTION SYSV_IPC SYSV IPC"
echo
echo SYSV IPC
echo --------------------
/bin/ipcs

echo "##### END SECTION SYSV_IPC"

echo "##### BEGIN SECTION SOCKETS"
aicmd -l | sort | while read daemon ; do
   echo
   echo "=== Sockets used by $daemon: ==="
   echo
   aicmd $daemon avmcsock show csock
done
echo
echo "##### END SECTION SOCKETS"

echo "##### BEGIN SECTION Basis Supportdata core"
echo Basis
echo ----
if [ -x /bin/supportdata.basis ] ; then
  /bin/supportdata.basis
fi

echo "##### END SECTION Basis"
echo "##### BEGIN SECTION System_Status System status"
echo
echo System Status
echo -------------
. /etc/init.d/rc.conf
if [ -d /dev/tffs ] ; then
    run_clock -c /dev/tffs/mtd3 -S
else
    run_clock -c /dev/tffs -S
fi
echo -e "-`/etc/version -v | tr -d '.'`\c"
echo -e "-`/etc/version --project`\c"
echo
echo "##### END SECTION System_Status"
echo "##### BEGIN SECTION varlogmessages"
if test -e /var/log/messages; then
echo ******* boot *****
cat /var/log/messages
fi

echo "##### END SECTION varlogmessages"
echo "##### BEGIN SECTION DSL Supportdata xDSL"
if [ "$CONFIG_DSL" = y ] ; then
/bin/supportdata.dsl
/bin/supportdata.dpm
echo "##### BEGIN SECTION DSL_APPS AP stats"
echo
echo apstats
echo -------
PATH=$PATH:/sbin apstats
echo
echo apbridgetbl
echo -----------
PATH=$PATH:/sbin apbridgetbl 1
echo
echo aproutetbl
echo ----------
for ap_nr in 1 2 3 4 5 6 7 8; do
    echo aproutetbl $ap_nr
    PATH=$PATH:/sbin aproutetbl $ap_nr
done
echo
echo "##### END SECTION DSL_APPS"
fi
echo "##### END SECTION DSL"

if [ "$CONFIG_FIBER" = y -o "$CONFIG_GPON" = y  ] ; then
echo "##### BEGIN SECTION FIBER Supportdata"
/bin/supportdata.fiber
echo "##### END SECTION FIBER"
fi

if [ "$CONFIG_DOCSIS" = y -o "$CONFIG_DOCSIS_MODEM" = y ] ; then
   echo "##### BEGIN SECTION DOCSIS Supportdata cable"
   echo "##### BEGIN SECTION DOCSIS Erouter"
   ls -la /var/tmp/edocsis.state*
   for fn in /var/tmp/edocsis.state* ; do
      echo -n "$fn: " ; cat $fn
   done
   echo "##### END SECTION DOCSIS Erouter"
   aicmd pumaglued support get cable
   echo "##### END SECTION DOCSIS"
fi

if [ "$CONFIG_LTE" = y -o "$CONFIG_USB_GSM" = y ] ; then
echo "##### BEGIN SECTION MOBILED Supportdata"
  /bin/supportdata.mobiled
echo "##### END SECTION MOBILED"
fi

echo "##### BEGIN SECTION Ethernet Supportdata ethernet"
echo
echo Ethernet
echo --------
cpmactest show
cat /proc/driver/avm_cpmac/cpmac0/*
cat /proc/driver/avm_cpmac/*/*
cat /proc/eth/*
if [ -x /usr/sbin/brctl ] ; then
   /usr/sbin/brctl show
else
   brctl show
fi
if [ -x /bin/supportdata.avmnet ] ; then
/bin/supportdata.avmnet
fi

echo ethtool
if [ -x /sbin/ethtool ] ; then
   for iface in eth0 eth1 eth2 eth3 eth4 wan ; do
      /sbin/ethtool $iface 2> /dev/null
      /sbin/ethtool --show-eee $iface 2> /dev/null
      /sbin/ethtool -S $iface 2> /dev/null
   done
fi
echo "##### END SECTION Ethernet"

echo "##### BEGIN SECTION Networking Supportdata networking"
echo
echo Networking
echo ----------
# ping -c 2 www.avm.de
cat /var/dsld.autodetect
msgsend dsld ethtooldump
sleep 2
cat /var/tmp/ethtooldump
showdsldstat
if [ -x /bin/showshringbuf ] ; then
   echo "Autodetect:"
   /bin/showshringbuf autodetect
fi

if [ -x /bin/showshringbuf ] ; then
   echo "Lan-Pairing:"
   /bin/showshringbuf lan_pairing
fi

if [ -f /proc/kdsld/kdsld/vccs ] ; then
   echo "##### BEGIN SECTION vccs vccs"
   cat /proc/kdsld/kdsld/vccs
   echo "##### END SECTION vccs"
fi

if [ -f /proc/kdsld/netiface/dsl/datapipe-dsl/iproute/routes ] ; then
   echo "##### BEGIN SECTION iproute  routes"
   echo --- IPROUTE Module ---
   cat /proc/kdsld/netiface/dsl/datapipe-dsl/iproute/routes
   echo "##### END SECTION iproute"
fi

if [ -f /proc/kdsld/dsliface/internet/ip4to6/info ] ; then
   echo "##### BEGIN SECTION ds-lite"
   cat /proc/kdsld/dsliface/internet/ip4to6/info
   echo "##### END SECTION ds-lite"
fi

# PUMA6 & PUMA7
if [ -x /usr/sbin/showextswitch ] ; then
   echo "##### BEGIN SECTION switch extswitch"
   /usr/sbin/showextswitch
   echo "##### END SECTION switch extswitch"
fi
# PUMA6
if [ -x /usr/sbin/lsdctrl ] ; then
   echo "##### BEGIN SECTION switch lsd"
   /usr/sbin/lsdctrl show
   echo "##### END SECTION switch lsd"
fi
if [ -d /proc/udma ] ; then
   echo "##### BEGIN SECTION udma status"
   for file in gap_burst_status itr_status status ; do
       test -f /proc/udma/$file && cat /proc/udma/$file
   done
   echo "##### END SECTION udma status"
fi

# Repeater
if [ -x /sbin/rextd ] ; then
   echo "##### BEGIN SECTION rextd  krextd"
   echo "Upstream:"
   cat /proc/krextd/krextd/upstreams
   echo "MacRoutes:"
   cat /proc/krextd/krextd/macroutes
   echo "Stations:"
   cat /proc/krextd/krextd/stations
   if [ -x /bin/showshringbuf ] ; then
      echo "messages:"
      /bin/showshringbuf rextd
   fi
   echo "##### END SECTION rextd"
fi

if [ ! -x /sbin/rextd ] ; then
   echo "##### BEGIN SECTION upnp_forward UPnP forwardings"
   echo --- UPnP Forwardings ---
   ctlmgr_ctl u igdforwardrules
   echo "##### END SECTION upnp_forward"
fi

echo "##### BEGIN SECTION port_forwards IPv4 forwardings"
echo --- Active IPv4 Portforwardings ---
for entry in `ls /proc/kdsld/dsliface/`; do echo $entry ; cat /proc/kdsld/dsliface/$entry/ipmasq/openports ;done
echo
/sbin/showaddrs
/sbin/showroutes -A
/sbin/ifconfig -a
if [ -x /sbin/tc ] ; then
   echo tc scripte
   cat /var/*.tc
   echo
   /sbin/tc -s qdisc show
   echo
   for iface in dsl adsl wan vdsl ptm_vr9 ptm0 lte0 usb0 wlan_wan; do
      if /sbin/ifconfig $iface > /dev/null 2>&1 ; then
         echo "Device $iface:"
         /sbin/tc -s class show dev $iface
         /sbin/tc -s filter show dev $iface root
      fi
   done
fi
echo
/sbin/route -n
netstat -anp 2> /dev/null || netstat -an
# cat /proc/net/*
cat /proc/net/arp
for entry in `ls /proc/kdsld/dsliface/`; do
   if [ -f /proc/kdsld/dsliface/$entry/etherarp/neighbour ] ; then
      echo etherarp $entry:
      cat /proc/kdsld/dsliface/$entry/etherarp/neighbour
   fi
done
cat /proc/userman
echo "##### END SECTION port_forwards"

echo "##### BEGIN SECTION dhcpd"
aicmd multid dhcpd context
aicmd multid dhcpd interfaces
aicmd multid dhcpd leases
echo "##### END SECTION dhcpd"

if [ -x /usr/bin/showportsopentolan ] ; then
echo "##### BEGIN SECTION showportsopentolan"
   echo showportsopentolan:
   echo ------------------------------------------------------------------------
   /usr/bin/showportsopentolan
   echo ------------------------------------------------------------------------
   echo
echo "##### END SECTION showportsopentolan"
fi

echo "##### BEGIN SECTION ripv2"
for entry in `ls /proc/kdsld/dsliface/`; do
   if [ -f /proc/kdsld/dsliface/$entry/ripv2/config ] ; then
      echo ripv2 $entry:
      cat /proc/kdsld/dsliface/$entry/ripv2/config
      cat /proc/kdsld/dsliface/$entry/ripv2/rcvroutes
   fi
done
echo "##### END SECTION ripv2"

echo "##### BEGIN SECTION dpfilter4"
for entry in `ls /proc/kdsld/dsliface/`; do
   if [ -f /proc/kdsld/dsliface/$entry/dpfilter4/filterinfo ] ; then
      echo "$entry:"
      cat /proc/kdsld/dsliface/$entry/dpfilter4/filterinfo
   fi
done
echo "##### END SECTION dpfilter4"

echo "##### BEGIN SECTION port_forwards_v6 IPv6 forwardings"
echo --- Active IPv6 Portforwardings ---
for entry in `ls /proc/kdsld/dsliface/`; do echo $entry ; cat /proc/kdsld/dsliface/$entry/ip6_ct/openports ;done
echo "##### END SECTION port_forwards_v6"

echo "##### BEGIN SECTION dpfilter6"
for entry in `ls /proc/kdsld/dsliface/`; do
   if [ -f /proc/kdsld/dsliface/$entry/dpfilter6/filterinfo ] ; then
      echo "$entry:"
      cat /proc/kdsld/dsliface/$entry/dpfilter6/filterinfo
   fi
done
echo "##### END SECTION dpfilter6"

if [ ! -x /sbin/rextd ] ; then
   echo "##### BEGIN SECTION openports"
   echo --- OpenPorts ---
   ctlmgr_ctl u openports
   echo
   echo "##### END SECTION openports"
fi

echo "##### BEGIN SECTION resolve resolve.conf"
echo resolv.conf:
cat /var/tmp/resolv.conf
echo "##### END SECTION resolve"

echo "##### BEGIN SECTION avm_resolve avm-resolve.conf"
echo avm-resolv.conf:
cat /var/tmp/avm-resolv.conf
echo "##### END SECTION avm_resolve"

echo "##### BEGIN SECTION dyndns DynDNS"
echo dyndns
ls -l /var/tmp/ddnslog*
for log_cnt in 1 2 3 ; do
    if [ -e /var/tmp/ddnslog_$log_cnt.txt ] ; then
        echo "ddnslog_$log_cnt.txt:"
        cat /var/tmp/ddnslog_$log_cnt.txt
    fi
done
echo "##### END SECTION dyndns"

echo "##### BEGIN SECTION multicast Multicast"
/bin/showmulticast
echo "##### END SECTION multicast"

if [ "$OEM" = "kdg" ] ; then
  if [ "$CONFIG_RELEASE" = 2 ] ; then
     echo "##### BEGIN SECTION gre gre"
     echo ignored LABOR
     echo "##### END SECTION gre"
  elif [ "$CONFIG_RELEASE" = 1 -a "$CONFIG_BETA_RELEASE" = 0 ] ; then
     echo "##### BEGIN SECTION gre gre"
     echo ignored RELEASE
     echo "##### END SECTION gre"
  else
     echo "##### BEGIN SECTION gre gre"
     if [ -f /proc/net/b2b ] ; then
        echo
        echo Backtoback
        echo ----------
        cat /proc/net/b2b
     fi
     if [ -f /proc/kdsld/hotspot/hotspots ] ; then
        echo
        echo Hotspots
        echo --------
        cat /proc/kdsld/hotspot/hotspots
        echo
        echo GRE Tunnel
        echo ----------
        if [ -f /proc/kdsld/dsliface/internet/gre4/tunnels ] ; then
           cat /proc/kdsld/dsliface/internet/gre4/tunnels
        fi
        if [ -f /proc/kdsld/dsliface/internet/gre6/tunnels ] ; then
           cat /proc/kdsld/dsliface/internet/gre6/tunnels
        fi
     fi
     echo "##### END SECTION gre"
  fi
else
  echo "##### BEGIN SECTION gre gre"
  if [ -f /proc/net/b2b ] ; then
     echo
     echo Backtoback
     echo ----------
     cat /proc/net/b2b
  fi
  if [ -f /proc/kdsld/hotspot/hotspots ] ; then
     echo
     echo Hotspots
     echo --------
     cat /proc/kdsld/hotspot/hotspots
     echo
     echo GRE Tunnel
     echo ----------
     if [ -f /proc/kdsld/dsliface/internet/gre4/tunnels ] ; then
        cat /proc/kdsld/dsliface/internet/gre4/tunnels
     fi
     if [ -f /proc/kdsld/dsliface/internet/gre6/tunnels ] ; then
        cat /proc/kdsld/dsliface/internet/gre6/tunnels
     fi
  fi
  echo "##### END SECTION gre"
fi

echo "##### BEGIN SECTION static_net static_net"
for entry in `ls /proc/kdsld/dsliface/`; do
   sed -e "s/^/$entry: /" < /proc/kdsld/dsliface/$entry/ipmasq/nomasqnets
done
echo "##### END SECTION static_net"

echo "##### BEGIN SECTION nqos nqos"
find /proc/kdsld/nqos -type f | while read a ; do
   c=`cat $a`
   if [ "$c" ] ; then
      echo "$a:" | sed -e 's,/proc/kdsld/nqos/,,'
      cat $a | sed -e 's/^/   /'
   fi
done
echo "##### END SECTION nqos nqos"

echo "##### BEGIN SECTION PA showpainfo"
showpainfo -x
echo "##### END SECTION PA"

echo "##### BEGIN SECTION Online-Monitor showinetstat"
showinetstat -a
echo "##### END SECTION Online-Monitor"

echo "##### BEGIN SECTION vpn VPN"
echo
echo VPN avmike
echo -------
ls -lt /var/tmp/ike.old /var/tmp/ike.log
if [ -e /var/tmp/ike.old ] ; then
   cat /var/tmp/ike.old
fi
if [ -e /var/tmp/ike.log ] ; then
   cat /var/tmp/ike.log
fi
echo
echo VPN assocs
echo ----------
for i in /proc/kdsld/dsliface/*/ipsec/assocs ; do
   if [ -f $i ] ; then
      echo $i:
      cat $i
   fi
done
echo
echo VPN connections
echo ----------
for i in /proc/kdsld/dsliface/*/ipsec/connections ; do
   if [ -f $i ] ; then
      echo $i:
      cat $i
   fi
done
echo

echo "##### END SECTION vpn"

echo "##### BEGIN SECTION l2tpv3d Suppotdata l2tpv3d"
msgsend l2tpv3d dump

if [ -x /bin/showshringbuf ] ; then
echo "##### BEGIN SECTION l2tpv3d_log log"
   echo
   echo L2TPv3 log
   echo ----------
  /bin/showshringbuf l2tpv3
echo "##### END SECTION l2tpv3d_log"

fi
if [ -x /bin/showl2tpstat ] ; then
echo "##### BEGIN SECTION l2tpv3d_status status"
   echo
   echo L2TPv3 status
   echo -------------
   /bin/showl2tpstat
echo "##### END SECTION l2tpv3d_status"
fi

echo "##### BEGIN SECTION l2tpv3d_sessions sessions"
echo
echo L2TPv3 sessions
echo ---------------
/sbin/l2tp show tunnel
/sbin/l2tp show session
echo "##### END SECTION l2tpv3d_sessions"

echo "##### BEGIN SECTION l2tpv3d_guest guest filter"
echo
echo Guest filter
echo ------------
cat /proc/kdsld/guestflt/*
echo "##### END SECTION l2tpv3d_guest"

sleep 2
if [ -f /var/tmp/l2tpv3d.txt ] ; then
echo "##### BEGIN SECTION l2tpv3d_dump dump"
   echo
   echo L2TPv3d dump
   echo ------------
   cat /var/tmp/l2tpv3d.txt
echo "##### END SECTION l2tpv3d_dump"
fi
echo "##### END SECTION l2tpv3d"

echo "##### BEGIN SECTION PCPD"
echo "##### BEGIN SECTION PCPD fwacl"
aicmd pcpd show fwacl
echo "##### END SECTION PCPD fwacl"
echo "##### BEGIN SECTION PCPD client"
aicmd pcpd show clients
echo "##### END SECTION PCPD client"
echo "##### END SECTION PCPD"
echo "##### BEGIN SECTION PCP"
showpcpinfo
echo "##### END SECTION PCP"
echo "##### END SECTION Networking"

if test -e /sbin/cableinfo; then
   echo "##### BEGIN SECTION DVB files"
   echo
   echo "dvb.cfg"
   echo "------------"
   cat /var/flash/dvb.cfg
   echo
   echo "cableinfo.status"
   echo "------------"
   cat /var/tmp/cableinfo.status
   echo
   echo "cableinfo.log"
   echo "------------"
   cat /var/tmp/cableinfo.log
   echo
   echo "cableinfo.old"
   echo "------------"
   cat /var/tmp/cableinfo.old
   echo
   echo "cableinfo.supportdata"
   echo "------------"
   msgsend cableinfo supportdata
   sleep 1
   cat /var/tmp/cableinfo.supportdata
   echo
   echo "bouquets.csv"
   echo "------------"
   cat /var/tmp/bouquets.csv
   echo
   echo "spectrum.csv"
   echo "------------"
   cat /var/tmp/spectrum.csv
   echo
   echo "tvsd.m3u"
   echo "------------"
   cat /var/tmp/tv/tvsd.m3u
   echo
   echo "tvhd.m3u"
   echo "------------"
   cat /var/tmp/tv/tvhd.m3u
   echo
   echo "radio.m3u"
   echo "------------"
   cat /var/tmp/tv/radio.m3u
   if test -e /sys/bus/usb/devices/1-1\:1.0/cc_drops ; then
      echo
      echo "cc_drops"
      echo "------------"
      cat /sys/bus/usb/devices/1-1\:1.0/cc_drops
   fi
   echo "##### END SECTION DVB"
fi

echo "##### BEGIN SECTION devices Devices"
if test -e /var/devices; then
echo "##### BEGIN SECTION mounts Devices, filesystems, partitions"
echo
echo USB
echo ---
cat /var/devices
cat /proc/mounts
cat /proc/partitions
echo "##### END SECTION mounts"
fi

if [ ! -x /sbin/rextd ] ; then
    echo "##### BEGIN SECTION usb USB devices"
   echo usbdevices:
   echo -----------
   ctlmgr_ctl u usbdevices
   echo -----------
   ctlmgr_ctl u storagedirectories
    echo "##### END SECTION usb"
if [ -x /bin/supportdata.usb ] ; then
    echo "##### BEGIN SECTION usb_support Supportdata USB"
  /bin/supportdata.usb
    echo "##### END SECTION usb_support"
fi
fi
echo "##### END SECTION devices"

echo "##### BEGIN SECTION filesystems Filesystems"
echo "##### BEGIN SECTION smb Samba"
cat /var/tmp/samba/lib/smb.conf
echo "##### END SECTION smb"

if [ -x /bin/showshringbuf ] ; then
echo "##### BEGIN SECTION avmdb Log avmdb"
   echo
   echo avmdb-Log
   echo ------
  /bin/showshringbuf avmdb
echo "##### END SECTION avmdb"
fi
if [ -x /bin/showfritznasdbstat ] ; then
    echo "##### BEGIN SECTION nas_db Fritznasdb"
  /bin/showfritznasdbstat
    echo "##### END SECTION nas_db"
fi
if [ -e /var/tmp/webdav.log ] ; then
    echo "##### BEGIN SECTION webdav WebDAV"
   echo
   echo webdav.log:
   echo -----------
   cat /var/tmp/webdav.log
    echo "##### END SECTION webdav"
fi


echo "##### BEGIN SECTION upnp_av UPnP-AV"
   echo
   echo UPnP-AV
   echo -------
   ls -lt /var/tmp/msrv4.old /var/tmp/msrv4.log
   if [ -e /var/tmp/msrv4.old ] ; then
      cat /var/tmp/msrv4.old
   fi
   if [ -e /var/tmp/msrv4.log ] ; then
      cat /var/tmp/msrv4.log
   fi
echo "##### END SECTION upnp_av"

if test -e /lib/libtcloud.so.1.0.0; then
    echo "##### BEGIN SECTION telekom_media Mediencenter"
    echo
    echo Telekom-Mediencenter
    echo -------
    ls -lt /var/tmp/tcloud.old /var/tmp/tcloud.log
    if [ -e /var/tmp/tcloud.old ] ; then
       cat /var/tmp/tcloud.old
    fi
    if [ -e /var/tmp/tcloud.log ] ; then
       cat /var/tmp/tcloud.log
    fi
    echo "##### END SECTION telekom_media"

    echo "##### BEGIN SECTION telekom_media OAUTH"
    if [ -x /bin/showshringbuf ] ; then
      echo "messages:"
      /bin/showshringbuf tmc
    fi
    echo "##### END SECTION telekom_media OAUTH"
fi

echo "##### BEGIN SECTION diverse Homenetwork"
echo "##### END SECTION diverse"
echo "##### END SECTION filesystems"

echo "##### BEGIN SECTION telefonSupport Supportdata telephony"
if test -e /bin/showvoipdstat; then
echo "##### BEGIN SECTION voip Voice over IP"
echo
echo VoIP
echo ----
/bin/showvoipdstat
echo "##### END SECTION voip"
fi

echo "##### BEGIN SECTION voipd"
echo
echo CodecList
echo ---------
/bin/aicmd voipd show codeclist
echo
echo SipIfaces
echo ---------
/bin/aicmd voipd show sipifaces
echo
echo SIP Firewall
echo ---------
/bin/aicmd voipd show firewall
echo "##### END SECTION voipd"

if test -e /bin/showvoipdtrace; then
echo "##### BEGIN SECTION voiptrace"
echo
echo "VoIPTrace"
/bin/showvoipdtrace
echo "##### END SECTION voiptrace"
fi

if [ -x /bin/voipkpid ]; then
echo "##### BEGIN SECTION voipkpid"
echo
echo "voipkpid"
voipkpid -n 20
echo "##### END SECTION voipkpid"
fi

if [ -x /bin/showshringbuf ] ; then
echo "##### BEGIN SECTION sip SIP messages"
   echo SIP log
   echo ----------
   /bin/showshringbuf sip
echo "##### END SECTION sip"
echo "##### BEGIN SECTION voipbackup"
   echo Voip Backup log
   echo ----------
   /bin/showshringbuf voipbackup
echo "##### END SECTION voipbackup"
   if  [ "$enhanced" = y ] ; then
      echo "##### BEGIN SECTION invite SIP INVITE messages"
      echo SIP INVITE log
      echo ----------
      /bin/showshringbuf invite
      echo "##### END SECTION invite"
   fi
fi

echo "##### BEGIN SECTION dect DECT"
echo DECT
echo ----
if [ -x /bin/supportdata.dect ] ; then
  /bin/supportdata.dect
fi
echo "##### END SECTION dect"

echo "##### BEGIN SECTION telefon Telephony configuration"
echo
echo Telefonie
echo ---------
if [ "`pidof telefon`" != "" ] ; then
  telefon --support
fi
cat /var/tmp/telefon.log
rm -f /var/tmp/telefon.log
if [ "$enhanced" = y ] ; then
  echo "##### BEGIN SECTION calllog"
  echo ------
  telefon --calllog
  cat /var/tmp/telefon.log
  rm -f /var/tmp/telefon.log
  echo "##### END SECTION calllog"
fi
echo ------
if [ -x /sbin/showlog ] ; then
/sbin/showlog
fi
echo "##### END SECTION telefon"

rm -f /var/tmp/*.slab

echo "##### BEGIN SECTION dtrace DTrace"
echo
echo dtrace.txt
echo ----------
cat /var/dtrace.txt
echo dtrace.tx2
echo ----------
cat /var/dtrace.tx2
echo "##### END SECTION dtrace"

echo "##### BEGIN SECTION echo Echo canceller"
echo
echo echo canceller
echo --------------
cat /var/ec_stats_act
cat /var/ec_stats_indtr
if [ -e /proc/avm/echo_canceller ] ; then
  cat /proc/avm/echo_canceller
fi
echo "##### END SECTION echo"

if [ -e /proc/capicodec/fax ] ; then
echo "##### BEGIN SECTION fax FAX"
   echo
   echo FAX
   echo ---
   cat /proc/capicodec/fax
echo "##### END SECTION fax"
fi
echo "##### END SECTION telefonSupport"

echo "##### BEGIN SECTION WLAN Supportdata WLAN"
echo WLAN
echo ----
if [ -x /bin/supportdata.wlan ] ; then
  /bin/supportdata.wlan
fi
echo "##### END SECTION WLAN"

if [ -x /bin/supportdata.nlr ] ; then
    echo "##### BEGIN SECTION NLR NLR"
    echo NLR
    echo ---
    /bin/supportdata.nlr
    echo "##### END SECTION NLR"
fi

if [ -x /bin/supportdata.plc ] ; then
    echo "##### BEGIN SECTION PLC Powerline"
    echo PLC
    echo ---
    /bin/supportdata.plc
    echo "##### END SECTION PLC"
fi

echo "##### BEGIN SECTION config Configuration"
echo
echo Configuration
echo -------------
ls -laR /var/flash
if [ -x /sbin/rextd ] ; then
echo "##### BEGIN SECTION rextd /var/flash/rext.cfg"
sed s/\"\$\$\$\$.*\"\;/\"SECRET\"\;/ /var/flash/rext.cfg
echo "##### END SECTION rextd"
fi
echo "##### BEGIN SECTION ar7_cfg /var/flash/ar7.cfg"
sed s/\"\$\$\$\$.*\"\;/\"SECRET\"\;/ /var/flash/ar7.cfg
echo "##### END SECTION ar7_cfg"

echo "##### BEGIN SECTION dsld ar7_cfg diff"
msgsend dsld configdump
sleep 1
allcfgconv -C ar7 -s /var/flash/ar7.cfg -d /var/tmp/dsld.ar7.cfg -o /var/tmp/ar7.diff
sed s/\"\$\$\$\$.*\"\;/\"SECRET\"\;/ /var/tmp/ar7.diff
rm /var/tmp/ar7.diff /var/tmp/dsld.ar7.cfg
echo "##### END SECTION dsld ar7_cfg diff"

echo "##### BEGIN SECTION voip_cfg /var/flash/voip.cfg"
sed s/\"\$\$\$\$.*\"\;/\"SECRET\"\;/ /var/flash/voip.cfg
echo "##### END SECTION voip_cfg"

echo "##### BEGIN SECTION usb_cfg /var/flash/usb.cfg"
sed s/\"\$\$\$\$.*\"\;/\"SECRET\"\;/ /var/flash/usb.cfg
echo "##### END SECTION usb_cfg"

echo "##### BEGIN SECTION wlan_cfg /var/flash/wlan.cfg"
sed s/\"\$\$\$\$.*\"\;/\"SECRET\"\;/ /var/flash/wlan.cfg | sed s/wps_pin\ =\ \".*\"/wps_pin\ =\ \"SECRET\"/g | sed s/wps_device_password\ =\ .*/wps_device_password\ =\ SECRET\;/g
echo "##### END SECTION wlan_cfg"

echo "##### BEGIN SECTION tr069_cfg /var/flash/tr069.cfg"
sed s/\"\$\$\$\$.*\"\;/\"SECRET\"\;/ /var/flash/tr069.cfg
echo "##### END SECTION tr069_cfg"

echo "##### BEGIN SECTION stat.cfg /var/flash/stat.cfg"
sed s/\"\$\$\$\$.*\"\;/\"SECRET\"\;/ /var/flash/stat.cfg
echo "##### END SECTION stat.cfg"

echo "##### BEGIN SECTION user_cfg /var/flash/user.cfg"
sed s/\"\$\$\$\$.*\"\;/\"SECRET\"\;/ /var/flash/user.cfg
echo "##### END SECTION user_cfg"

echo "##### BEGIN SECTION userstat_cfg /var/flash/userstat.cfg"
sed s/\"\$\$\$\$.*\"\;/\"SECRET\"\;/ /var/flash/userstat.cfg
echo "##### END SECTION userstat_cfg"

echo "##### BEGIN SECTION vpn_cfg /var/flash/vpn.cfg"
sed s/\"\$\$\$\$.*\"\;/\"SECRET\"\;/ /var/flash/vpn.cfg
echo "##### END SECTION vpn_cfg"

echo "##### BEGIN SECTION configd /var/flash/configd"
sed s/\=\"[a-zA-Z0-9\.-_]*@/\=\"[email protected]/g /var/flash/configd | sed s/\"\$\$\$\$.*\"/\"SECRET\"\/ | sed s/user\=\"[a-zA-Z0-9\.-_]*\"/user\=\"SECRET\"/
echo "##### END SECTION configd"

echo "##### BEGIN SECTION maild_xml /var/flash/maild.xml"
sed s/\=\"[a-zA-Z0-9\.-_]*@/\=\"[email protected]/g /var/flash/maild.xml
echo "##### END SECTION maild_xml"

echo "##### BEGIN SECTION debug_cfg /var/flash/debug.cfg"
sed s/\"\$\$\$\$.*\"\;/\"SECRET\"\;/ /var/flash/debug.cfg
echo "##### END SECTION debug_cfg"

echo "##### BEGIN SECTION ewnwstatus.cfg /var/flash/ewnwstatus.cfg"
sed s/\"\$\$\$\$.*\"\;/\"SECRET\"\;/ /var/flash/ewnwstatus.cfg
echo "##### END SECTION ewnwstatus.cfg"

if [ -x /bin/supportdata.avmconnect ] ; then
  echo "##### BEGIN SECTION AVMCONNECT"
  /bin/supportdata.avmconnect
  echo "##### END SECTION AVMCONNECT"
fi

echo "##### BEGIN SECTION avmnexus.cfg /var/flash/avmnexus.cfg"
SKIP=n
while IFS='' read -r line || [[ -n "$line" ]]; do
  if [ n == $SKIP ] ; then
    echo "$line" | grep 'own_key =' >/dev/null
    if [ $? == 0 ] ; then
      echo "$line" | grep -v '";' >/dev/null
      if [ $? == 0 ] ; then
        SKIP=y
        echo '  own_key = "SECRET";'
      fi
    fi
    if [ n == $SKIP ] ; then
      echo "$line"
    fi
  else
    echo "$line" | grep '";' >/dev/null
    if [ $? == 0 ] ; then
      SKIP=n
    fi
  fi
done < /var/flash/avmnexus.cfg
echo "##### END SECTION avmnexus.cfg"

if [ "$enhanced" = y ] ; then
   if [ -x /bin/supportdata.tffs ] ; then
      echo "##### BEGIN SECTION TFFS TFFS"
      echo TFFS
      echo ----
      /bin/supportdata.tffs enhanced
      echo "##### END SECTION TFFS"
   fi
fi

echo "##### END SECTION config"

echo "##### BEGIN SECTION provider Provider defaults"
echo Provider Default Config
echo -----------------------
major=`grep tffs /proc/devices`
tffs_major=${major%%tffs}
DIR=/var/flash/provider_default
mkdir -p $DIR
mknod $DIR/ar7.cfg.diff c $tffs_major $((0x1f))
echo ar7.cfg.diff:
sed s/\"\$\$\$\$.*\"\;/\"SECRET\"\;/ $DIR/ar7.cfg.diff
mknod $DIR/voip.cfg.diff c $tffs_major $((0x22))
echo voip.cfg.diff:
sed s/\"\$\$\$\$.*\"\;/\"SECRET\"\;/ $DIR/voip.cfg.diff
mknod $DIR/wlan.cfg.diff c $tffs_major $((0x23))
echo wlan.cfg.diff:
sed s/\"\$\$\$\$.*\"\;/\"SECRET\"\;/ $DIR/wlan.cfg.diff
mknod $DIR/usb.cfg.diff c $tffs_major $((0x4a))
echo usb.cfg.diff:
sed s/\"\$\$\$\$.*\"\;/\"SECRET\"\;/ $DIR/usb.cfg.diff
mknod $DIR/tr069.cfg.diff c $tffs_major $((0x27))
echo tr069.cfg.diff:
sed s/\"\$\$\$\$.*\"\;/\"SECRET\"\;/ $DIR/tr069.cfg.diff
mknod $DIR/vpn.cfg.diff c $tffs_major $((0x26))
echo vpn.cfg.diff:
sed s/\"\$\$\$\$.*\"\;/\"SECRET\"\;/ $DIR/vpn.cfg.diff
mknod $DIR/user.cfg.diff c $tffs_major $((0x28))
echo user.cfg.diff:
sed s/\"\$\$\$\$.*\"\;/\"SECRET\"\;/ $DIR/user.cfg.diff

pdc_empty()
{
  mknod $DIR/$1 c $tffs_major $2
  if checkempty $DIR/$1 2>/dev/null ; then
    echo $1 is empty
  else
    echo $1 is not empty
  fi
}

pdc_empty fx_cg $((0x34))
pdc_empty fx_conf $((0x31))
pdc_empty fx_lcr $((0x32))
pdc_empty telefon_misc $((0x35))
pdc_empty phonebook $((0x3e))
pdc_empty calllog $((0x3d))
pdc_empty dect_misc $((0x44))
pdc_empty fonctrl $((0x3f))
pdc_empty dect_eeprom $((0x45))
pdc_empty dmgr_handset_user $((0x46))
pdc_empty umts.cfg $((0x4c))
echo "##### END SECTION provider"


if [ -x /bin/showshringbuf ] ; then
echo "##### BEGIN SECTION Mailbuilder"
   echo
   echo mailbuilder shringbuf
   echo -------------
   msgsend ctlmgr mbstatus 5
  /bin/showshringbuf mailbuilder

echo "##### END SECTION mailbuilder"
fi

if [ -x /bin/showshringbuf ] ; then
echo "##### BEGIN SECTION Backendmails"
   echo
   echo backendmails shringbuf
   echo -------------
   /bin/showshringbuf backendmails

echo "##### END SECTION Backendmails"
fi

echo "##### BEGIN SECTION Events Events"
echo
echo Events
echo ------
/sbin/eventsdump -d
echo "##### END SECTION Events"

if [ -x /bin/showshringbuf ] ; then
echo "##### BEGIN SECTION sso Single Sign On"
   echo
   echo SSO-Log
   echo ------
  /bin/showshringbuf sson
echo "##### END SECTION sso"
fi

if [ -x /bin/showshringbuf ] ; then
echo "##### BEGIN SECTION waccess Webserver access logs"
  echo
  echo waccess
  echo ------
  /bin/showshringbuf -m waccess
echo "##### END SECTION waccess"
fi

if [ -x /bin/showshringbuf ] ; then
echo "##### BEGIN SECTION werror Webserver error logs"
  echo
  echo werror
  echo ------
  /bin/showshringbuf -m werror
echo "##### END SECTION werror"
fi

if [ -x /bin/showshringbuf ] ; then
echo "##### BEGIN SECTION upnp_access UPNP Webserver access logs"
  echo
  echo upnp_access
  echo ------
  /bin/showshringbuf -m upnp_access
echo "##### END SECTION upnp_access"
fi

if [ -x /bin/showshringbuf ] ; then
echo "##### BEGIN SECTION upnp_error UPNP Webserver error logs"
  echo
  echo upnp_error
  echo ------
  /bin/showshringbuf -m upnp_error
echo "##### END SECTION upnp_error"
fi

if [ -x /bin/showshringbuf ] ; then
echo "##### BEGIN SECTION tr069 Technical Report 069"
   echo
   echo TR069-Provider-Log
   echo ------------------
  /bin/showshringbuf tr069
  echo
  echo TR069-AVM-Log
  echo ----------------
  /bin/showshringbuf tr069_avm
echo "##### END SECTION tr069"
fi

echo "##### BEGIN SECTION upnpd brute force status"
aicmd upnpd show bfp
echo "##### END SECTION upnpd brute force status"

if [ -x /bin/showshringbuf ] ; then
echo "##### BEGIN SECTION HALP"
   echo
   echo halp-Log
   echo ---------
  /bin/showshringbuf halp
echo "##### END SECTION HALP"
fi

if [ -x /bin/showshringbuf ] ; then
echo "##### BEGIN SECTION cloudmsgd Cloud Messaging Log"
   echo
   echo cloudmsgd-Log
   echo -------------
  /bin/showshringbuf cloudmsgd
echo "##### END SECTION cloudmsgd"
fi

if [ -x /bin/showshringbuf ] ; then
echo "##### BEGIN SECTION AVM Reporting"
   echo
   echo AVM Reporting-Log
   echo ---------
  /bin/showshringbuf avm_reporting
echo "##### END SECTION AVM Reporting"
fi

if [ "$CONFIG_DOCSIS" = y -o "$CONFIG_DOCSIS_MODEM" = y ] ; then
    echo "##### BEGIN SECTION cmlog Cablemodem eventlog"
    echo
    aicmd pumaglued support get cmlog
    echo "##### END SECTION cmlog"
fi

if test -e /nvram/pcd_error_log.txt; then
    echo "##### BEGIN SECTION pcdlog pcd error log"
    echo
    cat /nvram/pcd_error_log.txt
    echo "##### END SECTION pcdlog"
fi

echo "##### BEGIN SECTION letsencrypt"
echo ctlmgr_ctl u letsencrypt:
ctlmgr_ctl u letsencrypt
echo letsencrypt.first
cat /var/letsencrypt.first
echo letsencrypt.old
cat /var/letsencrypt.old
echo letsencrypt.log
cat /var/letsencrypt.log
echo "##### END SECTION letsencrypt"

echo "##### BEGIN SECTION misc Additional"

if [ -x /bin/showshringbuf ] ; then
echo "##### BEGIN SECTION user_log"
   echo
   echo user log
   echo ----------
  /bin/showshringbuf log
echo "##### END SECTION user_log"

fi

echo "##### BEGIN SECTION debug Kernel output"
# echo Misc
# echo ----
# ls -laR /proc
cd /var/flash

echo
echo /dev/debug
echo ----------
echo isdn_list >/dev/debug
echo isdn_reg >/dev/debug
echo pcmlink_reg >/dev/debug
echo pcmlink_dma >/dev/debug
echo pcmlink_status >/dev/debug
echo support_phone_hw >/dev/debug
echo AVMDBG_EOF 1+ >/dev/debug

cat /dev/debug
echo AVMDBG_EOF 0 >/dev/debug
echo "##### END SECTION debug"

echo "##### BEGIN SECTION dmesg"
dmesg | sed "s/^\(.prom_init.*wlan_key\).*/\1 SECRET/" | sed "s/^\(.prom_init.*tr069_passphrase\).*/\1 SECRET/"
echo "##### END SECTION dmesg"

if [ -e /var/tmp/pbook.err ] ; then
echo "##### BEGIN SECTION online_pb Online phonebook"
   echo online-pb:
   echo -----------
   cat /var/tmp/pbook.err
echo "##### END SECTION online_pb"
fi

if [ -x /bin/showshringbuf ] ; then
echo "##### BEGIN SECTION chronyctl"
   echo
   /bin/showshringbuf chronyctl
   echo
echo "##### END SECTION chronyctl"
fi

if [ -e /etc/init.d/rc.chrony ] ; then
    if [ "`pidof chronyd`" != "" ] ; then
        echo "##### BEGIN SECTION chrony Chrony"
        echo
        echo Chrony status:
        /etc/init.d/rc.chrony status
        echo "##### END SECTION chrony"
    fi
fi

echo "##### BEGIN SECTION dns_server DNS configuration"
echo
echo dns-server:
echo -----------
aicmd multid dnsd dump
echo "##### END SECTION dns_server"

echo "##### BEGIN SECTION dns_stat DNS stat"
echo
echo dns statistic:
echo ----------------------
aicmd multid dnsd stats
echo "##### END SECTION dns_stat"

echo "##### BEGIN SECTION dns_rebind_protection DNS rebind"
echo
echo dns rebind protection:
echo ----------------------
aicmd multid show dns-rebind
echo "##### END SECTION dns_rebind_protection"

if [ -x /bin/showshringbuf ] ; then
echo "##### BEGIN SECTION dns_server_selection DNS server"
   echo
   echo DNSD-Server-Selection
   echo ---------------------
   /bin/showshringbuf dnsdbest
   echo
echo "##### END SECTION dns_server_selection"
fi

if [ "$CONFIG_RELEASE" = 0 ] ; then
if [ -x /bin/showshringbuf ] ; then
echo "##### BEGIN SECTION dnsd_cache DNS server"
   echo
   echo DNSD-Cache-Log
   echo --------------
   /bin/showshringbuf dnsd
   echo
echo "##### END SECTION dnsd_cache"
fi
fi

if test -e /sbin/showneighbours; then
echo "##### BEGIN SECTION neighbours Neighbors"
   echo neighbours:
   echo -----------
   /sbin/showneighbours -v
   /sbin/showneighbours -t
   echo
echo "##### END SECTION neighbours"
fi

if [ -f /proc/kdsld/neigh/devs ] ; then
echo "##### BEGIN SECTION neigh_tracking Neighbor tracking"
   echo neigh tracking:
   echo ---------------
   cat /proc/kdsld/neigh/global
   cat /proc/kdsld/neigh/devs
   cat /proc/kdsld/neigh/ethaddr
   cat /proc/kdsld/neigh/neighbour
echo "##### END SECTION neigh_tracking"
fi

if [ -f /proc/krextd/neigh/devs ] ; then
echo "##### BEGIN SECTION neigh_tracking Neighbor tracking"
   echo neigh tracking:
   echo ---------------
   cat /proc/krextd/neigh/global
   cat /proc/krextd/neigh/devs
   cat /proc/krextd/neigh/ethaddr
   cat /proc/krextd/neigh/neighbour
echo "##### END SECTION neigh_tracking"
fi

echo "##### BEGIN SECTION MESH daemon"
test -x /bin/supportdata.meshd && /bin/supportdata.meshd
echo "##### END SECTION MESH daemon"

echo "##### BEGIN SECTION landevices LAN devices"
   echo landevices:
   echo -----------
   ctlmgr_ctl u landevice
   echo -----------
   showshringbuf landevicesupnp
   echo -----------
   showshringbuf landevicesnexus
   echo -----------
   showshringbuf landevices
   echo
echo "##### END SECTION landevices"

echo "##### BEGIN SECTION nexus"
echo ctlmgr_ctl u nexus:
ctlmgr_ctl u nexus
echo aicmd avmnexusd avmnexus global:
aicmd avmnexusd avmnexus globals
echo aicmd avmnexusd avmnexus connections:
aicmd avmnexusd avmnexus connections
echo aicmd avmnexusd avmnexus apiclients:
aicmd avmnexusd avmnexus apiclients
echo avmnexusd avmnexus allpeers:
aicmd avmnexusd avmnexus allpeers
echo -----------
showshringbuf nexus
echo "##### END SECTION nexus"

msgsend ctlmgr sessions
if [ -e /var/tmp/sessions.txt ] ; then
    echo "##### BEGIN SECTION ctlmgr_sessions Active sessions"
   echo Sessions:
   echo -----------
   cat /var/tmp/sessions.txt
   rm /var/tmp/sessions.txt
    echo "##### END SECTION ctlmgr_sessions"
fi
echo "##### BEGIN SECTION ctlmgr_users Users"
   echo Users:
   echo -----------
   ctlmgr_ctl u boxusers | sed s/vpn_psk\=.*/vpn_psk\=SECRET/g
echo "##### END SECTION ctlmgr_users"

echo "##### BEGIN SECTION openssl"
   echo OpenSSL Version: `grep  "^OpenSSL " /lib/libssl.so`
echo "##### END SECTION openssl"
echo "##### END SECTION misc"

if [ -e /var/tmp/fwupdate.log ] ; then
    echo "##### BEGIN SECTION firmware update log"
    cat /var/tmp/fwupdate.log
    echo "##### END SECTION firmware update log"
fi

if [ -e /var/flash/fwupdatetrace.cfg ] ; then
    echo "##### BEGIN SECTION firmware update trace"
    echo -n /var/bootid:
    cat /var/bootid
    echo
    cat /var/flash/fwupdatetrace.cfg
    echo "##### END SECTION firmware update trace"
fi

echo "##### BEGIN SECTION box firmware update check log"
echo updatecheck.first
cat /var/updatecheck.first
echo updatecheck.old
cat /var/updatecheck.old
echo updatecheck.log
cat /var/updatecheck.log
echo "##### END SECTION box firmware update check log"

# -------------------------------------------------------

echo
echo "##### BEGIN SECTION CRASHLOG /proc/avm/log_sd"
echo "=========="

if [ -d /proc/avm/log_sd ]; then
    for file in /proc/avm/log_sd/crash* ; do
        if [ -f $file ]; then
            echo
            echo "BEGIN SECTION '$file'"
            echo "----------"
            cat $file
            if [ $? -ne 0 ] ; then
                echo "$file no data"
            fi
            echo "----------"
            echo "END SECTION '$file'"
        fi
    done
fi

echo "=========="
echo "##### END SECTION CRASHLOG"

echo

echo "##### BEGIN SECTION PANICLOG /proc/avm/log_sd"
echo "=========="
if [ -d /proc/avm/log_sd ]; then
    for file in /proc/avm/log_sd/panic* ; do
        if [ -f $file ] ; then
            echo
            echo "BEGIN SECTION '$file' "
            echo "----------"
            cat $file
            if [ $? -ne 0 ]; then
                echo "$file no data"
            fi
            echo "----------"
            echo "END SECTION '$file'"
        fi
    done
fi
echo
echo "=========="
echo "##### END SECTION PANICLOG"

if is_puma_na_atom ; then
    echo "##### BEGIN SECTION PUMA ARM Supportdata"
    if [ "$enhanced" = y ] ; then
        aicmd pumaglued support get enhanced
    else
        aicmd pumaglued support get normal
    fi
    echo "##### END SECTION PUMA ARM"
fi

echo "##### END SECTION Support_Data"
echo End Of Support Data
 

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
13,410
Punkte für Reaktionen
1,129
Punkte
113
Ich glaube, wir schreiben aneinander vorbei. Die "/bin/supportdata" ist nur das (Shell-)Skript, was von der Firmware aufgerufen wird, wenn es gilt, eine (Text-)Datei mit den Support-Daten zu erstellen (fritz.box/support.lua). Hattest Du tatsächlich noch nie mit der Support-Datei irgendwelche Berührung, sagt Dir das so gar nichts?

Also noch einmal ganz deutlich:

1. die verwendete Konfigurationsdatei und zwar die komprimierte Variante
2. den INHALT der Support-Datei, ausgelesen über den Link am Ende des ersten Satzes in diesem Beitrag

Wobei bei der Support-Datei nur der Abschnitt "SECTION PANICLOG" interessiert (und ggf. noch "CRASHLOG", wenn der nicht leer sein sollte) ... da stehen zwar ggf. auch ein paar wenige "boxspezifische" Daten drin (u.U. eine MAC-Adresse), aber an denen solltest Du nichts ändern.
 

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
13,410
Punkte für Reaktionen
1,129
Punkte
113
hatte ich dir geschickt
Keine Ahnung, wie und wohin das gewesen sein soll ... selbst unter meinen (hier bekannten) E-Mail-Adressen habe ich nichts empfangen.

Aber das wäre ohnehin der falsche Weg - wie weiter oben schon geschrieben, will ich mit meinen Hinweisen keine "Verpflichtung" eingehen und das wäre ein Protokoll, was mir irgendwie anders zugeht (und damit auch nur mir), als über das IPPF und diesen Thread hier, offensichtlich durchaus ... und zwar eben eine "ungewollte".

Was man für den ersten Schritt bräuchte (das ist ja "ein Prozess"), hatte ich in #13 ja noch einmal "aufgezählt".

EDIT:
Es ist vollkommen Wumpe, mit welcher FRITZ!OS-Version die "panic.log" (so hieß die halt früher, als sie noch nicht über das "procfs" ausgelesen wurde, sondern über einen TFFS-Node - was vermutlich auch heute noch gehen würde und dann sogar mehrfaches Lesen erlauben sollte) erstellt wurde ... entscheidend ist, daß sie das Protokoll vom Absturz unter 07.2x enthält und das tut sie, solange es danach keinen weiteren Absturz (bzw. keine weitere "kernel panic") gab.

EDIT2:
Zwischendrin wurde der Inhalt der "panic" auch mal als /proc/avm_panic_sd bereitgestellt ... daher auch der Hinweis weiter vorne in diesem Thread (in irgendeinem Beitrag weiter oben), daß man da in der /bin/supportdata nachsehen muß/sollte, wie das in einer bestimmten Version auszulesen ist, wenn man es von Hand machen wollte.

EDIT3:
Auch wenn da offenbar nichts mehr kommt (ist ja auch schon spät), habe ich mir das noch einmal angesehen, wie @cuma das mit dem Start über den "supervisor" umgesetzt hat.

Ich würde hier - in einem ersten Versuch - den Start der "rc.mod" erst einmal vom Start des Services entkoppeln. Im Moment ist es ja so, daß da ein zusätzlicher Service rcmod.service eingerichtet wird (https://github.com/Freetz-NG/freetz-ng/blob/master/patches/scripts/115-systemd-services.sh) und dem "supervisor" vermittelt wird (über den "[Install]"-Abschnitt), daß für das Erreichen des (angestrebten) Zustands "multi-user.target" auch dieser Service zu starten wäre. Das würde ich als Erstes aufweichen ... einfach durch Entfernen dieses Zusammenhangs.

Danach wird aber vermutlich dieser Service nicht mehr automatisch gestartet ... und man muß sich einen Weg suchen, das dann eben an einer anderen Stelle nachholen zu lassen, denn meine Annahme, daß mittlerweile der "supervisor" auch entscheidet, wann der Systemstart "durch" ist und der Watchdog deaktiviert werden kann, dürfte zutreffen - wie ich mittlerweile anhand der vom "supervisor" importierten Funktionen aus der "libwdt.so" geprüft habe.

Entscheidend dürfte auch hier sein, daß man sich an einen existierenden Service hängt und auch wenn inzwischen "debug.service" schon früher abgearbeitet wird (der startet dann die /etc/boot.d/core/tail), so wäre eben diese Datei immer noch ein passabler Ort für den Start des "Freetz-Mod" - nur eben asynchron zum Rest des Systemstarts und das sollte eigentlich möglich sein, wenn man - aus der erwähnten /etc/boot.d/core/tail heraus - das einfach über ein svctl start rcmod in der letzten Zeile veranlaßt.

Vielleicht muß man dann noch andere Dinge in der "rc.mod" ändern, wenn es weitere Abhängigkeiten von AVM-Services geben sollte, die bei der ehemaligen, sequentiellen Start-Methode bereits aktiv waren und nunmehr - der "supervisor" startet die Dienste ja parallel, wie es aussieht, oder zumindest unabhängig innerhalb des jeweiligen Targets - erst später verfügbar werden. Welche Abhängigkeiten zwischen den definierten Services bestehen, kann man sich übrigens über ein supervisor -p /lib/systemd/system anzeigen lassen. Wird das mit dem Warten zu kompliziert (den Status der Services kann man sich wieder mit svctl status ausgeben lassen), muß man sich eben ein späteres Skript suchen, aus dem heraus man den eigenen Service starten kann - aber in jedem Falle sollte dieser Start asynchron zum "supervisor" arbeiten und das macht er derzeit nicht, wenn da aus dem Service-File heraus die "99-zzz-rcmod" aufgerufen wird, die dann ihrerseits die "rc.mod" über das "dot command" (in "bash" gibt's das auch noch als "source", aber der Punkt ist POSIX-kompatibel) einschließt.

Ich habe jedenfalls in "modfs" den Start der "rc.user" (das ist ja ein ähnliches Problem) über ein "nohup" vom "supervisor" entkoppelt (https://github.com/PeterPawn/modfs/blob/master/modscripts/mod_rc_tail_sh#L50), so daß der recht schnell die Info erhält: "Der Service wurde gestartet." (aka "ExecStart" wurde beendet).

Schaut man sich die AVM-Services an, gibt es dort eben keinen Dienst, der mit einer Shell-Datei als Basis "durchläuft" ... alles das, was dort als "Dauerläufer" registriert ist, ist auch ein "echter Daemon", der seinerseits selbst dafür sorgt, daß er sich vom "controlling terminal" abkoppelt (detached), indem er einen zweiten Thread im Hintergrund startet, der nicht an diesem Terminal hängt. Genau das macht aber ein Shell-Skript üblicherweise nicht ... und auch das "nohup"-Applet der BusyBox bewirkt ja nur das Abkoppeln des darüber gestarteten Programms vom Eltern-Prozess - die Shell-Instanz, die das "nohup" aufgerufen hat, hängt weiter in der Prozesskette und sollte/muß sich alsbald sauber beenden/zurückmelden beim "supervisor".

Daher müßte das auch mit einem "svctl" funktionieren ... das sollte auch nur den "supervisor" zum Start des Dienstes veranlassen und danach (wenn die Parameter nicht kompletter Quatsch waren, auch mit einem Exit-Code von 0) geht es dann weiter in dem Shell-Skript, wo das "svctl" aufgerufen wurde.

Das ist - mit Blick auf Freetz(-NG) - jetzt erst mal ins Unreine gedacht ... ggf. müßte man da noch etwas drauf herumdenken - aber einen Versuch kann man ja trotzdem starten, denn wenn da tatsächlich (ohne den Patch für den Watchdog) kein "Initialisierung beendet" gemeldet wird vom "supervisor", muß das ja seinen Grund haben und da ich das in "modfs" ja genauso gelöst habe (mit der Definition und dem Start des Services "rcuser.service") und damit der "supervisor" das offenbar trotzdem richtig umsetzt, kann es eigentlich nur irgendwo in der Start-Methode für die "rc.mod" seine Ursache haben.

Denn nach dem, was man in dem Gist sieht, ist die Initialisierung der AVM-Komponenten eigentlich schon lange durch - der Start der WLAN-Komponenten erfolgt asynchron und in den letzten 50 Sekunden vor dem Watchdog, die von dem Protokoll nur abgedeckt werden, ist von anderen Komponenten gar nichts mehr zu sehen - üblicherweise ein sicheres Zeichen, daß das bis Sekunde 85 (ab Kernel-Boot, der Watchdog startet später erst, wenn das Root-FS gemountet ist und "sysinit" loslegt) alles schon erledigt wurde.

Und noch mal zu dem Protokoll - das muß man auch erst mal finden ... dieses nachträgliche Editieren ist zwar "gefordert" von den Forenregeln, aber auch eine Unsitte in so einem Dialog mit eher kurzen "Antwortzeiten", weil kein Mensch nach einer weiteren Antwort erst noch einmal die Beiträge davor durchsucht, ob sich da - obendrein während er selbst schon beim Schreiben war - noch irgendetwas geändert hat. Wenn man so etwas macht, sollte man es im weiteren Verlauf wenigstens noch einmal erwähnen ... ich habe das in #8 eher durch Zufall gefunden bzw. weil ich überlegt habe, was Du mit "Dir geschickt" meinen könntest. Auf die Idee, daß damit ein Gist gemeint sein könnte, wäre ich aber auch im Traum nicht gekommen.

EDIT4:
Witzig ... der JS-Code hat mir jetzt erst "mitgeteilt", daß da vor 46 Minuten ein weiterer Beitrag verfaßt wurde - damit kann ich aber jetzt "meine Methode" (das alles in einem neuen Beitrag noch einmal zu schreiben und dafür den vorhergehenden löschen) auch vergessen, weil das die Abfolge der Beiträge durcheinander bringt.

Aber was soll's ... ich schmeiße den ersten Beitrag dann jetzt doch weg - mit etwas Pech faßt ein Moderator dann Deine beiden zusammen, weil sie hintereinander stehen.
 
Zuletzt bearbeitet:

NDiIPP

IPPF-Promi
Mitglied seit
13 Apr 2017
Beiträge
3,721
Punkte für Reaktionen
678
Punkte
113
Es ist nicht mehr möglich in der make menuconfig den AVM Watchdog zu aktivieren, wenn man die 7590 + 7.21 ausgewählt hat.
Ja. Weshalb das @fda89 fest voreingestellt hat für die 7590 verstehe ich auch nicht. Sollte ja nur eine Notlösung sein. Aber anstatt die .config manuell anzupassen kann man auch die Datei ./freetz-ng/config/ui/firmware.in entsprechend anpassen, sodass die Watchdog-Option im Menü bei der 7590 wieder standardmäßig deaktiviert ist, aber bei Bedarf auch aktivierbar ist:
Diff:
@@ -445,7 +445,7 @@
     config FREETZ_TYPE_7590
         depends on FREETZ_SERIES_ALL || FREETZ_SERIES_4N5
         select FREETZ_AVM_SOURCE_FOR_SYSTEM_TYPE_GRX5
-        select FREETZ_PATCH_DISABLE_AVM_WATCHDOG if FREETZ_TYPE_FIRMWARE_07_2X
+#        select FREETZ_PATCH_DISABLE_AVM_WATCHDOG if FREETZ_TYPE_FIRMWARE_07_2X
         bool "7590"

     comment "Powerline"
Siehe auch die entsprechende Änderung in freetz-ng dazu:
https://github.com/Freetz-NG/freetz-ng/commit/cb329c7e4a9eae8c54d84e1067be2ef7794f9305
 

JokerGermany

Mitglied
Mitglied seit
7 Aug 2007
Beiträge
552
Punkte für Reaktionen
5
Punkte
18
Wenn es dein Fels in der Brandung ist, dann verstehe ich nicht warum du "Beta"-Software drauf flashen willst.
Der aktuelle trunk ist eben kein "Stable" und somit wird dir keiner einen 100% Betrieb bestätigen.
Mir ist klar, das ein trunk keine "Stable" ist.
Allerdings gibt es verschiedene Auffassungen von "Stable" und bei Freetz hatte ich immer den Eindruck von gewissenhaften Arbeit und war daher gerne bereit diesen Spagat mit zu gehen, wenn ich dafür die neueste AVM Version bekommen habe.

Ja. Weshalb das @fda89 fest voreingestellt hat für die 7590 verstehe ich auch nicht. Sollte ja nur eine Notlösung sein.
Ich weiß das hier alle ehrenamtlich in ihrer Freizeit arbeiten und ziehe davor auch meinen Hut, aber genau wegen sowas bin ich kein Fan von Freetz-NG.
Statt Noobs wie mich zu warnen, "Achtung, hier ist noch ein Problem, welches nicht gelöst ist, mehr infos in github.", wird der Anschein erweckt, dass alles Klasse ist.
Für so etwas zentrales wie einen Router ist das meiner Meinung nach Gift und sorgt auch nicht unbedingt dafür, dass man Bugtester findet um das Problem zu lösen...
 
Zuletzt bearbeitet:

fda89

Mitglied
Mitglied seit
31 Aug 2020
Beiträge
346
Punkte für Reaktionen
51
Punkte
28
Die Sache mit dem Watchdog betrifft nur 7590 und Firmware 7.2x, also nur NG. Dass mal jemand das Problem analysieren sollte ist klar. Ich hab aber keine 7590 zum spielen zur Verfügung. Möglicherweise existiert das Problem auch nur mit 7.20 und bei 7.21 ists okay? Mir fiel im Log auf dass AVM ab und an einen "MOBILED" nicht finden würde.
Der "bugfix" basiert lediglich auf Rückmeldungen, ich vermute dass da auch einige dabei waren die selbst ein Image gebaut haben, nicht nur DEB-user (das DEB-Addon hat einen eigenen Watchdog der gern mal spontan Reboots auslöst)

Die Schlußfolgerung, daß jede FRITZ!Box mit Freetz-NG, die mit 07.2x innerhalb der Initialisierung einen Reboot hinlegt, auch exakt dasselbe Problem haben müsse, ist ja Pipifax
Nicht nur das, es trifft auf die gesammte Schlussfolgerung zu.

supervisor: Da es nur genau diese 1 Box betrifft, würde ich vermuten dass es nichts mit dem supervisor zu tun hat. (Ich speicher mir die Befehle oben trotzdem für später).

Für den Anfang könnte man den Watchdog-Patch wie @NDiIPP schrieb deaktivierbar machen und deaktivieren.
Dann schauen ob mit 7.21 das Problem überhaupt noch existiert
Und falls ja mal wie von PeterPawn geschrieben die 2 Minuten hochsetzen, vielleicht auf 5
 

JokerGermany

Mitglied
Mitglied seit
7 Aug 2007
Beiträge
552
Punkte für Reaktionen
5
Punkte
18
1. Hast du mir meinen Gist überhaupt mal angeschaut? Es war ein 7.21 ...
2.
[...], ich vermute dass da auch einige dabei waren die selbst ein Image gebaut haben, nicht nur DEB-user (das DEB-Addon hat einen eigenen Watchdog der gern mal spontan Reboots auslöst)[...]
Was ist das denn für eine Argumentation? Man kann nicht alles auf DEB-User schieben.
Alleine das "auch einige dabei waren" zeigt doch, dass ein DEB-Addon nicht das Problem sein sollte?!? oO
 
  • Like
Reaktionen: prisrak1

gismotro

Mitglied
Mitglied seit
5 Sep 2007
Beiträge
429
Punkte für Reaktionen
68
Punkte
28
Gestern wurde ein gleichgelagertes Reboot-Problem bei der 6890_7.21 im DEB gemeldet.
Nachdem auch dort anscheinend der Watchdog testweise im Image deaktiviert wurde, lief die Box wieder stabil.
Nähere Infos konnte ich den Beiträgen leider nicht entnehmen.
 
  • Like
Reaktionen: prisrak1