SideWinder GameVoice driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Despite it's a Microsoft product, it's actually very nice and useful. A
little pad with a few buttons and connectors for a headset. It's an USB
device, but it doesn't represent itself as an input/HID device:
   HID device not claimed by input or hiddev

I plugged it into a windows box and the USB protocol it uses looks very
simple (see attachment): everytime I press one of the eight buttons, it
sends one byte, a bitmap of the pressed buttons.

What would be the best way to have this device appear in the system?
Having a separate driver/device node? Or is it possible to have a small
driver that would translate the gamevoice commands into evdev messages
and have a new /dev/input/eventX device appear?

I could write something like that myself, my C skills are good enough
for that, I'd just need some advice how to use the kernel USB/evdev
interfaces.

tom
[883650 ms] UsbSnoop - MyDispatchInternalIOCTL(f56b8e80) : fdo=82adb998, Irp=848e0008, IRQL=2
[883650 ms]  >>>  URB 68 going down  >>> 
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
  PipeHandle           = 83a38fdc [endpoint 0x00000081]
  TransferFlags        = 00000003 (USBD_TRANSFER_DIRECTION_IN, USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000001
  TransferBuffer       = 857fc078
  TransferBufferMDL    = 00000000
  UrbLink              = 00000000
[883970 ms] UsbSnoop - MyInternalIOCTLCompletion(f56b8db0) : fido=848db578, Irp=82ae9a78, Context=855c96d0, IRQL=2
[883970 ms]  <<<  URB 67 coming back  <<< 
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
  PipeHandle           = 83a38fdc [endpoint 0x00000081]
  TransferFlags        = 00000003 (USBD_TRANSFER_DIRECTION_IN, USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000001
  TransferBuffer       = 85768370
  TransferBufferMDL    = 831f13d8
    00000000: 0c
  UrbLink              = 00000000
[883970 ms] UsbSnoop - DispatchAny(f56b7610) : IRP_MJ_INTERNAL_DEVICE_CONTROL
[883970 ms] UsbSnoop - MyDispatchInternalIOCTL(f56b8e80) : fdo=82adb998, Irp=82ae9a78, IRQL=2
[883970 ms]  >>>  URB 69 going down  >>> 
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
  PipeHandle           = 83a38fdc [endpoint 0x00000081]
  TransferFlags        = 00000003 (USBD_TRANSFER_DIRECTION_IN, USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000001
  TransferBuffer       = 85768370
  TransferBufferMDL    = 00000000
  UrbLink              = 00000000

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux