Open stodor89 opened 2 months ago
Unfortunately, the performance of usbipd-win
is limited. That's by design. It uses the VirtualBox drivers, which require a roundtrip through user mode for USBIP. So, there is a lot of context switching per URB:
usbipd-win
receives it and translates it to a VirtualBox driver ioctlusbipd-win
usbipd-win
translates the VirtualBox result into USBIP and sends it to the networkThe only way to get better performance is to handle everything in kernel mode; that's how the Linux usbipd server does it. However, writing such a driver is hard, and getting it signed by Microsoft is expensive. That's why usbipd-win
leverages the existing VirtualBox drivers, at the cost of roundtrip performance.
The usbipd-win server a Windows 11 machine, running the latest version of usbipd-win (4.3.0). I've tried with different cameras and computers to make sure the hardware isn't faulty.
The usbip client is running Linux (Ubuntu 22.04). On it, I'm executing the following command, but it just stays like that and nothing happens:
Whether the usbip client is a WSL2 (with custom kernel that has v4l2), a VM, or a separate computer, doesn't seem to matter -- I've tried all of these. I've also tried to open the camera with MPlayer, Cheese, and Google Chrome, too, but nothing has worked so far.
The way I can get the camera to work is:
However, most laptops run Windows, and have their integrated cameras connected to a USB2 hub, so I can't get them to work at native resolution.
I can provide more information if needed. Here's a file with the output of lsusb, usbip list, and v4l2-ctl: specs.txt