On Thu, Nov 22, 2007 at 09:47:04PM -0500, Alan Stern wrote:
> You are mixing up "configuration" and "interface".  I think you mean 
> "interface" here (configurations don't have classes but interfaces do).

Oops, yes, I had those reversed.


> > The problem is that usb_storage sees the Mass Storage configuration,
> > and uses it.  When Barry wants to use the Database configuration,
> > there's a conflict.
> 
> What's the conflict?

When a Blackberry Pearl is plugged in, showing product ID 0004, and
while the usb_storage module is loaded, I get the following error
when trying to set the configuration:

Usb::Error caught: (-16, could not set config 1: Device or resource busy): 
Probe: SetConfiguration failed

The normal sequence of events is a scan for Blackberry devices using
libusb information calls (usb_find_*()), then a call to usb_open(),
usb_set_configuration(), then usb_claim_interface() on the interface
with class 255.


> You say the set_configuration call returns an error?  Have you tried
> turning on the usbfs_snoop parameter for the usbcore module to see what
> shows up in the kernel log?  Have you verified that the configuration
> you're trying to install actually exists?

I know the configuration exists, since the same code works when
the usb_storage module is not loaded.

I've always assumed that this conflict is a fundamental issue when
two programs try to access the same USB device (even if one is a kernel
module).  If I'm wrong, I'd love for someone to show me how to do
it right.

- Chris


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Barry-devel mailing list
Barry-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/barry-devel

Reply via email to