Originally Posted by
WL500G-Novice
Ich denke, ich habe mich nicht richtig ausgedrückt:
Wenn ich das ! entferne, muß ich ja danach in der Console noch ein Reboot machen und erst dann startet der Rooter immer wieder im 25 Sek. Takt (also nach dem Warmstart, beim Kaltstart bleibt alles gleich).
USB-Speicher-Stick ist keiner dran, HDD bis jetzt auch noch nicht.
Mein Provider ist Vodafone in Deutschland.
Jaja, dass dieses Verhalten nur nach einem reboot geht ist normal, denn der Script wird nur einmal, unmittelbar bei Start vom Router (egal ob Warm- od. kaltstart) ausgefuehrt. So gesehen hast Du dich richtig ausgedrueckt.
Ich habe den Script etwas erweitert, ich kontrolliere, ob ein DNS Server von Deinem Provider im Router eingetragen wurde. Alles andere bleibt fast (! fehlt) gleich.
Du brauchst nur die Aenderungen (mit vi /tmp/lcal/sbin/watch_once) eintragen:
Code:
#!/bin/sh
#Script watch_once
#Written by newbiefan for wl500g.info users
#published under GPLx (at your coice)
#a good place to store this script is /tmp/local/sbin/watch_once
#This script checks a connected modem, if modem is connected
#and a nameserver is not received (from provider)
#and ppp daemon is running a reboot is performed.
#Version 0.1-04/2008
if [ -d /dev/usb/tts ] ; then #if dir exist, modem is connected
#wait for ppp daemon
sleep 25
rednsnames=`cat /tmp/etc/resolv.conf`
for resoldns in $rednsnames ; do
echo $resoldns >> /tmp/nameserver.txt
if [ -z $resoldns ] ; then #if nameserver is zero length
if [ -n "`pidof pppd`" ]; then #if pppd not running within 25 seconds
reboot # perform a reboot
fi
fi
done
fi
Am Schluss wie ueblich 'ESC:wq" und danach:
Code:
flashfs save && flashfs commit && flashfs enable && reboot
Fertig
Kurze Funktionsbeschreibung:
Wenn das Modem (/dev/usb/tts) erkannt wurde, 25 Sekunden warten.
Danach wird ein gueltiger Nameserver in resolv.conf gesucht. Ist dieser vorhanden (wird max.4x durchlaufen) und in allen 4 Eintraegen steht irgend etwas drinnen, passiert nichts mehr, da eine gueltige Verbindung vorliegt - das Modem kann die DNS-Server nur vom Provider erhalten haben=Verbindung ok.
Wird kein Nameserver empfangen, wird geprueft, ob dein pppd laeuft (das ist bei Dir so!), wenn ja erfolgt ein Reboot, sonst passiert nichts. (Dann waere es ein Timingproblem = sleep 25 muss laenger werden)
So, jetzt muss es aber gehen.
Is zwar nur ein Workaround, aber aus der Ferne ist selbst das etwas schwierig, speziell weil ich den Fehler nicht habe. Jedenfalls geht der Script, Du kannst mir mit 'cat /tmp/nameserver.txt' die Ausgabe posten, ausser der File bleibt leer....
Edit: ach ja, habe ich vergessen - wenn alles geht, kannst Du die Zeile mit echo..... wieder entfernen, musst aber nicht.
Noch eine Frage: hast Du auch nach dem ! entfernen, ein flashsf save & .... gemacht oder ohne flashfs save &....?