[Frage] Starten der FB7390 - Befehle in debug.cfg anpassen

m4ti

Neuer User
Mitglied seit
10 Sep 2013
Beiträge
33
Punkte für Reaktionen
0
Punkte
0
Hallo Leute,
zuerst einmal möchte ich sagen, dass ich im Linux/Fritzbox-Modding-Bereich noch ziemlicher Newbie bin und daher kaum Ahnung von Befehlen usw. hab, aber das Interesse ist da ;).

Es geht um meine Fritzbox 7390. Wir haben sie letztens, als wir zu easybell gewechselt sind mitgekauft, weil wir jetzt VoIP und nicht mehr analoges Telefonsignal bekommen. Ich habe auch schon die Downloadrate auf 2299 kbit/s hochgeschraubt, denn davor hat sich die Box immer langsamer synchronisiert (aber das ist in diesem Thread nicht wichtig).

Also direkt zu meiner Situation: Ich möchte gerne die Fritzbox-Oberfläche ein wenig bearbeiten (schon getan) und die WLAN-LED ausschalten.
Solange die Box nicht neu gestartet wird, geht auch alles so wie es soll, ABER wenn ich die Box neu starte sind natürlich alle Modifikationen weg.

Dazu habe ich bereits die home.lua bearbeitet und mir auch schon die passenden Befehle rausgesucht, um die Datei an die richtige Stelle zu bekommen. Für die LED muss ich den Befehl " /bin/led-ctrl wlan_off" verwenden, weil der "echo 4,1 > /var/led" bei mir nicht funktionieren will.

Jetzt mein Problem: Wie lasse ich die Befehle beim Start der Box automatisch ausführen (was muss ich in die debug.cfg eingeben)?
Ich würde die home.lua gerne vom internen NAS-Speicher laden, aber ein angeschlossener USB-Stick wäre auch noch Okay. Webspace wäre nicht so toll, denn dann werden die Befehle erst so spät ausgeführt.
Den LED-Befehl würde ich gerne direkt nachdem das WLAN fertig ist eingeben lassen (oder jedes mal, wenn sich die LED einschaltet, wenn das einfacher ist).

Ich bedanke mich schon mal bei euch :) (Aufgrund mangelnder Linux/Fritzboxkenntnisse kann ich Google-Ergebnisse kaum verwenden, daher die Frage)
 
Zuletzt bearbeitet:
Moin

Wichtig!

Bist du mit telnet auf der Box, nimm nvi /var/flash/debug.cfg zum editieren.

Ich bevorzuge Funktionsdefinitionen zum ansteuern der LEDs, aber das kann jeder halten wie er will.
Code:
all_off () {
led-ctrl dsl_nicht_verbunden=0
led-ctrl power_off
led-ctrl internet_abgebaut
led-ctrl dect_abgeschaltet
led-ctrl wlan_off
led-ctrl update_led1=0
return 0
}
...diese kann dann direkt nach definition aufgerufen werden...
Code:
all_off () {
led-ctrl dsl_nicht_verbunden=0
led-ctrl power_off
led-ctrl internet_abgebaut
led-ctrl dect_abgeschaltet
led-ctrl wlan_off
led-ctrl update_led1=0
return 0
}

all_off
...und jetzt das Ganze wohlgeformt als Inhalt der debug.cfg
Code:
#! /bin/sh
all_off () {
led-ctrl dsl_nicht_verbunden=0
led-ctrl power_off
led-ctrl internet_abgebaut
led-ctrl dect_abgeschaltet
led-ctrl wlan_off
led-ctrl update_led1=0
return 0
}

all_off
exit 0
...fertig.

Bei deiner Box können die Befehle variieren, mit led-ctrl -l kriegste deine LED Events (für die 7390) raus.
 
Zuletzt bearbeitet:
Danke euch beiden erst mal. :)
@doc456 Ich weiß, wie ich die debug.cfg editieren kann, aber nicht, was ich reinschreiben soll. :o

@koyaanisqatsi Damit schalte ich doch quasi alle LEDs aus, oder? Und "überschreiben" dann Befehle von der Box eigentlich die, der debug.cfg, oder bleibt die LED auch ausgeschaltet, wenn ich WLAN aus -> an mache. (ich hoffe man versteht, was ich meine.)
Ich werde das mal in die debug.cfg schreiben und ausprobieren.

Ist der NAS-Speicher eigentlich zeitig genug da, um die home.lua vom NAS nach /var/tmp/ zu bekommen, oder muss ich mir da was anderes überlegen?

Das steht bisher in der debug.cfg:
Code:
 /bin/led-ctrl wlan_off

#!/bin/sh

# Wartezeit, bis Speicher bereit ist
sleep 30

# Pruefen, ob Datei vorhanden ist, und mit entsprechenden Befehlen ausfuehren
if [ -f /var/InternerSpeicher/FRITZ/Systemdateien/home.cfg ]
then
# kopieren der Datei
cp /var/InternerSpeicher/FRITZ/Systemdateien/home.cfg /var/tmp/home.cfg
# mounten
mount -o bind /var/tmp/home.cfg /usr/www/avm/home/home.cfg
fi
Durch die erste Zeile greift die Datei nicht, oder?
 
