Hello, After compiling a new 2.6 kernel my Hewlett Packard Scanner 4300C was no longer detected. The console output was usb_control/bulk_msg: timeout
I investigated the source code (and some posts) and found a difference in the file of 2.6 compared to 2.4 In 2.4.21 drivers/usb/usb.c line 2157 was: err = usb_get_string(dev, dev->string_langid, index, tbuf, 255); Now in 2.6.0 drivers/usb/core/message.c line 1208: err = usb_get_string(dev, dev->string_langid, index, tbuf, len); after setting to parameter len = 255 the device worked right away. My scanner apparently reports the string descriptor length incorrectly, which leads to a global denial of the whole device. Though, users said they would post this problem with kernel 2.6.0, the issue is still persistent in kernel version 2.6.3. I doubt that this specific scanner is the only device that reports a wrong string descriptor length. The 2.4 kernels were much more "forgiving" and therefore the string length descriptor never was a problem. The devices also work properly in the Win32 world. So relaxed handling of this (now very critical parameter) made all these devices work (which now apparently are not even detected). Would be a pity, when a whole set of USB-devices would no longer work on Linux, wouldn't it? If the standard code would stay the way it is, probably a whole bunch of USB-devices will no longer work with stock-kernels. Thank you for your patience and skills Regards Ullrich ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
