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