On Tue, 16 Nov 2010, Charles Tassell wrote: > Hi Greg, > > No, I don't think that is it. The device is powered via USB, and it > maintains power until I unplug it. Also, the device works fine in > Windows on the same box, and if you look at the udevmon section the > kernel removes it as a HID device right after udev finishes processing > it, then adds it back as a generic USB device with no drivers. Here's > an annotated description of the process: Part of the problem is that your original kernel log doesn't have timestamps. Anyway, it would help to have a usbmon trace showing what happens when the scanner is plugged in. Instructions are in the kernel source file Documentation/usb/usbmon.txt. This ought to show what's going on with that disconnect & reconnect. > Plug in the device. Kernel recognizes it: > KERNEL[1289756866.849673] add > /devices/pci0000:00/0000:00:1d.1/usb7/7-1 (usb) > KERNEL[1289756866.859563] add > /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0 (usb) > KERNEL[1289756866.859674] add > /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0/0003:0C2E:0200.000A (hid) > KERNEL[1289756866.872800] add > /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0/input/input13 (input) > KERNEL[1289756866.872891] add > /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0/input/input13/event7 > (input) > KERNEL[1289756866.872909] add > /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0/0003:0C2E:0200.000A/hidraw/hidraw3 > (hidraw) > > All the devices are registered, so UDEV creates the /dev entries... > > UDEV [1289756866.873915] add > /devices/pci0000:00/0000:00:1d.1/usb7/7-1 (usb) > UDEV [1289756866.874327] add > /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0 (usb) > UDEV [1289756866.874441] add > /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0/0003:0C2E:0200.000A (hid) > UDEV [1289756866.874724] add > /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0/0003:0C2E:0200.000A/hidraw/hidraw3 > (hidraw) > > Something triggers the kernel to unregister the device from the input > layer... usbmon might show the trigger. > KERNEL[1289756867.166734] remove > /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0/input/input13/event7 > (input) > KERNEL[1289756867.216580] remove > /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0/input/input13 (input) > KERNEL[1289756867.216609] remove > /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0/0003:0C2E:0200.000A/hidraw/hidraw3 > (hidraw) > KERNEL[1289756867.216703] remove > /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0/0003:0C2E:0200.000A (hid) > KERNEL[1289756867.216741] remove > /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0 (usb) > KERNEL[1289756867.216834] remove > /devices/pci0000:00/0000:00:1d.1/usb7/7-1 (usb) > > UDEV deletes the devices... > > UDEV [1289756867.216935] remove > /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0/0003:0C2E:0200.000A/hidraw/hidraw3 > (hidraw) > UDEV [1289756867.217063] remove > /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0/0003:0C2E:0200.000A (hid) > UDEV [1289756867.271298] add > /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0/input/input13 (input) > UDEV [1289756867.303544] add > /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0/input/input13/event7 > (input) > UDEV [1289756867.303727] remove > /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0/input/input13/event7 > (input) > UDEV [1289756867.303820] remove > /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0/input/input13 (input) > UDEV [1289756867.303965] remove > /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0 (usb) > UDEV [1289756867.304191] remove > /devices/pci0000:00/0000:00:1d.1/usb7/7-1 (usb) > > The kernel then adds it back as some sort of generic device... > > KERNEL[1289756870.808673] add > /devices/pci0000:00/0000:00:1d.1/usb7/7-1 (usb) > KERNEL[1289756870.817600] add > /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0 (usb) > > UDEV sees this but doesn't create any /dev entries. > > UDEV [1289756870.818662] add > /devices/pci0000:00/0000:00:1d.1/usb7/7-1 (usb) > UDEV [1289756870.837532] add > /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0 (usb) > > Physically unplugging the device then causes this: > > KERNEL[1289919402.423327] remove > /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0 (usb) > KERNEL[1289919402.423414] remove > /devices/pci0000:00/0000:00:1d.1/usb7/7-1 (usb) > UDEV [1289919402.423536] remove > /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0 (usb) > UDEV [1289919402.424162] remove > /devices/pci0000:00/0000:00:1d.1/usb7/7-1 (usb) > > > It seems to be something in either the kernel itself or UDEV is telling > the system that this is not a keyboard, so not to treat it as such. But > grepping for the vendor and device IDs in both the udev and kernel > sources dirs doesn't seem to show why it's getting blacklisted. Maybe something in the _device_ is responsible. 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