Hi,

Got it figured out yet?
Here are some clues and/or opinions if you want/need them.


> -----Original Message-----
> From: Alastair Foster [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, March 06, 2001 7:50 AM
> To: Dunlap, Randy; [EMAIL PROTECTED]
> Subject: RE: [Linux-usb-users] Two Quick Questions
> 
> On Mon, 5 Mar 2001, Dunlap, Randy wrote:
> > Date: Mon, 5 Mar 2001 17:43:58 -0800 
> > To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>,
> >         [EMAIL PROTECTED]
> > From: "Dunlap, Randy" <[EMAIL PROTECTED]>
> > Subject: RE: [Linux-usb-users] Two Quick Questions
> 
> > It means that in usb_set_configuration() in
> > linux/drivers/usb.c, the new configuration value (1) could not
> > be found in the device's descriptors.
> 
> But the readout below contains the line:
> "Mar  3 19:20:09 localhost kernel:   Alternate Setting:  1"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Yes, I saw that, and I was suspicious of it, but I had
to do some spec reading before replying.
SET_CONFIGURATION changes the device's configuration value.
Alternate Settings refer to optional Interfaces, not
to optional Configurations.
Maybe you should be using SET_INTERFACE instead.
A bit confusing, eh?  At least to me.

> I'm beginning to smell a rat in my hardware. I'm using a PCI -> USB
> convertor card (my BIOS has no legacy USB support) which I have
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
What is "legacy USB support"?

> never tried with any other USB device. To be honest, I don't own or
> have access to any other USB devices, but I'm tempted to go out
> and buy a cheap USB mouse just to find out once and for all whether
> my USB interface is actually faulty.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sure, good idea.  What is your USB interface?

> > Can you post the complete descriptor dump...at least the
> > numeric fields?  You can x-out the strings if you need
> > to hide them.
> 
> Is this what you're after?
> 
> "Mar  3 19:12:53 localhost kernel: usb.c: USB new device 
> connect, assigned device number 2 
> Mar  3 19:12:53 localhost kernel: usb.c: USB device 2 (prod/vend
> 0x6bd/0x403) is not claimed by any active driver. 
> Mar  3 19:12:53 localhost kernel:   Length              = 18 
> Mar  3 19:12:53 localhost kernel:   DescriptorType      = 01 
> Mar  3 19:12:53 localhost kernel:   USB version         = 1.00 
> Mar  3 19:12:53 localhost kernel:   Vendor:Product      = 06bd:0403 
> Mar  3 19:12:53 localhost kernel:   MaxPacketSize0      = 8 
> Mar  3 19:12:53 localhost kernel:   NumConfigurations   = 1 
> Mar  3 19:12:53 localhost kernel:   Device version      = 1.00 
> Mar  3 19:12:53 localhost kernel:   Device Class:SubClass:Protocol =
> 00:00:00 
> Mar  3 19:12:53 localhost kernel:     Per-interface classes 
> Mar  3 19:12:53 localhost kernel: Configuration: 
> Mar  3 19:12:53 localhost kernel:   bLength             =    9 
> Mar  3 19:12:53 localhost kernel:   bDescriptorType     =   02 
> Mar  3 19:12:53 localhost kernel:   wTotalLength        = 0081 
> Mar  3 19:12:53 localhost kernel:   bNumInterfaces      =   01 
> Mar  3 19:12:53 localhost kernel:   bConfigurationValue =   00 
~~~~~~~~~~~~~~~~~~~~~~~
Can you fix (modify, repair) the device's descriptor(s)?
bConfigurationValue should be 1 (or at least non-0) here, not 0.
bConfigurationValue should always be non-zero.
See USB 1.1 spec, section 9.1, USB Device States, and the
SET_CONFIGURATION request, in which config_value == 0
has a special meaning.

> Mar  3 19:12:53 localhost kernel:   iConfiguration      =   00 
> Mar  3 19:12:53 localhost kernel:   bmAttributes        =   80 
> Mar  3 19:12:53 localhost kernel:   MaxPower            =  190mA 
> Mar  3 19:12:53 localhost kernel:  
> Mar  3 19:12:53 localhost kernel:   Interface: 0 
> Mar  3 19:12:53 localhost kernel:   Alternate Setting:  0 
> Mar  3 19:12:53 localhost kernel:     bLength             =    9 
> Mar  3 19:12:53 localhost kernel:     bDescriptorType     =   04 
> Mar  3 19:12:53 localhost kernel:     bInterfaceNumber    =   00 
> Mar  3 19:12:53 localhost kernel:     bAlternateSetting   =   00 
> Mar  3 19:12:53 localhost kernel:     bNumEndpoints       =   03 
> Mar  3 19:12:53 localhost kernel:     bInterface 
> Class:SubClass:Protocol = 00:00:00 
> Mar  3 19:12:53 localhost kernel:     iInterface          =   00 
> Mar  3 19:12:53 localhost kernel:     Endpoint: 
> Mar  3 19:12:53 localhost kernel:       bLength             =    7 
> Mar  3 19:12:53 localhost kernel:       bDescriptorType     =   05 
> Mar  3 19:12:53 localhost kernel:       bEndpointAddress    = 
>   01 (out) 
> Mar  3 19:12:53 localhost kernel:       bmAttributes        =   03
> (Interrupt) 
> Mar  3 19:12:53 localhost kernel:       wMaxPacketSize      = 0010 
> Mar  3 19:12:53 localhost kernel:       bInterval           =   0a 
> Mar  3 19:12:53 localhost kernel:     Endpoint: 
> Mar  3 19:12:53 localhost kernel:       bLength             =    7 
> Mar  3 19:12:53 localhost kernel:       bDescriptorType     =   05 
> Mar  3 19:12:53 localhost kernel:       bEndpointAddress    = 
>   02 (out) 
> Mar  3 19:12:53 localhost kernel:       bmAttributes        = 
>   02 (Bulk) 
> Mar  3 19:12:53 localhost kernel:       wMaxPacketSize      = 0040 
> Mar  3 19:12:53 localhost kernel:       bInterval           =   01 
> Mar  3 19:12:53 localhost kernel:     Endpoint: 
> Mar  3 19:12:53 localhost kernel:       bLength             =    7 
> Mar  3 19:12:53 localhost kernel:       bDescriptorType     =   05 
> Mar  3 19:12:53 localhost kernel:       bEndpointAddress    = 
>   83 (in) 
> Mar  3 19:12:53 localhost kernel:       bmAttributes        = 
>   02 (Bulk) 
> Mar  3 19:12:53 localhost kernel:       wMaxPacketSize      = 0040 
> Mar  3 19:12:53 localhost kernel:       bInterval           =   01 
> Mar  3 19:12:53 localhost kernel:   Alternate Setting:  1 
> Mar  3 19:12:53 localhost kernel:     bLength             =    9 
> Mar  3 19:12:53 localhost kernel:     bDescriptorType     =   04 
> Mar  3 19:12:53 localhost kernel:     bInterfaceNumber    =   00 
> Mar  3 19:12:53 localhost kernel:     bAlternateSetting   =   01 
> Mar  3 19:12:53 localhost kernel:     bNumEndpoints       =   03 
> Mar  3 19:12:53 localhost kernel:     bInterface 
> Class:SubClass:Protocol = 00:00:00 
> Mar  3 19:12:53 localhost kernel:     iInterface          =   00 
> Mar  3 19:12:53 localhost kernel:     Endpoint: 
> Mar  3 19:12:53 localhost kernel:       bLength             =    7 
> Mar  3 19:12:53 localhost kernel:       bDescriptorType     =   05 
> Mar  3 19:12:53 localhost kernel:       bEndpointAddress    = 
>   01 (out) 
> Mar  3 19:12:53 localhost kernel:       bmAttributes        =   03
> (Interrupt) 
> Mar  3 19:12:53 localhost kernel:       wMaxPacketSize      = 0010 
> Mar  3 19:12:53 localhost kernel:       bInterval           =   0a 
> Mar  3 19:12:53 localhost kernel:     Endpoint: 
> Mar  3 19:12:53 localhost kernel:       bLength             =    7 
> Mar  3 19:12:53 localhost kernel:       bDescriptorType     =   05 
> Mar  3 19:12:53 localhost kernel:       bEndpointAddress    = 
>   02 (out) 
> Mar  3 19:12:53 localhost kernel:       bmAttributes        = 
>   02 (Bulk) 
> Mar  3 19:12:53 localhost kernel:       wMaxPacketSize      = 0040 
> Mar  3 19:12:53 localhost kernel:       bInterval           =   01 
> Mar  3 19:12:53 localhost kernel:     Endpoint: 
> Mar  3 19:12:53 localhost kernel:       bLength             =    7 
> Mar  3 19:12:53 localhost kernel:       bDescriptorType     =   05 
> Mar  3 19:12:53 localhost kernel:       bEndpointAddress    = 
>   03 (out) 
> Mar  3 19:12:53 localhost kernel:       bmAttributes        = 
>   02 (Bulk) 
> Mar  3 19:12:53 localhost kernel:       wMaxPacketSize      = 0040 
> Mar  3 19:12:53 localhost kernel:       bInterval           =   01 
> Mar  3 19:12:53 localhost kernel:   Alternate Setting:  2 
> Mar  3 19:12:53 localhost kernel:     bLength             =    9 
> Mar  3 19:12:53 localhost kernel:     bDescriptorType     =   04 
> Mar  3 19:12:53 localhost kernel:     bInterfaceNumber    =   00 
> Mar  3 19:12:53 localhost kernel:     bAlternateSetting   =   02 
> Mar  3 19:12:53 localhost kernel:     bNumEndpoints       =   03 
> Mar  3 19:12:53 localhost kernel:     bInterface 
> Class:SubClass:Protocol = 00:00:00 
> Mar  3 19:12:53 localhost kernel:     iInterface          =   00 
> Mar  3 19:12:53 localhost kernel:     Endpoint: 
> Mar  3 19:12:53 localhost kernel:       bLength             =    7 
> Mar  3 19:12:53 localhost kernel:       bDescriptorType     =   05 
> Mar  3 19:12:53 localhost kernel:       bEndpointAddress    = 
>   01 (out) 
> Mar  3 19:12:53 localhost kernel:       bmAttributes        =   03
> (Interrupt) 
> Mar  3 19:12:53 localhost kernel:       wMaxPacketSize      = 0010 
> Mar  3 19:12:53 localhost kernel:       bInterval           =   0a 
> Mar  3 19:12:53 localhost kernel:     Endpoint: 
> Mar  3 19:12:53 localhost kernel:       bLength             =    7 
> Mar  3 19:12:53 localhost kernel:       bDescriptorType     =   05 
> Mar  3 19:12:53 localhost kernel:       bEndpointAddress    = 
>   02 (out) 
> Mar  3 19:12:53 localhost kernel:       bmAttributes        = 
>   02 (Bulk) 
> Mar  3 19:12:53 localhost kernel:       wMaxPacketSize      = 0040 
> Mar  3 19:12:53 localhost kernel:       bInterval           =   01 
> Mar  3 19:12:53 localhost kernel:     Endpoint: 
> Mar  3 19:12:53 localhost kernel:       bLength             =    7 
> Mar  3 19:12:53 localhost kernel:       bDescriptorType     =   05 
> Mar  3 19:12:53 localhost kernel:       bEndpointAddress    = 
>   83 (in) 
> Mar  3 19:12:53 localhost kernel:       bmAttributes        =   01
> (Isochronous) 
> Mar  3 19:12:53 localhost kernel:       wMaxPacketSize      = 03f0 
> Mar  3 19:12:53 localhost kernel:       bInterval           =   01 
> Mar  3 19:12:53 localhost kernel:   Alternate Setting:  3 
> Mar  3 19:12:53 localhost kernel:     bLength             =    9 
> Mar  3 19:12:53 localhost kernel:     bDescriptorType     =   04 
> Mar  3 19:12:53 localhost kernel:     bInterfaceNumber    =   00 
> Mar  3 19:12:53 localhost kernel:     bAlternateSetting   =   03 
> Mar  3 19:12:53 localhost kernel:     bNumEndpoints       =   03 
> Mar  3 19:12:53 localhost kernel:     bInterface 
> Class:SubClass:Protocol = 00:00:00 
> Mar  3 19:12:53 localhost kernel:     iInterface          =   00 
> Mar  3 19:12:53 localhost kernel:     Endpoint: 
> Mar  3 19:12:53 localhost kernel:       bLength             =    7 
> Mar  3 19:12:53 localhost kernel:       bDescriptorType     =   05 
> Mar  3 19:12:53 localhost kernel:       bEndpointAddress    = 
>   01 (out) 
> Mar  3 19:12:53 localhost kernel:       bmAttributes        =   03
> (Interrupt) 
> Mar  3 19:12:53 localhost kernel:       wMaxPacketSize      = 0010 
> Mar  3 19:12:53 localhost kernel:       bInterval           =   0a 
> Mar  3 19:12:53 localhost kernel:     Endpoint: 
> Mar  3 19:12:53 localhost kernel:       bLength             =    7 
> Mar  3 19:12:53 localhost kernel:       bDescriptorType     =   05 
> Mar  3 19:12:53 localhost kernel:       bEndpointAddress    = 
>   82 (in) 
> Mar  3 19:12:53 localhost kernel:       bmAttributes        = 
>   02 (Bulk) 
> Mar  3 19:12:53 localhost kernel:       wMaxPacketSize      = 0040 
> Mar  3 19:12:53 localhost kernel:       bInterval           =   01 
> Mar  3 19:12:53 localhost kernel:     Endpoint: 
> Mar  3 19:12:53 localhost kernel:       bLength             =    7 
> Mar  3 19:12:53 localhost kernel:       bDescriptorType     =   05 
> Mar  3 19:12:53 localhost kernel:       bEndpointAddress    = 
>   03 (out) 
> Mar  3 19:12:53 localhost kernel:       bmAttributes        =   01
> (Isochronous) 
> Mar  3 19:12:53 localhost kernel:       wMaxPacketSize      = 03f0 
> Mar  3 19:12:53 localhost kernel:       bInterval           =   01 
> Mar  3 19:13:01 localhost kernel: usb.c: selecting invalid 
> configuration 1 
~~~~~~~~~~~~~~~~~~~~~~~~
The device doesn't have a config descriptor with bConfigurationValue
== 1, but it probably should have one.

> Mar  3 19:13:03 localhost kernel: usbdevfs: USBDEVFS_BULK 
> failed dev 2 ep 0x83 len 2054 ret -110 
> Mar  3 19:13:21 localhost last message repeated 9 times
> Mar  3 19:13:26 localhost kernel: usb.c: USB disconnect on device 2"
> 
> -- 
> Alastair Foster
> http://users.netaccess.co.nz/ala/
> 021 250 6482

HTH.
~Randy


_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
http://lists.sourceforge.net/lists/listinfo/linux-usb-users

Reply via email to