Hab ich es richtig verstanden, dass die LED nicht ausgeht? Dann ist das vielleicht "zu früh", und du solltest einfach "ans Ende" stellen (dann kommt es erst nach den 30 Sekunden Pause ;-))

Zu den .lua-Dateien, die werden ja nur beim Aufrufen der Weboberfläche von einem Browser genutzt. Solange du also vor einem Zugriff was übermountest, sollte das gehen.
 
Zuletzt bearbeitet:
Ich setze mal den LED Befehl ganz ans Ende.
Ich sehe gerade, dass ich home.cfg eingegeben hab ... es muss natürlich home.lua heißen. Kein Wunder wenn es nicht geht :rolleyes:

Solange du also vor einem Zugriff was übermountest, sollte das gehen.
Das ist klar, aber wann ist denn der NAS bereit? Also wie groß sollte ich den Timer machen?
 
Im Zweifel hilft eine Schleife zum Warten, die sagen wir mal 10 mal versucht, ob das Nas fertig ist und wenn nicht jeweils 5 Sekunden wartet (kann beliebig in beide Richtungen angepasst werden).
Es sollte nur meiner Meinung nach eine Obergrenze für die Versuche geben, damit die debug.cfg auch beendet wird, wenn irgendwas mit dem angeschlossenen Speicher nicht stimmt.

So in der Art
Code:
# Wie oft warten? 
maxcount=10
# Wie lange pro Durchlauf warten?
time=5
# Welche Datei pruefen?
path="/var/InternerSpeicher/FRITZ/Systemdateien/home.lua"


waitforNAS(){
c=1
while ( ! [ -e $path ] && [ $c -lt $maxcount ] ); do 
	sleep $time
	c=$(( $c +1 )) 
done
if [ -e $path ]; then
	cp $path /var/tmp/home.lua
	return 0
else
	return 1
fi
}

# Im Hintergrund warten und bei Erfolg ueberladen		
(waitforNAS &&  mount -o bind /var/tmp/home.lua /usr/www/avm/home/home.lua ) &
 
Die all_off Funktion macht alle LEDs aus, ja.
Die WLAN LED blinkt beim nächstenmal auschalten, und bleibt weil ausgeschaltet, aus.
Ab dem Übernächstenmal funktioniert die LED dann wieder ganz Normal.

Bei mir läuft deswegen ein cronjob, der jede Minute alle LEDs an/auschaltet im K.I.T.T. Style.
Für sowas braucht man allerdings noch den Befehl usleep, weil Wartezeiten unter 1er Sekunde benötigt werden.
 
Ich habe es jetzt hinbekommen! :)
Falls jemand mal beim googlen drüber stolpert:
Ich habe folgendes in die debug.cfg geschrieben:
Code:
#!/bin/sh

# Wartezeit, bis Speicher bereit ist
sleep 30

# Pruefen, ob Datei vorhanden ist, und mit entsprechenden Befehlen ausfuehren
if [ -f /var/InternerSpeicher/FRITZ/Systemdateien/home.lua ]
then
# kopieren der Datei
cp /var/InternerSpeicher/FRITZ/Systemdateien/home.lua /var/tmp/home.lua
# mounten
mount -o bind /var/tmp/home.lua /usr/www/avm/home/home.lua
fi

 /bin/led-ctrl wlan_off

Was mich noch "stört" ist, dass die WLAN LED wieder leuchtet, wenn man WLAN aus -> an macht. Aber das kann man ja nicht ohne größeren Aufwand beseitigen, oder?
Wenn ich in die debug.cfg schreibe, dass sobald WLAN aktiviert wird, die LED ausgestellt werden soll, endet ja die debug.cfg nie. Und das verschenkt sicher Ressourcen der FB?

Ich bedanke mich bei euch allen noch mal für eure Hilfe. ;)
 
Zuletzt bearbeitet:
Kann aber noch nicht so ganz passen (kopiert nach .lua, mount mit .cfg):
Code:
cp /var/InternerSpeicher/FRITZ/Systemdateien/home.lua /var/tmp/home[B].lua[/B]
# mounten
mount -o bind /var/tmp/home[B].cfg[/B] /usr/www/avm/home/home.lua
 
...doch, doch. Sowas geht ;)
(Hauptsache der Interpreter kann mit der .cfg was interpretieren)

1. Variante: mount -o bind /var/tmp/home.cfg /usr/www/avm/home/home.cfg
(Geht nicht, hier müsste der mount Befehl schon ein Fehler raushauen)

2. Variante: mount -o bind /var/tmp/home.cfg /usr/www/avm/home/home.lua
(Geht, wenn LUA Code in der home.cfg steht)

3. Variante: mount -o bind /var/tmp/home.lua /usr/www/avm/home/home.lua
(Besser, weil wenn schon LUA dann soll die Datei auch so enden)
 
Zuletzt bearbeitet:
Huch... Hab bloß von oben zitiert und es dann wieder manuell geändert, war zu faul noch mal die ganze telnet Prozedur zu machen.
 
Kostenlos!

Statistik des Forums

Themen
248,889
Beiträge
2,304,149
Mitglieder
378,573
Neuestes Mitglied
Friedrich Otto Kurt