AristoChen / usb-proxy

A USB proxy based on raw-gadget and libusb
Apache License 2.0
136 stars 29 forks source link

Xbox handle for mapping #19

Open wzw88486969 opened 6 months ago

wzw88486969 commented 6 months ago

hello, author: When I use the Xbox handle for mapping, this problem occurs, It failed

//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------
w@w-BoDE-WXX9:~/Downloads/UbuntuKO$ uname -a
Linux w-BoDE-WXX9 5.15.0-89-generic #99~20.04.1-Ubuntu SMP Thu Nov 2 15:16:47 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------

w@w-BoDE-WXX9:~/Downloads/UbuntuKO$ lsmod | grep -E "dummy_hcd|raw_gadget"
raw_gadget             40960  0
dummy_hcd              45056  0

//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------
w@w-BoDE-WXX9:~/Downloads/UbuntuKO$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 27c6:5125 Shenzhen Goodix Technology Co.,Ltd. Goodix Fingerprint Device
Bus 001 Device 003: ID 0408:1040 Quanta Computer, Inc. ov9734_techfront_camera
Bus 001 Device 044: ID 045e:0b12 Microsoft Corp. Controller
Bus 001 Device 005: ID 8087:0026 Intel Corp.
Bus 001 Device 046: ID 0bda:8152 Realtek Semiconductor Corp. RTL8152 Fast Ethernet Adapter
Bus 001 Device 045: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------

w@w-BoDE-WXX9:~/Downloads/UbuntuKO$ lsusb -v -d 045e:0b12

Bus 001 Device 044: ID 045e:0b12 Microsoft Corp. Controller
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass        71
  bDeviceProtocol       208
  bMaxPacketSize0        64
  idVendor           0x045e Microsoft Corp.
  idProduct          0x0b12
  bcdDevice            5.09
  iManufacturer           1
  iProduct                2
  iSerial                 3
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0077
    bNumInterfaces          3
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass     71
      bInterfaceProtocol    208
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               4
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass     71
      bInterfaceProtocol    208
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               4
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               2
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass     71
      bInterfaceProtocol    208
      iInterface              0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass     71
      bInterfaceProtocol    208
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x00e4  1x 228 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass     71
      bInterfaceProtocol    208
      iInterface              0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass     71
      bInterfaceProtocol    208
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0

//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------

w@w-BoDE-WXX9:~/Downloads/UbuntuKO$ ls /sys/class/udc/
dummy_udc.0  usbip-vudc.0
w@w-BoDE-WXX9:~/Downloads/UbuntuKO$ cat /sys/class/udc/dummy_udc.0/uevent
USB_UDC_NAME=dummy_udc

//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------
w@w-BoDE-WXX9:~/Downloads/UbuntuKO$ sudo ./usb-proxy --vendor_id=045e --product_id=0b12 --verbose
Device is: dummy_udc.0
Driver is: dummy_udc
vendor_id is: 1118
product_id is: 2834
9 Devices in list
Target device not found
Device opened successfully
InterfaceNumber 1 AlternateSetting 0 has no endpoint, skip
InterfaceNumber 2 AlternateSetting 0 has no endpoint, skip
Setup USB config successfully
Start hotplug_monitor thread, thread id(2670)
Start for EP0, thread id(2668)
ep #0:
  name: ep1in-bulk
  addr: 1
  type: ___ blk ___
  dir : in  ___
  maxpacket_limit: 65535
  max_streams: 16
ep #1:
  name: ep2out-bulk
  addr: 2
  type: ___ blk ___
  dir : ___ out
  maxpacket_limit: 65535
  max_streams: 16
ep #2:
  name: ep5in-int
  addr: 5
  type: ___ ___ int
  dir : in  ___
  maxpacket_limit: 65535
  max_streams: 16
ep #3:
  name: ep6in-bulk
  addr: 6
  type: ___ blk ___
  dir : in  ___
  maxpacket_limit: 65535
  max_streams: 16
ep #4:
  name: ep7out-bulk
  addr: 7
  type: ___ blk ___
  dir : ___ out
  maxpacket_limit: 65535
  max_streams: 16
