[Discuss] [OT]: USB-Powercycle? OpenWRT+LTE-Stick+Tunnel/Verbindungsabbrüche.
Erich N. Pekarek
(spam-protected)
Mo Nov 14 17:17:23 CET 2016
Hallo Liste!
Ich habe bei einer "mobilen Anwendung", die vielleicht auch einige von
Euch (etwa im Zusammenhang mit einem Funkfeuer-Tunnel) interessieren
könnte, ein Problem und suche dafür eine passende Lösung.
Komponenten:
TP-Link TL-WR1043NDv1 (Chaos Calmer 15.05.1 Eigenkompilat mittels
Imagebuilder)
ZTE MF831 LTE-Stick (Hofer-Version)
Yesss-Simkarte mit LTE-Paket
versuchsweise: USB HUB extern gespeist
Anordnung:
Der ZTE-Sick ist mit der Yesss-Sim-Karte bestückt und arbeitet
werksseitig in einem HiLink-ähnlichen Ethernet Modus (19d2:1405). Am
TL-WR1043ND scheint er als emuliertes Ethernet-Interface "usb0" mit der
IP 192.168.0.1/24 aufscheint. Die Firmware des Sticks ist stark
beschnitten, daher kann man nur das Allernotwendigste einstellen. Der
TL-WR1043ND bezieht seine IP, Gateway und DNS-Server mittels DHCP und
nattet dieses NAT-Interface, das im A1-Netz (Yesss) ebenfalls genattet
wird. (Grundsätzlich funktioniert das unter diesen Rahmenbedingungen
soweit gut.)
Der TL-WR1043ND stellt über OpenVPN einen Tunnel zu einem Server mit
statischer IPv4-Adresse her. Alternativ wird Miredo genützt, um über das
Teredo-Protokoll (UDP) IPv6-Konnektivität zu erlangen.
Problem:
Der ZTE-Stick scheint fallweise abzustürzen. Bei näherer Betrachtung
steht dies anscheinend im Zusammenhang mit "Paket(de-)aktivierungen"
oder eventuell sonstiger SIM-Aktivität.
Steckt man den Stick ab und steckt ihn wieder an, ist der Router mit
darauf laufendem Watchdog-Cronscript binnen weniger Augenblicke wieder
online.
Lösungsansatz:
Der LTE-Stick ZTE MF831 wird grundsätzlich über sein Web-Interface
angesteuert. Über eine im Internet recherchierbare URL kann man den
Stick in einen Modem-Modus (19d2:0016) versetzen und mittels
usb-serial-Modul als /dev/ttyUSB2 über AT-Befehle ansprechen. Darüber
ließe er sich auch zurücksetzen (zumindest der Mobilteil mit
AT+CFUN=1,1); anschließend kann man ihn mittels AT+ZCDRUN wieder in den
Ethernet-Mode versetzen. Dazu gibt es Anleitungen im Netz, die ich
befolgt habe. Das funktioniert eine Weile recht gut, aber manchmal hängt
sich der Stick eben komplett auf, ohne, dass ich das (aus der Ferne)
nachvollziehen kann.
(Der Stick läuft auf Android und es gibt auch eine Möglichkeit adb mit
root-shell über eine weitere URL zu aktivieren, aber das ist die von mir
angestrebte Lösung. Auf diese Weise könnte man einen zum auf dem Router
hinterlegten ssh-private-key ssh-public-key aufspielen und mittels ssh
-lroot 192.168.0.1 'reboot' vorgehen. Das will ich so nicht und es ist
fraglich, ob man den Stick so überhaupt noch erreicht, wenn er
abzustürzen gedenkt.)
Fragen:
Hat jemand von Euch Erfahrung auf dem Gebiet? Welche Art Software-Reset
könnte man noch versuchen und wie führt man den aus?
Kann man in neueren Linux-Kerneln die Stromzufuhr zu einem bestimmten
USB-Port per Software steuern? (Der Trick mit
/sys/bus/usb/devices/usb1/authorized löst das Problem nicht.) Wenn ja, wie?
Kennt jemand von Euch eine Art USB-Relay, mit dem man ein über Software
steuerbares Äquivalent zum Anstecken/Abstecken durchführen kann (nein,
kein Roboterarm, ;-)? Ich denke da an eine Anordnung aus USB-Hub mit
integriertem Device (ansprechbar etwa über AT+Commands o.ä.) die ein
Relay steuert, hinter dem eine weiterer kaskadierter,integrierter
USB-Hub liegt. (Also nach Art eines 7-Port-Hubs nur mit Relay auf den
Powerlines dazwischen). Auf Amazon und Ebay finde ich nichts, was meiner
Vorstellung entspricht, dafür aber zahlreiche Einzelrelays.
Bitte um sachdienliche Hinweise!
Danke!
LG
Erich
Mehr Informationen über die Mailingliste Discuss