On Wed, 9 May 2007, Michael St. Laurent wrote:

> It's showing two keyboards?  There is only one connected.  It must be
> some kind of 'phantom' keyboard presented by the KVM switch.  The real
> keyboard is the Logitech one. 

The KVM switch has no intelligence of its own, so it can't create
"phantoms".  Furthermore this thing shows up behind a hub; again something
the switch couldn't do.

What exactly have you got plugged in to the KVM switch?  Is it a keyboard 
with USB ports attached and the trackball plugged into one of the ports?  
How many ports are there?  Is anything plugged into any of the other 
ports?

Here's a cut-down version of your output, showing what's connected to the
switch.  First you've got a hub.  It might be built into the keyboard:

Bus 002 Device 006: ID 058f:9254 Alcor Micro Corp. Hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed (or root) hub
  bMaxPacketSize0         8
  idVendor           0x058f Alcor Micro Corp.
  idProduct          0x9254 Hub
  bcdDevice            3.12
  iManufacturer           1 ALCOR
  iProduct                2 Generic USB Hub
  iSerial                 0 

Plugged into the hub are three low-speed devices.  First is a keyboard
(with 2 interfaces -- I have no idea what the reason is for that!):

Bus 002 Device 007: ID 046d:c312 Logitech, Inc. 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x046d Logitech, Inc.
  idProduct          0xc312 
  bcdDevice            1.00
  iManufacturer           1 BTC
  iProduct                2 USB Multimedia Keyboard
  iSerial                 0 

Then there's the Trackball:

Bus 002 Device 008: ID 046d:c404 Logitech, Inc. TrackMan Wheel
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x046d Logitech, Inc.
  idProduct          0xc404 TrackMan Wheel
  bcdDevice            2.20
  iManufacturer           1 Logitech
  iProduct                2 Trackball
  iSerial                 0 

Finally there's this funny thing.  It might be a keypad or something
like that:

Bus 002 Device 009: ID 10d5:000d Uni Class Technology Co., Ltd 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x10d5 Uni Class Technology Co., Ltd
  idProduct          0x000d 
  bcdDevice            1.00
  iManufacturer           1 No brand
  iProduct                2 SP04-A1
  iSerial                 3 2ôÒ

Anything there look familiar?  I'll include a portion of the other
descriptors from this device:

  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           59
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          4 HID Mouse
    bmAttributes         0x80
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Devices
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              7 Keyboard
      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

So interface 0 appears to be a more-or-less normal HID object.  Hard to 
say just what it is, though.

    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Devices
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              6 Mouse
      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

Interface 1 doesn't have an Interrupt-IN endpoint.  That's what your error 
messages are complaining about.  Such an endpoint is mandatory according 
to the USB HID specification; the device is definitely in violation of the 
spec.

This information should be present on your computer in a more-easily
digestable form in /proc/bus/usb/devices.  You may need to mount
/proc/bus/usb first (not all distributions mount it for you):

        mount -t usbfs none /proc/bus/usb

Then see what shows up in that file.

Alan Stern


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Linux-usb-users@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-users

Reply via email to