Re: Re-scanning for available devices/connections after failure

On Wed, 2010-07-28 at 14:54 -0400, Daenyth Blank wrote:
> On Thu, Jul 22, 2010 at 17:34, Daenyth Blank <daenyth gmail com> wrote:
> > On Thu, Jul 22, 2010 at 19:20, Dan Williams <dcbw redhat com> wrote:
> >> That is, well, unfortunate...  Sierra firmware is usually top-notch so
> >> I'd consider firmware crashes to be less of an issue here than with say
> >> Huawei or ZTE devices.  But they still could be an issue.  If there's
> >> any way we can get logs from the devices at all, that would be
> >> excellent.
> >>
> >> But as a workaround, you could use a watchdog that sends a USB reset to
> >> the device if it isn't seen in ModemManager for more than 30 seconds.
> >> There are some Python examples that list modems here:
> >>
> >>
> >>
> >> and that coupled with echoing some stuff to sysfs might be enough to
> >> shoot the modem in the head and get it to re-enumerate.
> >>
> >> If there's *any* way we can get 'dmesg' or /var/log/messages from the
> >> system when this happens that would help a lot.
> >>
> >> Dan
> > Right now I have a watchdog that restarts NM or reboots if it fails a
> > few times. I'll see what I can put together with the usb reset. I
> > thought such a thing might be possible but I didn't find anything. I
> > tried using /sys/bus/usb/.../power, but it didn't seem to do anything.
> > I'll see if I can have the watchdog also take a snapshot of the
> > logfiles and then I can pull them when it comes back up.
> >
> I had a chance to look over the code example you sent, but I'm not
> sure what you mean by "usb reset". Can you clarify that?

Various suggestions I got included unbinding the driver and rebinding it
(can be done through sysfs), or writing 0 to bConfigurationValue,
waiting a bit, then writing 1.  Or better yet, try a USB port reset:

though not all devices will respond to that if they are completely
wedged.  In recent kernels (ie 2010+) you can remove power from the
port, but I'm not sure there's a way to turn the power back on from
sysfs yet as that commit was meant to implement a sort of "safely
remove" thing.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]