On Tue, 16 Nov 2010, Charles Tassell wrote: > Here is a copy of the usbmon output and /var/logmessages output from > plugging in, scanning a barcode, and unplugging the device. I also > commented out some of the error checking in hid_reset but that didn't > work either. Okay, this explains to some extent what's going on. The usbmon trace starts after the beginning of the system log, so I'll skip directly to that point. > Nov 16 12:55:21 eliza kernel: usb 7-1: new low speed USB device using > uhci_hcd and address 11 > Nov 16 12:55:21 eliza kernel: usb 7-1: New USB device found, > idVendor=0c2e, idProduct=0200 > Nov 16 12:55:21 eliza kernel: usb 7-1: New USB device strings: Mfr=1, > Product=2, SerialNumber=0 > Nov 16 12:55:21 eliza kernel: usb 7-1: Product: Metrologic Scanner > Nov 16 12:55:21 eliza kernel: usb 7-1: Manufacturer: Metrologic > Nov 16 12:55:21 eliza kernel: input: Metrologic Metrologic Scanner as > /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0/input/input11 This is all part of normal device initialization and enumeration, and the corresponding messages show up in the usbmon log. One additional piece of information visible there, but not here, is that the device describes itself as a keyboard, not a scanner! The configuration string is "HID Keyboard". However, when the system tries to use it as keyboard, the device stops responding and about 1/4 second later, disconnects itself electronically from the bus. No program causes this; the device is entirely responsible. I have no idea why it behaves this way. > Nov 16 12:55:21 eliza kernel: usb 7-1: USB disconnect, address 11 Then a little more than 3 seconds after that, it reconnects. But something has changed... > Nov 16 12:55:25 eliza kernel: usb 7-1: new low speed USB device using > uhci_hcd and address 12 > Nov 16 12:55:25 eliza kernel: usb 7-1: New USB device found, > idVendor=0c2e, idProduct=0700 Compare this with the corresponding line from above. The product ID has changed from 0200 to 0700. The configuration string is now "POS USB", as in your lsusb output. (I'd guess that the "POS" stands for "Point-Of-Sale".) The descriptors are now vendor-specific, so of course the kernel doesn't think it is an input device. > Nov 16 12:55:25 eliza kernel: usb 7-1: New USB device strings: Mfr=1, > Product=2, SerialNumber=0 > Nov 16 12:55:25 eliza kernel: usb 7-1: Product: Metrologic Scanner > Nov 16 12:55:25 eliza kernel: usb 7-1: Manufacturer: Metrologic Then eventually you give up and unplug it. > Nov 16 12:56:20 eliza kernel: usb 7-1: USB disconnect, address 12 It's possible that the device would work correctly if the kernel treated it as HID. You can test this by doing: modprobe usbhid echo 0c2e 0700 >/sys/bus/usb/drivers/usbhid/new_id before plugging in the scanner. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html