pyLoad 0.4.9 .spk (armv5tejl)

Status
Für weitere Antworten geschlossen.

theMario

Benutzer
Mitglied seit
29. Dez 2011
Beiträge
403
Punkte für Reaktionen
0
Punkte
22
Ok, habs mir zusammengemeisselt.
DS212> . /volume1/@appstore/pyload/bin/import-environment
DS212> /var/packages/pyload/target/bin/reconnect
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<u:ForceTerminationResponse xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1"></u:ForceTerminationResponse>
</s:Body>
DS212>

Wie geht es weiter?
 

enkidu

Benutzer
Mitglied seit
17. Dez 2011
Beiträge
191
Punkte für Reaktionen
0
Punkte
0
Ist denn am Modem etwas passiert?

Wenn nein - reconnect.sh anpassen und den copy&paste&enter Vorgang für Tests nutzen bis das der Fall ist
Wenn ja - gratuliere, geschafft :)


Die Ausgabe sieht so aus als ob du es per UPnP-IGD versuchst, dazu sollte UPnP am Modem auch aktiviert sein.
 

theMario

Benutzer
Mitglied seit
29. Dez 2011
Beiträge
403
Punkte für Reaktionen
0
Punkte
22
welche reconnect.sh - jene die in den Einstellungen von der pyload weboberfläche gesetzt ist?
Durch die Eingabe in der Konsole wurde keine neue ext. IP dem Router vergeben
 

enkidu

Benutzer
Mitglied seit
17. Dez 2011
Beiträge
191
Punkte für Reaktionen
0
Punkte
0
Nein, die reconnect.sh von der ich schon die ganze Zeit schreibe und die einzige Datei dieses Namens.
Die in der /pyload Freigabe., die du mit einem Editor lokal am PC bearbeitest (ohne sie herumzukopieren oder umzubenennen, doppelt anclicken normalerweise)

Die pyLoad Config brauchst du nicht anzugreifen - es sei denn du weißt genau was du tust.
Die stimmt schon so, das hat der Test vorhin ja auch gezeigt. Die Lösung deines Problems liegt in deiner reconnect.sh und deinem Modem. Die beiden müssen sich verstehen. Wenn zu zum Beispiel UPnP zum reconnecten nutzt (wonach es aussieht), musst du das am Modem auch aktivieren. Oder lieber einen Web GUI Aufruf am Modem, dann trag das als curl Aufruf eben so in der reconnect.sh ein...
 
Zuletzt bearbeitet:

theMario

Benutzer
Mitglied seit
29. Dez 2011
Beiträge
403
Punkte für Reaktionen
0
Punkte
22
Ich glaube, besser konnten wir nicht aneinander vorbei texten. Ich habe ja blind kopiert, angepasst und mir keine Gedanken gemacht, was diese zwei Zeilen nun machen.
Ok - die erste setzt eine Umgebungsvariable?! richtig?
die zweite startet schlicht eine reconnect datei

DS212> /var/packages/pyload/target/bin/reconnect
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<u:ForceTerminationResponse xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1"></u:ForceTerminationResponse>
</s:Body>
</s:Envelope>DS212>

beim 2. mal bekam ich eine neue IP
 

enkidu

Benutzer
Mitglied seit
17. Dez 2011
Beiträge
191
Punkte für Reaktionen
0
Punkte
0
Das kommt so hin, ja :)

Wenn es nur jedes zweite Mal funktioniert sieht es ja eh schon sehr gut aus. Was steht denn jetzt eigentlich in deiner reconnect.sh? Wie gesagt, von der hängt das alles ab.
 

theMario

Benutzer
Mitglied seit
29. Dez 2011
Beiträge
403
Punkte für Reaktionen
0
Punkte
22
Habe das Script mal angepasst mit " > null" am Ende
DS212> /var/packages/pyload/target/bin/reconnect
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 587 100 311 100 276 26253 23299 --:--:-- --:--:-- --:--:-- 51833
DS212>
Sieht anders, aber für mich bekannter aus.