ep #5:
  name: ep10in-int
  addr: 10
  type: ___ ___ int
  dir : in  ___
  maxpacket_limit: 65535
  max_streams: 16
ep #6:
  name: ep11in-bulk
  addr: 11
  type: ___ blk ___
  dir : in  ___
  maxpacket_limit: 65535
  max_streams: 16
ep #7:
  name: ep12out-bulk
  addr: 12
  type: ___ blk ___
  dir : ___ out
  maxpacket_limit: 65535
  max_streams: 16
ep #8:
  name: ep15in-int
  addr: 15
  type: ___ ___ int
  dir : in  ___
  maxpacket_limit: 65535
  max_streams: 16
ep #9:
  name: ep1out-bulk
  addr: 1
  type: ___ blk ___
  dir : ___ out
  maxpacket_limit: 65535
  max_streams: 16
ep #10:
  name: ep2in-bulk
  addr: 2
  type: ___ blk ___
  dir : in  ___
  maxpacket_limit: 65535
  max_streams: 16
ep #11:
  name: ep-aout
  addr: 255
  type: ___ blk int
  dir : ___ out
  maxpacket_limit: 65535
  max_streams: 16
ep #12:
  name: ep-bin
  addr: 255
  type: ___ blk int
  dir : in  ___
  maxpacket_limit: 65535
  max_streams: 16
ep #13:
  name: ep-cout
  addr: 255
  type: ___ blk int
  dir : ___ out
  maxpacket_limit: 65535
  max_streams: 16
ep #14:
  name: ep-dout
  addr: 255
  type: ___ blk int
  dir : ___ out
  maxpacket_limit: 65535
  max_streams: 16
ep #15:
  name: ep-ein
  addr: 255
  type: ___ blk int
  dir : in  ___
  maxpacket_limit: 65535
  max_streams: 16
ep #16:
  name: ep-fout
  addr: 255
  type: ___ blk int
  dir : ___ out
  maxpacket_limit: 65535
  max_streams: 16
ep #17:
  name: ep-gin
  addr: 255
  type: ___ blk int
  dir : in  ___
  maxpacket_limit: 65535
  max_streams: 16
ep #18:
  name: ep-hout
  addr: 255
  type: ___ blk int
  dir : ___ out
  maxpacket_limit: 65535
  max_streams: 16
ep #19:
  name: ep-iout
  addr: 255
  type: ___ blk int
  dir : ___ out
  maxpacket_limit: 65535
  max_streams: 16
ep #20:
  name: ep-jin
  addr: 255
  type: ___ blk int
  dir : in  ___
  maxpacket_limit: 65535
  max_streams: 16
ep #21:
  name: ep-kout
  addr: 255
  type: ___ blk int
  dir : ___ out
  maxpacket_limit: 65535
  max_streams: 16
ep #22:
  name: ep-lin
  addr: 255
  type: ___ blk int
  dir : in  ___
  maxpacket_limit: 65535
  max_streams: 16
ep #23:
  name: ep-mout
  addr: 255
  type: ___ blk int
  dir : ___ out
  maxpacket_limit: 65535
  max_streams: 16
event: connect, length: 0
libusb: error [udev_hotplug_event] ignoring udev action change
libusb: error [udev_hotplug_event] ignoring udev action change
event: control, length: 8
  bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0100, wIndex: 0x0000, wLength: 64
  type = USB_TYPE_STANDARD
  req = USB_REQ_GET_DESCRIPTOR
  desc = USB_DT_DEVICE
Control transfer succeed
ep0: transferred 18 bytes (in)
event: control, length: 8
  bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0100, wIndex: 0x0000, wLength: 18
  type = USB_TYPE_STANDARD
  req = USB_REQ_GET_DESCRIPTOR
  desc = USB_DT_DEVICE
Control transfer succeed
ep0: transferred 18 bytes (in)
event: control, length: 8
  bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0200, wIndex: 0x0000, wLength: 9
  type = USB_TYPE_STANDARD
  req = USB_REQ_GET_DESCRIPTOR
  desc = USB_DT_CONFIG
Control transfer succeed
ep0: transferred 9 bytes (in)
event: control, length: 8
  bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0200, wIndex: 0x0000, wLength: 119
  type = USB_TYPE_STANDARD
  req = USB_REQ_GET_DESCRIPTOR
  desc = USB_DT_CONFIG
