On Mon, 27 Dec 2004, Christian Heimanns wrote: > Thanks for the tipp: I've compiled the USBcore as a module now. Before > it was compiled into the kernel. In the file /etc/modprobe.conf I've > added the line: > options usbcore old_scheme_first=y <. > It seems to work now :-) Can you please explain in a few sentences the > difference between the "new" and the "old" USB scheme?
I'll try... The "old scheme" is the way Linux worked before 2.6.10. When a new device is plugged in, the system first assigns it an address, then reads the initial 8 bytes of the device descriptor, then reads the entire 18-byte device descriptor. The "new scheme" is basically the way Windows works. (Not surprisingly, some devices won't work any other way.) When a new device is plugged in, the system first issues a 64-byte read request for the device descriptor, then resets the device, then assigns it an address, and then reads the actual 18-byte device descriptor. The reason for these shenanigans is that with a full-speed device, the maximum packet size for endpoint 0 (ep0maxpacket) isn't known beforehand. It could be 8, 16, 32, or 64 bytes. (Low-speed devices must use 8, and high-speed devices must use 64.) The ep0maxpacket value is stored in the initial 8 bytes of the device descriptor, but to read the device descriptor you have to use endpoint 0! The two schemes above are the two common solutions to this chicken-and-egg problem. The old scheme is the one recommended by the USB Implementors Forum (which makes it the "Standard"); the new scheme is the one used by Microsoft (which makes it another kind of "Standard"!). A well-designed standards-compliant device will work okay with either scheme. Unfortunately it seems that no matter which scheme you pick, some badly-designed non-compliant devices won't work. There's an additional usbcore.ko module parameter people can use in especially bad cases: use_both_schemes=y This will cause the system to try one of the schemes, and if it fails then try the other scheme. (Maybe that should always be the default...) Alan Stern ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://productguide.itmanagersjournal.com/ _______________________________________________ Linux-usb-users@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-users