Also trage ich nun in der weboberfläche NAS_IP/8000 /Einstellungen /reconnect diese "reconnect" als Solche ein... .?
 

theMario

Benutzer
Mitglied seit
29. Dez 2011
Beiträge
403
Punkte für Reaktionen
0
Punkte
22
Folgendes steht drin:
DS212> more /var/packages/pyload/target/bin/reconnect
#!bin/sh
#pyload router reconnect
#curl "http://fritz.box:49000/upnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination" -d "@/volume1/@appstore/pyload/bin/data.txt" >nul
curl "http://fritz.box:49000/upnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination" -d "<?xml version='1.0' encoding='utf-8'?> <s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <u:ForceTermination xmlns:u='urn:schemas-upnp-org:service:WANIPConnection:1' /> </s:Body> </s:Envelope>" > /dev/null
DS212>
Dabei finde ich es irgend wie sinnlos eine DNS-Adresse zu benutzen, welche der Router erst auflöst. Da kann ich doch gleich mit 192.168.xxx.x einem eine Arbeit abnehmen, oder ?
Das auskommentierte Script lubbt weniger... .
 

enkidu

Benutzer
Mitglied seit
17. Dez 2011
Beiträge
191
Punkte für Reaktionen
0
Punkte
0
Nein, deine pyLoad Config passt dann schon so.

Siehe Fall "Wenn ja" aus dem vorherigen Beitrag, keine weiteren Schritte nötig. Sobald es mit dem Aufruf geht kann es pyLoad auch (da du es ja mit der pyLoad Umgebung getestet hast).

und noch einmal:
Finger weg von allem das nicht reconnect.sh heißt und nicht im /pyload Share liegt. Das wird dir nicht helfen, dort liegt weder das Problem noch die Lösung.
Falls du dort etwas änderst ist das spätestens beim nächsten Update ein erneutes Problem.

/var/packages/pyload/target/bin/reconnect ist nicht reconnect.sh aus der /pyload Netzwerkfreigabe und heißt ja auch nicht reconnect.sh!

Daher allererster Schritt: Stelle den Originalinhalt der Paketscripts die du geändert hast wieder her (reconnect.sh gehört nicht dazu, liegt deshalb auch nicht im Paket).
Danach bearbeitest du deine reconnect.sh - und nur diese. Ansonsten kann ich dir nicht helfen.
 
Zuletzt bearbeitet:

theMario

Benutzer
Mitglied seit
29. Dez 2011
Beiträge
403
Punkte für Reaktionen
0
Punkte
22
Die Umgebungsvariable ist permanent gesetzt? Oder geht sie bei Neustart der DS verloren?
 

theMario

Benutzer
Mitglied seit
29. Dez 2011
Beiträge
403
Punkte für Reaktionen
0
Punkte
22
Den letzten Post von mir nimmst mal als "permanente Dummheit" raus
 

enkidu

Benutzer
Mitglied seit
17. Dez 2011
Beiträge
191
Punkte für Reaktionen
0
Punkte
0
Die zwei Zeilen stehen so da weil sie, wenn zusammen ausgeführt, immer funktionieren. Also nutze sie zusammen.

Bitte den Hinweis in meinem letzten Beitrag beachten. Stelle bitte die Originale wieder her und beschränke dich auf reconnect.sh. Und zwar die richtige reconnect.sh die so heißt und in der Freigabe liegt.
 

theMario

Benutzer
Mitglied seit
29. Dez 2011
Beiträge
403
Punkte für Reaktionen
0
Punkte
22
Ich habe in den Einstellungen jetzt diese "/var/packages/pyload/target/bin/reconnect" eingetragen. Im Original stand da der direkte Weg "/volume1/@appstore/pyload/bin/reconnect" auch ohne ".sh" drin. Diese Datei löste zusammen mit dem angepassten ersten Satz ( . /... ) eine neue IP am Router aus.
Sollte doch so passen, oder?
 

