The goal is:
- Create a virtual USB web camera on Linux machine / Guest VM.
- Connect it to a Windows machine / host.
Unfortunately, there is no way of using any hardware connections.
The plan is:
- Use Linux as a simulated virtual USB device as shown in this tutorial. They use a Raspberry Pi with a real hardware camera connected to the Pi, but the idea is to use the software part and feed virtually crafted frames instead of using a real one.
- Now the VM should behave as a real hardware USB web camera, when it is connected to a USB master.
So, there are three ways, as far as I'm concerned (which both lead to a dead end with my level of knowledge):
- Somehow connect the VM as a USB slave to the Windows host machine. It seems impossible, since there will be a need of faking a USB connection on the physical USB bus.
- Create another VM, which will serve as a buffer. Somehow connect the WebCam VM to the Buffer VM and then use USBIP protocol to pass it into the Windows Host.
- Somehow virtually connect a USB host device to the WebCam VM, which should make the VM behave as a USB slave, and proxy everything via USBIP.
2 and 3 really are really similar and seem like the only way out. But I don't know if it could be done without writing any low-level driver stuff.
Help, please? I might be overcomplicating, but there seems to be no way to emulate a USB camera connection on Windows except for writing your own driver, which is exactly the thing I'm trying to avoid.