0

Actually I'm enjoying with WSL2. I would like to use my XBOX / KINECT within WSL2 / Ubuntu.

To do that,I need to make in communication the USB ports of the usbip client which run in Linux with the usbip server which run on Windows. This is exactly what the project below does :

https://github.com/cezanne/usbip-win

These are the usb device address of my PC :

usbip.exe list -l -

busid 1-129 (05e3:0608) Genesys Logic, Inc. : Hub (05e3:0608)
busid 1-167 (05e3:0608) Genesys Logic, Inc. : Hub (05e3:0608)

busid 1-149 (0480:a007) Toshiba America Inc : External Disk USB 3.0
(0480:a007)

busid 1-175 (2109:0813) VIA Labs, Inc. : unknown product (2109:0813)
busid 1-89 (2109:2813) VIA Labs, Inc. : unknown product (2109:2813)
busid 1-220 (25a7:fa23) unknown vendor : unknown product (25a7:fa23)
busid 1-177 (048d:8297) Integrated Technology Express, Inc. : unknown
product (048d:8297)
busid 1-122 (1058:0704) Western Digital Technologies, Inc. : My Passport
Essential (WDME) (1058:0704)
busid 1-43 (2109:0813) VIA Labs, Inc. : unknown product (2109:0813)
busid 1-144 (05ac:0250) Apple, Inc. : Aluminium Keyboard (ISO) (05ac:0250)
busid 1-184 (1058:25a3) Western Digital Technologies, Inc. : unknown
product (1058:25a3)
busid 1-218 (2109:2813) VIA Labs, Inc. : unknown product (2109:2813)
busid 1-209 (045e:02c4) Microsoft Corp. : unknown product (045e:02c4)
busid 1-181 (0480:a207) Toshiba America Inc : unknown product (0480:a207)
busid 1-29 (093a:2510) Pixart Imaging, Inc. : Optical Mouse (093a:2510)
busid 1-134 (0bc2:61b5) Seagate RSS LLC : unknown product (0bc2:61b5)
busid 1-158 (05ac:1006) Apple, Inc. : Hub in Aluminum Keyboard (05ac:1006)

I went on a real linux installation for understand what's the address of my XBOX :

[ 2.392735] usb 2-8: new SuperSpeed Gen 1 USB device number 4 using xhci_hcd
[ 2.413596] usb 2-8: New USB device found, idVendor=045e, idProduct=02c4,
bcdDevice= 1.00
[ 2.413596] usb 2-8: New USB device strings: Mfr=1, Product=2,
SerialNumber=4
[ 2.413597] usb 2-8: Product: Xbox NUI Sensor
[ 2.413597] usb 2-8: Manufacturer: Microsoft

given that informations,this is what I did on windows 10 :

C:\Users\marietto2020\Desktop\WSL\Kinect\usbip-win (master -> origin)
λ usbip.exe bind -b 1-209
usbip: info: bind_device: bind device on busid 1-209: complete

C:\Users\marietto2020\Desktop\WSL\Kinect\usbip-win (master -> origin)
λ usbipd -d -4
usbipd: info: starting usbipd (usbip 1.0.0)
usbip: debug:
C:\work\usbip-win\userspace\src\usbipd\usbipd_sock.c:38:[build_sockfd]
opening 0.0.0.0:3240
usbip: info: listening on 0.0.0.0:3240

instead,this is what I did on Ubuntu 20 :

root@DESKTOP-N9UN2H3:/mnt/c/Users/marietto2020/Desktop/WSL/WSL/Ubuntu-KVM/WSL2-Linux-Kernel/tools/usb/usbip#
usbip attach -r 192.168.1.6 -b 1-209
usbip: error: Attach Request for 1-209 failed - Request Completed
Successfully

this is what happens when the linux client connects to the Windows server :

usbip: info: connection from 192.168.1.6:51470
usbip: debug:
C:\work\usbip-win\userspace\lib\usbip_network.c:156:[usbip_net_recv_op_common]
version mismatch: 4353 273
usbip: debug:
C:\work\usbip-win\userspace\src\usbipd\usbipd_accept.c:18:[recv_pdu]
recv_pdu: could not receive opcode: 0

In short terms usbipd denies if protocol versions mismatched. Infact the usbip version that I use inside WSL2 is :

root@DESKTOP-N9UN2H3:/mnt/i/macos-haxm# usbip version

usbip (usbip-utils 2.0)

instead,the windows version is 0.1.0,got from here :

https://github.com/cezanne/usbip-win/releases

What should I do to make it work ? what's the easier way ? To use another version of usbip in Linux or in Windows ?

Where I can find the source code of usbip for Windows and for Linux ? I suppose that I need to find the versions that match.

I need that someone compiles the same version of usbip for Windows that we run on WSL2,I suppose this version :

root@DESKTOP-N9UN2H3:/mnt/i/macos-haxm# usbip version
usbip (usbip-utils 2.0)

this goes beyond my abilities and beyond the abilities of a lot of us. Thanks.

  • Usbip has been built into the Linux kernel for years. Usbip is included in Ubuntu's linux-tools-generic package. No idea if that will work on WSL2 since I'm not an expert on how WSL2 works. Here is how I tested USBIP (different versions) between Ubuntu and Debian. – user535733 Apr 29 at 21:07
  • yes man. its working fine in WSL2 / Ubuntu 20. Problem is that the version embedded inside it is 2.0,but on the windows side I'm using the version 0.1. They are different,so they can't communicate. – john_connor Apr 29 at 21:17
  • I see a couple USBIP v2.0 available in GitHub. Downgrading USBIP in Ubuntu would be very challenging, considering that it requires changing the kernel source code. – user535733 Apr 29 at 22:24
  • The maintainer of this github.com/cezanne/usbip-win says : "The version of usbip.exe does not matter to your problem. It just a simple string which does not relate to kernel. The most important version is a USBIP_VERSION macro in source. I have confirmed that an up-to-date linux kernel(such as ubuntu 20.04) still uses 0x111 as USBIP_VERSION, which is same with the version of usbip-win",so I don't know what else to do. – john_connor Apr 29 at 22:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.