enkidu

Benutzer
Mitglied seit
17. Dez 2011
Beiträge
191
Punkte für Reaktionen
0
Punkte
0
Und noch einmal: /var/packages/pyload/target/bin/reconnect ist nicht reconnect.sh. Bitte ändere weder die pyLoad Reconnect Config noch irgendwelche Scripts im /bin/ Verzeichnis des Pakets. Wenn du das tust, ist dies die Quelle für die Probleme die du beim nächsten Update haben wirst.

Wichtig ist NUR der Inhalt deiner reconnect.sh Datei - und sonst wirklich nichts. In der Shell kannst du zum Test den beschriebenen Exec machen, sonst rühr dort bitte nichts an wenn du nicht ganz genau weißt was du tust. Ich kann dir daher nur helfen, wenn du das Paket mit seinem Originalinhalt wiederherstellst (Deinstallatioon + Reinstallation des Pakets) und mir den Inhalt deiner reconnect.sh Datei mitteilst.

Alles andere hilft bestenfalls kurzfristig, wenn überhaupt.
 

theMario

Benutzer
Mitglied seit
29. Dez 2011
Beiträge
403
Punkte für Reaktionen
0
Punkte
22
Ich schnibbele nicht in den original Dateien rum

Die verwendete reconnect.sh ist diese jetzt:
more /volume1/pyload/reconnect/reconnect.sh
#!/bin/sh
curl "http://192.168.220.1:49000/upnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination" -d "
<?xml version='1.0' encoding='utf-8'?>
<s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>
<s:Body> <u:ForceTermination xmlns:u='urn:schemas-upnp-org:service:WANIPConnection:1' />
</s:Body> </s:Envelope>" >> /dev/null
DS212>
 

enkidu

Benutzer
Mitglied seit
17. Dez 2011
Beiträge
191
Punkte für Reaktionen
0
Punkte
0
Offenbar doch:

DS212> more /var/packages/pyload/target/bin/reconnect
#!bin/sh
#pyload router reconnect
#curl "http://fritz.box:49000/upnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination" -d "@/volume1/@appstore/pyload/bin/data.txt" >nul
curl "http://fritz.box:49000/upnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination" -d "<?xml version='1.0' encoding='utf-8'?> <s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <u:ForceTermination xmlns:u='urn:schemas-upnp-org:service:WANIPConnection:1' /> </s:Body> </s:Envelope>" > /dev/null
DS212>

Diese Datei sieht im Original nicht so aus.

Deine reconnect.sh sieht gut aus, müsste funktionionieren. Am Ende noch ein
Code:
exit 0
wäre gut. Ganz sauber wäre es noch mit "RequestConnection".

Aber vorher noch die Originale wiederherstellen damit sie überhaupt aufgerufen wird.
 
Zuletzt bearbeitet:

theMario

Benutzer
Mitglied seit
29. Dez 2011
Beiträge
403
Punkte für Reaktionen
0
Punkte
22
ich erinnere mich - moment - ich such sie
 

theMario

Benutzer
Mitglied seit
29. Dez 2011
Beiträge
403
Punkte für Reaktionen
0
Punkte
22
das ist das original

#!/bin/sh
# needs: curl, netcat, grep, sed, xargs, cut, sort
# diversions:
# netcat: -ubw3 (pirelli)

[ ${SYNOPKG_PKGDEST} ] || SYNOPKG_PKGDEST=`ls -l /var/packages/pyload/target | cut -d\> -f2 | cut -d\ -f2`
[ ${PYLOAD_ENVIRONMENT} -eq 1 ] || . ${SYNOPKG_PKGDEST}/bin/import-environment

