On Tue, Feb 07, 2017 at 07:28:40PM +0100, John Skelton wrote:
> > From: "Greg KH" <g...@kroah.com>
> > On Tue, Feb 07, 2017 at 06:56:20PM +0100, John Skelton wrote:
> > > > From: "Felipe Balbi" <felipe.ba...@linux.intel.com>
> > > > > I'm particularly interested in drivers/usb/core/config.c
> > > > > which appears to enforce the USB specification by refusing to allow a
> > > > > low speed CDC ACM.  (Comment "Some buggy low-speed devices ...", at
> > > > > about line 300.)
> > > > >
> > > > > However, such devices exist and some are potentially quite useful 
> > > > > (such
> > > > > as Arduinos & digistump).  Various people have posted about not being
> > > > > able to use them with Linux and I think the above file is the reason
> > > > > (another well known OS family allows them).
> > > >
> > > > Here's the comment:
> > > > 
> > > >         /* Some buggy low-speed devices have Bulk endpoints, which is
> > > >          * explicitly forbidden by the USB spec.  In an attempt to make
> > > >          * them usable, we will try treating them as Interrupt 
> > > > endpoints.
> > > >          */
> > > > 
> > > > The code isn't forbidding CDC ACM low speed devices, it's forbidding
> > > > Bulk endpoints on Low speed, which don't exist :-) Are you saying there
> > > > are Bulk endpoints on low speed Arduinos?
> > > 
> > > Yes - or I may have misunderstood the situation.
> > > 
> > > It is code which is derived from V-USB
> > > https://www.obdev.at/products/vusb/index.html
> > > and is described at
> > > http://www.recursion.jp/prose/avrcdc/cdc-232.html
> > > 
> > > If it worked with Linux it would be a handy way to provide output (such as
> > > debug data) from low-cost Arduinos and such like via USB.
> > > 
> > > To be clear: I am not saying the Linux USB code is wrong.  But it would
> > > be good to have a way to have the above kind of code work, such that
> > > screen / minicom etc can be used with it.
> > > 
> > 
> > That page says that any kernel newer than 2.6.31 should work just fine,
> > have you tried this out and had it fail?
> 
> It does say that but it does not work.  I get the dev_warn message that it
> has changed the Bulk endpoint to Interrupt but that's it.

What happens after that?  Does the cdc-acm driver refuse to bind?  Any
other types of error/warning messages?

Doing this type of thing really isn't a good idea for the obvious reason
that hubs might just die a horrible death.  Who knows what a USB 3
controller would do with a low speed device like this as well (hubs are
crazy complex, and low speed makes them really sad.)

You would be better off spending a few cents and getting a better USB
device controller.  It will save everyone here, and yourself, a lot of
time and money...

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to