# Problems With a USB Barcode Reader [*SOLVED*]

## Telamon

I'm trying to get a Metrologic Quantum IS3480 barcode scanner to work on my Gentoo box running 2.6.34-r11.  It's supposed to present as a USB keyboard, but my system (and two other Linux boxes I've tried it on) seem to unregister it as a HID device for some reason I can't quite figure out.  I thought it might be blacklisted, but I did a quick search in hid-ids.h but the vendor ID doesn't seem to be there...  Any ideas?  Especially as to why it loads the driver and then goes and unloads it.  That's really frustrating!  :Wink: 

  Here's the dmesg output when I plug it in:

```
usb 7-1: new low speed USB device using uhci_hcd and address 16

input: Metrologic Metrologic Scanner as

/devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0/input/input13

generic-usb 0003:0C2E:0200.000A: input,hidraw3: USB HID v1.11 Keyboard

[Metrologic Metrologic Scanner] on usb-0000:00:1d.1-1/input0

usb 7-1: USB disconnect, address 16

usb 7-1: new low speed USB device using uhci_hcd and address 17

```

  and the udevadm monitor output:

```
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)

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)

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  [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)

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  [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)

```

  and the lsusb -v output:

```
Bus 007 Device 017: ID 0c2e:0700 Metro

Device Descriptor:

  bLength                18

  bDescriptorType         1

  bcdUSB               1.10

  bDeviceClass            0 (Defined at Interface level)

  bDeviceSubClass         0

  bDeviceProtocol         0

  bMaxPacketSize0         8

  idVendor           0x0c2e Metro

  idProduct          0x0700

  bcdDevice            1.00

  iManufacturer           1 Metrologic

  iProduct                2 Metrologic Scanner

  iSerial                 0

  bNumConfigurations      1

  Configuration Descriptor:

    bLength                 9

    bDescriptorType         2

    wTotalLength           41

    bNumInterfaces          1

    bConfigurationValue     1

    iConfiguration          3 POS USB

    bmAttributes         0x80

      (Bus Powered)

    MaxPower              300mA

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        0

      bAlternateSetting       0

      bNumEndpoints           2

      bInterfaceClass       255 Vendor Specific Class

      bInterfaceSubClass      0

      bInterfaceProtocol      0

      iInterface              0

      ** UNRECOGNIZED:  09 21 11 01 00 01 22 3f 00

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x02  EP 2 OUT

        bmAttributes            3

          Transfer Type            Interrupt

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0008  1x 8 bytes

        bInterval              10

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x81  EP 1 IN

        bmAttributes            3

          Transfer Type            Interrupt

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0008  1x 8 bytes

        bInterval              10

Device Status:     0x0000

  (Bus Powered)

```

Last edited by Telamon on Thu Nov 18, 2010 5:14 pm; edited 1 time in total

----------

## Telamon

Just for anyone else who comes across this post, I got it working with some help from the linux-usb mailing list.  They tracked it down to the scanner registering itself as a keyboard and then power cycling and registering as a custom POS device.  I contacted the manufacturer and they sent me a barcode (99940) which when scanned locked the device into USB keyboard mode.  It then worked fine as a standard keyboard.

----------

