[Discuss] [OT]: USB-Powercycle? OpenWRT+LTE-Stick+Tunnel/Verbindungsabbrüche.

Erich N. Pekarek (spam-protected)
So Dez 4 18:50:13 CET 2016


Hallo!

Ich habe ein kleines Update in der Sache und möchte es in der Hoffnung 
posten, dass es vielleicht jemandem hier nützt:

Am 2016-11-15 um 02:25 schrieb Erich N. Pekarek:
> Hallo Matthias!
>
> Am 2016-11-14 um 21:06 schrieb Matthias Šubik:
>> Hallo Erich,
>>
>>> On 14 Nov 2016, at 18:11, Erich N. Pekarek <(spam-protected)> wrote:
>> ...
>>> Per Software ging das mittels echo 0 oder echo 1 nach 
>>> /sys/bus/usb/devices/[xyz]/authorized, um zumindest eine teilweise 
>>> Reinitialisierung der Treiber zu bewirken. Bis Kernel 3.6 konnte man 
>>> auch den Power Level einzelner Port setzen. Neuere Kernel lassen das 
>>> (direkt) offenbar nicht mehr zu. Man meines Wissens kann nur ein 
>>> Inactivity Timeout setzen, aber nur der Strom wird nur abgeschaltet, 
>>> wenn das Endgerät das auch zulässt.
>> Dieser Lösung habe ich mal sehr weit nachrecherchiert, wurde wohl 
>> wegen mir nicht ganz erklärbarer Gründe aus dem Kernel entfernt. 
>> (Leider totes Gleis).
> Schade eigentlich.

https://wiki.openwrt.org/doc/howto/usb.overview
Es scheint, dass bei einigen Routern bereits ein GPIO einzig dafür 
genützt wird, um USB ein- und auszuschalten.
Der oben genannte Link nennt das Äquivalent für einige TP-Link-Modelle. 
Es sind meist die GPIOs 6,8,21 oder 22.

Etwa kann man beim TL-WR842NDv1 mittels "echo 0 > 
/sys/class/gpio/gpio6/value" und "echo 1 > /sys/class/gpio/gpio6/value" 
einen USB-Powercycle bewirken.
Es gibt dabei aber -zumindest in der Konstellation, die ich getestet 
habe, eine Einschränkung: Es funktioniert freilich nur, wenn das Gerät 
direkt angeschlossen ist, oder der dazwischengeschaltete USB-Hub keine 
aktive externe Stromversorgung hat.

Das ist leider in einigen Fällen unbefriedigend. Siehe auch übernächster 
kommentierter Absatz.


>> Da Du GPIO nicht aus dem Router nehmen möchtest, warum nicht einen 
>> USB-RS232 Adapter an Deinem USB Hub?
>> Der ist billig, und dessen Statusleitungen lassen sich per stty 
>> setzen, und damit kannst Du einen Transistor in der 5V Zuleitung vom 
>> Stick schalten.
> Zwar ist das nicht die fertige Lösung, die ich mir erhofft habe, sie 
> gefällt mir aber sehr gut. Danke!

Daran habe ich bisher nicht weitergemacht. Aber im Zusammenspiel mit 
obiger Information könnte man den (entsprechend groß dimensionierten) 
Transitor über ein altes USB-Kabel mit derselben USB-Stammleitung als 
Basis somit allein in die Versorgungsleitung des Hubs schalten, um damit 
auch den Hub stromlos zu bekommen.

Ich frage mich an dieser Stelle jedoch, ob ein USB-Hub, der vom Host 
keinen Strom mehr bekommt, aber nicht eigentlich auch Ports abschalten 
müsste? Eventuell gibt es das in der Spezifikation? Wonach müsste ich 
suchen? Informationen hierzu wären mir willkommen.


>> Ich hätte sonst ganz langweilig vorgeschlagen, den Stick auf 
>> willhaben/e-bay zu veräußern, und gegen einen anderen zu tauschen.
> Kennst Du ein besseres Gerät in dieser Preisklasse? Genau genommen 
> sind die auch nicht für diesen Zweck (7x24 remote) vorgesehen und das 
> Problem, dass ein USB-Gerät "hängenbleibt" hatte ich auch schon mit 
> einer über USB schaltbaren Steckdosenleiste.

Das "Hängenbleiben" des MF831 konnte ich so halbwegs reproduzieren: Nach 
ein paar mal Hin- und Herschalten zwischen den Modi 19d2:1405 und 
19d2:0016 (über die Zwischenstation 19d2:1225) wurde der Download-Mode 
19d2:0076 aktiviert, aus dem man nach meinen bisherigen Kenntnissen nur 
über einen Powercycle (also für gewöhnlich An- und Abstecken) wieder 
herauskommt. (eventuell ist es gar ein Fastboot-Mode?).
Das genaue Zusammenspiel, das zu diesem Ergebnis führt, müsste ich 
allerdings noch austesten. Womöglich reicht es ja schlicht, im 
Watchdog-Skript etwas großzügiger mit "sleep" umzugehen.

> [...]
>>
>> bG
>> Matthias
>>
> Danke!
>
> LG
> Erich
>

LG
Erich




Mehr Informationen über die Mailingliste Discuss