Freetz FritzBox 7570

Richtig, Ich hatte mich vertippt. Es war die Freetz-Version 1.1.4 nicht 1.4.1.
 
So ich hab mal das rc.ultravncrepeater angepasst:
Code:
#!/bin/sh

DAEMON=repeater
DAEMON_CONF=/tmp/flash/uvncrepeater.ini
DAEMON_LOG=/var/log/uvncrepeater.log
. /etc/init.d/modlibrc

init() {
        echo "copy uvncrepeater.ini to $DAEMON_CONF"
        cp /etc/uvncrepeater.ini $DAEMON_CONF
        }

start() {
        echo -n 'adduser uvncrep...'
        adduser -D -H uvncrep
        if [ ! -r /tmp/flash/uvncrepeater.ini ]; then
                init
        fi
        echo -n 'Starting uvncrepeater...'
        if [ -z "$(pidof "$DAEMON")" ]; then
                $DAEMON $DAEMON_CONF > $DAEMON_LOG 2>&1 &
                exitval=$?
                if [ "$exitval" -eq 0 ]; then
                        echo 'done.'
                else
                        echo 'failed.'
                fi
        else
                echo "$DAEMON is already running"
        fi
}

stop() {
        echo -n 'Stoping uvncrepeater...'
        killall $DAEMON > /dev/null 2>&1
        exitval=$?
        if [ "$exitval" -eq 0 ]; then
                echo 'done.'
        else
                echo 'failed.'
                exit $exitval
        fi
}

case "$1" in
   ""|load)
       modreg daemon $DAEMON
       ;;
   unload)
       modunreg daemon $DAEMON
       modlib_stop
       ;;
   start)
       modlib_start
       ;;
   stop)
       modlib_stop
       ;;
   restart)
       modlib_stop
       sleep 1
       modlib_start
       ;;
   status)
                if [ -z "$(pidof "$DAEMON")" ]; then
                        echo 'stoped'
                else
                        echo 'running'
                fi
                ;;
   reset)
                if [ ! -z "$(pidof "$DAEMON")" ]; then
                        stop
                fi
                init
                start
                ;;
   *)
                echo "Usage: $0 [start|stop|restart|status|reset]" 1>&2
                exit 1
                ;;
esac

exit 0
Leider habe ich noch immer keinen Eintrag im Menü unter Status -> Services -> Static Packages.
Mir ist bei der Suche aber aufgefallen, dass das funktionierende Plugin auf Basis von Freetz-1.1.4 auf einer FritzBox-7170 einen Eintrag : /var/mod/etc/init.d/rc.uvncrepeater hat. Der ist bei dem nicht funktionierenden Plugin auf der Speedport W920v nicht vorhanden.
Kann es daran liegen?
 
Ich sehe da nicht einen Eintrag zum "modreg cgi" (bzw. für ein "modreg status")?

