OK, after discussion on the upstream mailing lists, we've concluded that
the bug causing the reset loop is in the device itself (that it is
failing to respect the USB protocols), but that the buggy part of the
Osprey 2 Mini is related to installing the Windows and Mac OS X drivers,
which aren't needed by Linux. It's possible to blacklist the buggy part
(which does not work under Linux even when the reset loops don't happen)
via changing a module parameter; this causes the buggy part (the driver
installation) to fail, thus allowing the part that most users are using
the device for (the Internet connection) to work.

While the system is running, this can be achieved via the following
command:

$ echo 1bbb:f000:i | sudo tee /sys/module/usb_storage/parameters/quirks

(The 1bbb:f000 is specific to the device in question, so it shouldn't
have effects on other devices.)

I've tested this on the mainline kernel, and it seems to prevent the bug
from occurring. I suspect that the same would occur on Ubuntu kernels,
but have not tested this yet (I can test it if you think that would be
helpful).

It might also be possible to set the parameter in question
(usb_storage.quirks=1bbb:f000:i) via the kernel command line or
configuration; I don't know of a method other than telling the
bootloader to set it, which would be far too intrusive a solution for a
problem that won't affect most users, but there might be a less
intrusive one. This would have the advantage of preventing a crash (on
an Ubuntu kernel) if the device were attached during boot. Eventually
the Ubuntu kernel is likely to catch up to upstream, meaning that the
impact would be much lower and people could just disconnect and
reconnect the device to work around this situation.

I think it might be worthwhile to get Ubuntu to set the parameter in
question automatically in order to fix the bug. However, I'm not sure
where the best place to set it would be. The obvious thing to do is to
use /etc/sysctl.d, but unfortunately it only seems to affect /proc files
rather than /sys files (and the /proc/sys tree and /sys trees are
different). Alternatively, if it's possible to set default module
arguments in the kernel configuration, that would be another good place.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1556471

Title:
  Connecting an Osprey 2 Mini (USB cellular wireless router) sometimes
  causes an endless reset loop or a kernel panic

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1556471/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to