upnpigd() {
curl -s "$1" -H "Content-type: text/xml; charset='utf-8'" -H "SOAPACTION: urn:schemas-upnp-org:service:$2#$3" -d "<?xml version='1.0' encoding='utf-8'?><s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'><s:Body><u:$3 xmlns:u='urn:schemas-upnp-org:service:$2' /></s:Body></s:Envelope>" >/dev/null
}

PYLOAD_GATEWAY=`route -n | grep 'UG[ \t]' | awk '{print $2}'`
PYLOAD_MODEM=unknown
PYLOAD_DSM_NOTIFY_ENABLED=0
PYLOAD_DSM_NOTIFY_USER=admin
if [ -e "${SYNOPKG_PKGDEST}/pyload/reconnect.sh" ]; then
# sed 's/^M$//' "${SYNOPKG_PKGDEST}/pyload/reconnect.sh" > some.tmp
. "${SYNOPKG_PKGDEST}/pyload/reconnect.sh"
# script might exit - or set a modem type
# $PYLOAD_MODEM=<ST585v7 PRGAV4202N FRITZBox>
fi

#echo -e "modem:\t\t\t${PYLOAD_MODEM}\ngateway:\t${PYLOAD_GATEWAY}"

case "${PYLOAD_MODEM}" in
PRGAV4202N)
# get device UID
PIRUID=`echo -e -n "M-SEARCH * HTTP/1.1\r\nHost: 239.255.255.250:1900\r\nST: upnp:rootdevice\r\nMan: \"ssdp:discover\"\r\nMX: 3\r\n\r\n"| netcat -uw3 $PYLOAD_GATEWAY 1900 | grep -i Location: | sed s/^[^:]*:// | xargs curl -s | grep WANPPPConn1.xml | cut -d/ -f 3 | sort -u`
# echo "pirelli uid:\t$PIRUID"

upnpigd "http://$PYLOAD_GATEWAY:2555/upnp/$PIRUID/WANPPPConn1.ctl" "WANPPPConnection:1" "ForceTermination"
upnpigd "http://$PYLOAD_GATEWAY:2555/upnp/$PIRUID/WANPPPConn1.ctl" "WANPPPConnection:1" "RequestConnection"
;;
ST585v7)
upnpigd "http://$PYLOAD_GATEWAY/upnp/control/igd/wanpppc_1_2_1" "WANPPPConnection:1" "ForceTermination"
upnpigd "http://$PYLOAD_GATEWAY/upnp/control/igd/wanpppc_1_2_1" "WANPPPConnection:1" "RequestConnection"
;;
FRITZBox)
upnpigd "http://$PYLOAD_GATEWAY:49000/upnp/control/WANIPConn1" "WANIPConnection:1" "ForceTermination"
upnpigd "http://$PYLOAD_GATEWAY:49000/upnp/control/WANIPConn1" "WANIPConnection:1" "RequestConnection"
;;
unknown)
echo "no preconfigured modem"
;;
*) echo "unsupported modem type: ${PYLOAD_MODEM}"
;;
esac
[ ${PYLOAD_DSM_NOTIFY_ENABLED} -eq 1 ] && synodsmnotify "${PYLOAD_DSM_NOTIFY_USER}" 'pyLoad Reconnect' "New IP: `upnpc -s | grep ExternalIPAddress | cut -d' ' -f3`"
exit 0
 

enkidu

Benutzer
Mitglied seit
17. Dez 2011
Beiträge
191
Punkte für Reaktionen
0
Punkte
0
Genau - wobei ich den Inhalt eh ganz gut kenne (auch wenn er ein Zeiterl her ist) :)

Dieser Teil davon:
Code:
if [ -e "${SYNOPKG_PKGDEST}/pyload/reconnect.sh" ]; then
# sed 's/^M$//' "${SYNOPKG_PKGDEST}/pyload/reconnect.sh" > some.tmp
. "${SYNOPKG_PKGDEST}/pyload/reconnect.sh"
# script might exit - or set a modem type
# $PYLOAD_MODEM=<ST585v7 PRGAV4202N FRITZBox>
fi

