JarryG
Expert
Expert

Honestly, I think you should read something about USB, how it works. Because you are mixing things "a little".

"...the game is not with the usb port itself..."

No, it is with usb-device (or more exactly, with usb-specification).

"...each usb port has a usb controller..."

Each usb-port is attached to usb-controller. Very rarely each usb-port has its own controller.

"...the problem can we make a virtual USB Controller..."

Yes, we can, but it does not solve the problem, which is neither usb-controller, nor usb-port. It is USB-device, or better said, USB-specification itself. I do not want to go deep into details, but basically what happens when you attach usb-device to usb-port is device-enumeration. As a part of it, reset-signal is sent from usb-controller to usb-device, then speed is agreed upon, address is assigned to device, firmware is read, and usb-device is set to state "configured". If you even could make something like "usb-splitter", the other host would start its own usb-enumeration, reset device, assign new address, etc. Thus any configuration from the first host would be lost, and the other host could not communicate with usb-device.

You'd better face the fact: it is not possible to use single usb-device with multiple hosts (be it virtual or physical) using nothing but usb-bus at the same time. Period.

_____________________________________________ If you found my answer useful please do *not* mark it as "correct" or "helpful". It is hard to pretend being noob with all those points! :winking_face:
Reply
0 Kudos