Freetz FritzBox 7570

soso

Mitglied
Mitglied seit
17 Mai 2005
Beiträge
428
Punkte für Reaktionen
1
Punkte
18
Richtig, Ich hatte mich vertippt. Es war die Freetz-Version 1.1.4 nicht 1.4.1.
 

soso

Mitglied
Mitglied seit
17 Mai 2005
Beiträge
428
Punkte für Reaktionen
1
Punkte
18
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?
 

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
12,511
Punkte für Reaktionen
846
Punkte
113
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?
 

soso

Mitglied
Mitglied seit
17 Mai 2005
Beiträge
428
Punkte für Reaktionen
1
Punkte
18
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:
[email protected]:/# find -name rc.uvncrepeater
./etc/init.d/rc.uvncrepeater
[email protected]:/# cd ./etc/init.d
[email protected]:/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
[email protected]:/etc/init.d# chmod a+x rc.uvncrepeater
chmod: rc.uvncrepeater: Read-only file system
[email protected]:/etc/init.d# chmod u+x rc.uvncrepeater
chmod: rc.uvncrepeater: Read-only file system
[email protected]:/etc/init.d#
 

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
12,511
Punkte für Reaktionen
846
Punkte
113
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.
 

soso

Mitglied
Mitglied seit
17 Mai 2005
Beiträge
428
Punkte für Reaktionen
1
Punkte
18
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:

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
12,511
Punkte für Reaktionen
846
Punkte
113
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.
 

soso

Mitglied
Mitglied seit
17 Mai 2005
Beiträge
428
Punkte für Reaktionen
1
Punkte
18
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:
[email protected]:/etc/init.d# rc.uvncrepeater status
running
[email protected]:/etc/init.d# rc.uvncrepeater stop
Stoping uvncrepeater...done.
[email protected]:/etc/init.d# rc.uvncrepeater status
stoped
[email protected]:/etc/init.d# rc.uvncrepeater start
adduser uvncrep...adduser: user 'uvncrep' in use
Starting uvncrepeater...done.
[email protected]:/etc/init.d# rc.uvncrepeater status
running
[email protected]:/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:
[email protected]:/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
[email protected]:/var/mod/etc/reg#
Ich muss also nur noch den Eintrag unter Statisch Pakete hinbekommen. Weiss jemand wie das geht?
 

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
12,511
Punkte für Reaktionen
846
Punkte
113
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/blob/master/make/mod/files/root/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).
 

soso

Mitglied
Mitglied seit
17 Mai 2005
Beiträge
428
Punkte für Reaktionen
1
Punkte
18
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
 

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
233,952
Beiträge
2,040,585
Mitglieder
353,150
Neuestes Mitglied
Bruenka