Hast Du Dir die entsprechenden Stellen im Wiki (https://freetz.github.io/wiki/help/howtos/development/create_gui.html) wenigstens mal angesehen?

Wie sehen denn die diversen "*.reg"-Dateien am Ende aus, wenn Dein Skript sein "load" (bzw. den Aufruf ohne Parameter, was bei Freetz ja "load" impliziert und nicht "start") gekriegt hat?
 
Natürlich habe ich mir die Anleitung angesehen.
Das uvncrepeater-Plugin hat kein cgi. Die Konfigurationsdatei uvncrepeater.ini wird in der Regel nicht geändert. Wenn doch mal eine Änderung notwendig ist mache ich das mit vi und anschließendem modsave flash. Ist denn ein cgi unbedingt notwendig damit der uvncrepeater unter Static packages auftaucht? Bei meiner alten Version auf Basis von Freetz 1.1.4 war das nicht notwendig. Der uvncrepeater taucht in keiner .reg auf. Hab deshalb mal suchen lassen und siehe da, das rc.uvncrepeater hat keine Berechtigung zum Ausführen! Im make-Verzeichniss hatte er die noch. Ich kann die Berechtigung auch nicht manuell setzen.

Telnet der gefreetzten Box:
Code:
root@fritz:/# find -name rc.uvncrepeater
./etc/init.d/rc.uvncrepeater
root@fritz:/# cd ./etc/init.d
root@fritz:/etc/init.d# ls -l
-rw-r--r--    1 root     root           689 Jan 28 17:31 modlibfw
-rw-r--r--    1 root     root          3005 Jan 28 17:31 modlibinetd
-rw-r--r--    1 root     root         10630 Jan 28 17:31 modlibrc
-rwxrwxrwx    1 root     root         74569 Jan 29 01:51 rc.S
-rwxrwxrwx    1 root     root           249 Feb 10  2014 rc.audiod.sh
-rwxrwxrwx    1 root     root          3036 Feb 10  2014 rc.chrony
-rwxrwxrwx    1 root     root         14077 Jan 29 01:51 rc.conf
-rwxr-xr-x    1 root     root           734 Jan 28 17:31 rc.crond
-rwxrwxrwx    1 root     root          6405 Feb 10  2014 rc.dsl.sh
-rwxr-xr-x    1 root     root          2263 Jan 28 17:31 rc.dsld
-rwxr-xr-x    1 root     root          1502 Jan 28 17:31 rc.ftpd
-rwxr-xr-x    1 root     root           934 Jan 29 01:51 rc.inetd
-rwxr-xr-x    1 root     root          5127 Jan 29 01:51 rc.mod
-rwxr-xr-x    1 root     root          4227 Jan 28 17:31 rc.multid
-rwxrwxrwx    1 root     root          9409 Jan 29 01:51 rc.net
-rwxrwxrwx    1 root     root           394 Feb 10  2014 rc.pictured.sh
-rwxrwxrwx    1 root     root           252 Feb 10  2014 rc.preaudio.sh
-rwxrwxrwx    1 root     root          8707 Feb 10  2014 rc.ptest.sh
-rwxr-xr-x    1 root     root           861 Jan 29 01:51 rc.rtc.sh
-rwxr-xr-x    1 root     root           395 Jan 28 17:31 rc.smbd
-rwxr-xr-x    1 root     root          1576 Jan 28 17:31 rc.swap
-rwxr-xr-x    1 root     root          2674 Jan 29 01:51 rc.syslogd
-rwxr-xr-x    1 root     root          1448 Jan 28 17:31 rc.telnetd
-rwxrwxrwx    1 root     root           348 Feb 10  2014 rc.usbhost
-rw-r--r--    1 root     root          1804 Jan 28 22:24 rc.uvncrepeater
-rwxrwxrwx    1 root     root         13023 Feb 10  2014 rc.vdsl.sh
-rwxrwxrwx    1 root     root          1057 Feb 10  2014 rc.voip
-rwxr-xr-x    1 root     root           956 Jan 28 17:31 rc.webcfg
-rwxr-xr-x    1 root     root         56842 Feb 10  2014 rc.wlan
root@fritz:/etc/init.d# chmod a+x rc.uvncrepeater
chmod: rc.uvncrepeater: Read-only file system
root@fritz:/etc/init.d# chmod u+x rc.uvncrepeater
chmod: rc.uvncrepeater: Read-only file system
root@fritz:/etc/init.d#
 
Ist denn ein cgi unbedingt notwendig damit der uvncrepeater unter Static packages auftaucht?
Ich bin mir zwar auch nicht sicher, aber deshalb habe ich Dich ja auf den Inhalt von "modreg" aufmerksam machen wollen.

Ich verstehe anhand der Beschreibung auch nicht so richtig, wo Du das Paket nun im GUI sehen kannst und wo nicht bzw. was Dir da noch fehlt. Auch wenn ich kein Freund von Bildern (als Selbstzweck) bin, wäre hier ein solches vermutlich hilfreich ... oder eine absolut exakte Beschreibung, wo es fehlt.

Es gibt ja die "status.reg" und durch den Vergleich der Pakete, die unter "Status -> Service" irgendwo bei Dir angezeigt werden, mit denen, die in dieser Anzeige fehlen, solltest Du ja erkennen können, welche Registrierung (der Blick in "modreg" zeigt ja noch ein paar zusätzliche Möglichkeiten, das "modreg daemon" ändert - im Gegensatz z.B. zum "modreg cgi", das zwei andere Registrierungen aufruft - auch nur eine Datei, soweit ich das beim (eher flüchtigen) Blick in die Datei gesehen habe) Deinem Paket nun noch fehlen könnte, damit das am Ende so aussieht, wie Du es erwartest.

Mir ist bei der Suche aber aufgefallen, dass das funktionierende Plugin auf Basis von Freetz-1.1.4 auf einer FritzBox-7170 einen Eintrag : /var/mod/etc/init.d/rc.uvncrepeater hat. Der ist bei dem nicht funktionierenden Plugin auf der Speedport W920v nicht vorhanden.
Das ist z.B. ein Satz, der für mich in diesem Thread überhaupt keinen Sinn ergibt ... erstens ist hier wieder von einem Freetz-1.1.4 die Rede und ich weiß immer noch nicht, ob das nun die Versionsnummer eines alten Freetz-Standes oder die Version von "freetz-linux" (also der VM, die für den Einsatz mit Freetz vorbereitet wurde) sein soll.

Auch ist bisher nirgendwo von einem Speedport W920v die Rede gewesen und was bitte schön ist denn hier mit "Plugin" gemeint? Das ist ja - auch im Zusammenhang mit FRITZ!OS und Freetz - ein "stehender Begriff" und bezeichnet ein TAR-File mit nachladbarem Content. Meinst Du hier vielleicht doch eher ein "Package"? Woher kommt denn nun plötzlich ein W920v in dieser Story und welches "Plugin" (oder "Package") arbeitet bei dem dann nicht, obwohl es (in welcher Firmware eigentlich) installiert wäre?

Ich kann Dir also irgendwie nicht so richtig folgen und das galt partiell schon für #22 (daher auch eher "allgemeine Hinweise", wo man nachsehen könnte/sollte) - wobei natürlich das Init-Skript für das Paket schon mal ausführbar sein sollte. Wieso das jetzt nicht richtig funktionieren sollte (außer es handelt sich um den bekannten "fakeroot"-Fehler, weil Du nach dem Auspacken der Dateien unter "fakeroot"-Steuerung noch an ihnen herumgeändert hast), kann man auch nur "raten" ... ich glaube aber nicht, daß von der Freetz-Toolchain irgendetwas eingepackt wurde, was nicht so auch in "build/modified" gestanden hätte.
 
Ich hatte im Jahr 2005 mit Ach und Krach mein erstes und bisher einziges Freet-Paket für eine FritzBox 7170 erstellt: https://www.ip-phone-forum.de/threads/ultravnc-repeater.211025/
Das basierte auf freetz-1.1.4. Dabei hatte ich kein eigenes GUI für den uvncrepeater. Trotzdem taucht unter den Statische Pakete der uvncrepeater auf:
freetz-1.1.4.jpg
Jetzt muss ich wegen der Umstellung auf IP-Anschluss die FritzBox wechseln. Dazu habe ich mir vor einem Jahr ein Speedport W920v besorgt und auf die Firmware der FritzBox 7570 umgestellt. Daher auch der etwas missverständliche Titel.
Wenn ich die Firmware der Speedport jetzt mit dem unveränderten uvncrepeater freetz Paket erzeuge taucht der uvncrepeater nicht mehr unter static packages auf. Diesen Eintrag finde ich ganz praktisch da man auf einen Blick sehen kann ob der uvncrepeater läuft und man ihn auch starten oder stoppen kann:
freetz-devel-15014.jpg
Muss ich in irgendeiner Konfigurations-Datei bei der neuen freetz-Version jetzt noch was ergänzen?

Ferner verstehe ich nicht wiso das /etc/init.d/rc.uvncrepeater in der Firmware nicht ausführbar ist, obwohl ich es im freetz-make Verzeichniss durch chmod ausführbar gemacht habe. Ich werde aber noch mal das gesammte uvncrepeater-Paket löschen und komplett neu machen.

//edit by stoney: Bilder geschrumpft
 
Zuletzt bearbeitet von einem Moderator:
Ferner verstehe ich nicht wiso das /etc/init.d/rc.uvncrepeater in der Firmware nicht ausführbar ist, obwohl ich es im freetz-make Verzeichniss durch chmod ausführbar gemacht habe.
Die einfachste Erklärung dafür wäre es schon mal, daß diese Änderung (nur ein "chmod") keine ist, die dazu führen würde, daß eine Datei als "neuer" angesehen wird. Daher kann es gut sein, daß die Datei nach dem Ändern der Flags gar nicht erneut kopiert wurde.

Um solche Sachen sehen zu können, gehört zu einem Freetz-Problem einmal die verwendete Konfigurationsdatei (ich bin mir immer noch nicht sicher, ob hier tatsächlich der Freetz-Master zum Einsatz kommt oder irgendeine uralte "stable"-Version - es gibt aber einige Settings, an denen man das festmachen könnte in der ".config") und - sofern es ein Problem ist, was seine Ursachen vermutlich im Build-Prozess hat - auch das passende Protokoll für den Build ... und zwar auch mit entsprechend gesetzter "Geschwätzigkeit".

In #11 sorgst Du selbst für erhebliche Verwirrung ... Du wirfst einfach munter die Versionsnummern von Freetz (hier wohl die 1.1.4, die wahrlich "historisch" zu nennen wäre) und die Versionnummern für "freetz-linux" durcheinander (letzteres fing bei Dir hier im Thread mit 1.2.1 an und ging jetzt wohl bis 1.4.1 - hoffentlich mit entsprechenden "dist-upgrade"-Aktualisierungen).

Irgendwo weiter vorne wurde Dir bereits der Hinweis gegeben, daß Du besser auf den Freetz-Trunk (aka "Freetz-Master" bzw. der Branch "master" im GitHub-Repo "Freetz/freetz") wechseln solltest, weil die alten Stable-Stände ggf. auch irgendwelche alten (und gar nicht mehr erhältlichen) Pakete als Quellen referenzieren. Schon seit Jahren (auch wenn Du das vielleicht nicht mitbekommen hast seit 2005) lautet die Empfehlung so ... selbst wenn es sich um eine (ebenfalls) uralte FRITZ!Box handeln sollte.

Der aktuelle Freetz-Master hat gar keine "Versionsnummer" - was aber nichts daran ändert, daß inzwischen (leider muß ich meinerseits betonen) auch die alten Stände wieder ihren Eingang in das aktuelle Freetz-Repo gefunden haben und es damit dort genauso unübersichtlich machen, wie das zuvor im SVN-Repo der Fall war. Da kannst Du zwar nichts dafür, aber Du kannst Dir ja auch einfach mal die alten Diskussionen hier im Board durchlesen und nicht erwarten, daß sich jetzt unbedingt jemand findet, der die letzten 13 Jahre der Freetz-Entwicklung noch einmal für Dich zusammenfaßt. Die meisten dürften daran nämlich kein Interesse haben und auch Dir kann man eigentlich nur raten, entweder die alten "Kenntnisse" zu vergessen (oder sie zumindest nicht als Primärquelle anzusehen) und Dich neu einzuarbeiten oder Du mußt wohl doch in den sauren Apfel beißen und die Entwicklungen an Freetz zwischen 2005 und 2011 (ungefähr da war die aktuell immer noch verwendete Toolchain dann "festgeklopft") nachträglich eruieren, damit Deine alten Kenntnisse (nach Aktualisierung) zur neuen Freetz-Version passen.
 
Ich hab noch mal das komplette freetz mit dem original rc.uvncrepeater aus post #16 neu installiert Das rc.uvncrepeater ist jetzt ausführbar und scheint auch zu funktionieren.
telnet der gefreetzten Box:
Code:
root@fritz:/etc/init.d# rc.uvncrepeater status
running
root@fritz:/etc/init.d# rc.uvncrepeater stop
Stoping uvncrepeater...done.
root@fritz:/etc/init.d# rc.uvncrepeater status
stoped
root@fritz:/etc/init.d# rc.uvncrepeater start
adduser uvncrep...adduser: user 'uvncrep' in use
Starting uvncrepeater...done.
root@fritz:/etc/init.d# rc.uvncrepeater status
running
root@fritz:/etc/init.d#
Ich habe aber immer noch keinen Eintrag unter Statische Pakete (post #26). Ich konnte aber in der ./var/mod/etc/reg/daemon.reg genau die Pakete identifizieren die auch im Bild 2 aus #26 auftauchen. in der Datei fehlt der rc.uvncrepeater:
Code:
root@fritz:/var/mod/etc/reg# cat daemon.reg
crond|crond|rc.crond|false|false|mod
dsld|dsld|rc.dsld|false|false|avm
ftpd|ftpd|rc.ftpd|false|false|avm
inetd|inetd|rc.inetd|false|false|inetd
multid|multid|rc.multid|false|false|avm
swap|swap|rc.swap|false|false|mod
syslogd|syslogd|rc.syslogd|false|false|syslogd
telnetd|telnetd|rc.telnetd|false|false|avm
webcfg|webcfg|rc.webcfg|false|false|mod
root@fritz:/var/mod/etc/reg#
Ich muss also nur noch den Eintrag unter Statisch Pakete hinbekommen. Weiss jemand wie das geht?
 
Genau dafür ist ja nun der Aufruf von "modreg daemon ..." gedacht (https://github.com/Freetz/freetz/blob/master/make/mod/files/root/usr/bin/modreg#L111) ... da man den auch "von Hand" ausführen kann und sich den Zustand der "daemon.reg" davor und danach ja ebenfalls ansehen kann (notfalls sogar das "modreg" mit "sh -x ..." aufrufen könnte), solltest Du eigentlich dahinterkommen können, warum das bei Dir nicht das gewünschte Ergebnis zeitigt. Bei korrektem Inhalt der "daemon.reg" sollte das ja dann auch (in stat_lines(): https://github.com/Freetz/freetz/bl...t/usr/lib/mww/page.d/service/list_body.sh#L26) entsprechend in der Ausgabe generiert werden (auch das kann man "von Hand" aufrufen und sich die Ausgabe ansehen).
 
So, ich glaube das wars. Ich habe das rc.uvncrepeater noch mal verändert:
Code:
#!/bin/sh

export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/mod/sbin:/mod/bin:/mod/usr/sbin:/mod/usr/bin
export LD_LIBRARY_PATH=/mod/lib

DAEMON=repeater
DAEMON_CONF=/tmp/flash/uvncrepeater.ini
DAEMON_LOG=/var/log/uvncrepeater.log

init() {
   echo "copy uvncrepeater.ini to $DAEMON_CONF"
   cp /etc/uvncrepeater.ini $DAEMON_CONF
   }

start() {
   echo -n 'adduser uvncrep...'
   adduser -D -H uvncrep
   if [ ! -r /tmp/flash/uvncrepeater.ini ]; then
       init
   fi
   echo -n 'Starting uvncrepeater...'
   if [ -z "$(pidof "$DAEMON")" ]; then
       $DAEMON $DAEMON_CONF > $DAEMON_LOG 2>&1 &
       exitval=$?
       if [ "$exitval" -eq 0 ]; then
           echo 'done.'
       else
           echo 'failed.'
       fi
   else
       echo "$DAEMON is already running"
   fi
}

stop() {
   echo -n 'Stoping uvncrepeater...'
   killall $DAEMON > /dev/null 2>&1
   exitval=$?
   if [ "$exitval" -eq 0 ]; then
       echo 'done.'
   else
       echo 'failed.'
       exit $exitval
   fi
}

case "$1" in
   ""|load)
       modreg daemon 'uvncrepeater'
       start
       ;;
   unload)
       modunreg daemon 'uvncrepeater'
       stop
       ;;
   start)
       start
       ;;

   stop)
       stop
       ;;
   restart)
       stop
       sleep 1
       start
       ;;
   status)
       if [ -z "$(pidof "$DAEMON")" ]; then
           echo 'stopped'
       else
           echo 'running'
       fi
       ;;

   reset)
       if [ ! -z "$(pidof "$DAEMON")" ]; then
           stop
       fi
       init
       start
       ;;
   *)
       echo "Usage: $0 [start|stop|restart|status|reset]" 1>&2
       exit 1
       ;;
esac

exit 0
damit habe ich jetzt einen Eintrag unter Static packages:
freetz2.jpg
Ich kann den uvncrepeater auch starten, stoppen und restarten.
Ob der uvncrepeater dann auch korrekt funktioniert kann ich erst später testen. Dazu muss ich die Box erste komplett einrichten. Gegebenenfals melde ich mich dann noch mal.
Danke
 
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.