Control transfer succeed
ep0: transferred 119 bytes (in)
event: control, length: 8
  bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0300, wIndex: 0x0000, wLength: 255
  type = USB_TYPE_STANDARD
  req = USB_REQ_GET_DESCRIPTOR
  desc = USB_DT_STRING
Control transfer succeed
ep0: transferred 4 bytes (in)
event: control, length: 8
  bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0302, wIndex: 0x0409, wLength: 255
  type = USB_TYPE_STANDARD
  req = USB_REQ_GET_DESCRIPTOR
  desc = USB_DT_STRING
Control transfer succeed
ep0: transferred 22 bytes (in)
event: control, length: 8
  bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0301, wIndex: 0x0409, wLength: 255
  type = USB_TYPE_STANDARD
  req = USB_REQ_GET_DESCRIPTOR
  desc = USB_DT_STRING
Control transfer succeed
ep0: transferred 20 bytes (in)
event: control, length: 8
  bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0303, wIndex: 0x0409, wLength: 255
  type = USB_TYPE_STANDARD
  req = USB_REQ_GET_DESCRIPTOR
  desc = USB_DT_STRING
Control transfer succeed
ep0: transferred 58 bytes (in)
event: control, length: 8
  bRequestType: 0x00 (OUT), bRequest: 0x09, wValue: 0x0001, wIndex: 0x0000, wLength: 0
  type = USB_TYPE_STANDARD
  req = USB_REQ_SET_CONFIGURATION
Activating 2 endpoints on interface 0
int_out: addr = 2, ep = #1
Creating thread for EP02
int_in: addr = 2, ep = #10
Creating thread for EP82
Start writing thread for EP02, thread id(2674)
Start reading thread for EP02, thread id(2673)
Start reading thread for EP82, thread id(2675)
process_eps done
Start writing thread for EP82, thread id(2676)
Activating 0 endpoints on interface 1
process_eps done
Activating 0 endpoints on interface 2
process_eps done
libusb: error [udev_hotplug_event] ignoring udev action change
EP2(int_out): read 5 bytes from host
EP2(int_out): enqueued 5 bytes to queue
EP82(int_in): enqueued 8 bytes to queue
EP82(int_in): wrote 8 bytes to host
libusb: error [udev_hotplug_event] ignoring udev action bind
EP82(int_in): enqueued 8 bytes to queue
EP82(int_in): wrote 8 bytes to host
EP82(int_in): enqueued 48 bytes to queue
EP82(int_in): wrote 48 bytes to host
EP82(int_in): enqueued 48 bytes to queue
EP82(int_in): wrote 48 bytes to host
EP82(int_in): enqueued 48 bytes to queue
EP82(int_in): wrote 48 bytes to host
EP82(int_in): enqueued 48 bytes to queue
EP82(int_in): wrote 48 bytes to host
EP82(int_in): enqueued 48 bytes to queue
EP82(int_in): wrote 48 bytes to host
EP82(int_in): enqueued 48 bytes to queue
EP82(int_in): wrote 48 bytes to host
EP82(int_in): enqueued 48 bytes to queue
EP82(int_in): wrote 48 bytes to host
EP82(int_in): enqueued 48 bytes to queue
EP82(int_in): wrote 48 bytes to host
EP82(int_in): enqueued 48 bytes to queue
EP82(int_in): wrote 48 bytes to host
EP82(int_in): enqueued 48 bytes to queue
EP82(int_in): wrote 48 bytes to host
EP82(int_in): enqueued 48 bytes to queue
EP82(int_in): wrote 48 bytes to host
EP82(int_in): enqueued 48 bytes to queue
EP82(int_in): wrote 48 bytes to host
EP82(int_in): enqueued 48 bytes to queue
EP82(int_in): wrote 48 bytes to host
EP82(int_in): enqueued 48 bytes to queue
EP82(int_in): wrote 48 bytes to host
EP82(int_in): enqueued 48 bytes to queue
EP82(int_in): wrote 48 bytes to host
EP82(int_in): enqueued 48 bytes to queue
EP82(int_in): wrote 48 bytes to host