[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