bindet deine reconnect.sh ein, sofern sie existiert. Während /var/packages/pyload/target/bin/reconnect (oder /volumeX/@appstore/pyload/bin/reconnect - weiß ich gerade nicht auswendig, läuft auf dasselbe raus, bedarf jedenfalls keiner Änderung) Teil des Pakets ist und bei Updates überschrieben wird, liegt deine reconnect.sh im Share wo sie auch bei Updates liegen bleibt.

Der Ablauf ist so: pyLoad will reconnecten, Standardconfig = on und zeigt auf /var/packages/pyload/target/bin/reconnect. Dieses sieht nach ob es eine reconnect.sh gibt, setzt die Umgebung und bietet ihr ein paar Hilfen an (siehe #Kommentare im Zitat).
Die Variable ${PYLOAD_GATEWAY} bringt dir zum Beispiel immer das default Gateway - meistens das Modem.

Wenn also deine /var/packages/pyload/target/bin/reconnect wieder in diesem Originalzustand ist und deine reconnect.sh so aussieht wie vorhin geschrieben, kann pyLoad damit wenigstens bestehende Verbindungen abbauen. Danach verlässt es sich auf einen automatischen Neuaufbau bei Bedarf.

Etwas sauberer wäre es noch, den Reconnect selbst auszulösen:
reconnect.sh (Gesamtinhalt)
Code:
curl "http://${PYLOAD_GATEWAY}:49000/upnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination" -d "<?xml version='1.0' encoding='utf-8'?> <s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <u:ForceTermination xmlns:u='urn:schemas-upnp-org:service:WANIPConnection:1' /> </s:Body> </s:Envelope>" > /dev/null
sleep 1
curl "http://${PYLOAD_GATEWAY}:49000/upnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#RequestConnection" -d "<?xml version='1.0' encoding='utf-8'?> <s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <u:RequestConnection xmlns:u='urn:schemas-upnp-org:service:WANIPConnection:1' /> </s:Body> </s:Envelope>" > /dev/null
sleep 3
exit 0

Die sleep x Zeilen geben dem Modem nur etwas Zeit.
 
Zuletzt bearbeitet:

theMario

Benutzer
Mitglied seit
29. Dez 2011
Beiträge
403
Punkte für Reaktionen
0
Punkte
22
Also, ich habe deinen Vorschlag jetzt in meine reconnect.sh kopiert.
Die origianl reconnect (ohne .sh) ist wieder hergestellt.
Pyload versucht zu reconnecten - der Router bekommt keine neue IP.

25 11.03.2013 22:39:05 INFO Download starts: Firmware_Pack.part03.rar
24 11.03.2013 22:39:05 INFO Reconnected, new IP: 77.xxx.214.216
23 11.03.2013 22:39:00 INFO Starting reconnect
22 11.03.2013 22:38:27 INFO Download starts: Firmware_Pack.part03.rar
21 11.03.2013 22:38:26 INFO Reconnected, new IP: 77.xxx.214.216
20 11.03.2013 22:38:23 INFO Starting reconnect
19 11.03.2013 22:37:49 INFO Download starts: Firmware_Pack.part03.rar
18 11.03.2013 22:37:49 INFO Reconnected, new IP: 77.xxx.214.216
17 11.03.2013 22:37:40 INFO Starting reconnect
16 11.03.2013 22:37:06 INFO Download starts: Firmware_Pack.part03.rar
15 11.03.2013 22:33:47 INFO No plugin updates available
14 11.03.2013 22:33:47 INFO No Updates for pyLoad
13 11.03.2013 22:33:44 INFO pyLoad is up and running

Ich hatte auch vor dem DS Neustart (nach den Änderungen schon eine Datei herunter geladen, daher der reconnect-wunsch
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat