You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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:
use a Linux machine as the usbip server
use a Windows machine, but attach the camera to a USB 3.2 Type-C port (although it's still laggy)
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
The text was updated successfully, but these errors were encountered:
stodor89
changed the title
Webcam cannot take image/video at resolutions >= 1280x720 if connected to a USB2 port.
Webcam cannot take image/video at resolutions >= 1280x720 if connected to a USB2 port
Aug 5, 2024
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:
(kernel) Windows network driver gets client USBIP request
(usermode) usbipd-win receives it and translates it to a VirtualBox driver ioctl
(kernel) VirtualBox driver actually sends the URB to the USB stack
(kernel) USB stack eventually receives result and sends it to VirtualBox driver, which in turn sends it to usbipd-win
(usermode) usbipd-win translates the VirtualBox result into USBIP and sends it to the network
(kernel) network stack sends the reply to the client
The 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
The text was updated successfully, but these errors were encountered: