VirtualHere Client and OTG Port

Hello,

I have the licensed version for Linux and everything works impeccable with windows and android clients but now I have a new goal to solve the situation explained below.

I have a windows pc that does not have internet access and I can not add or edit the existing programs of this pc and the big problem is that I need to connect a dongle that is on my VirtualHere (linux) server.

So far the best solution that I imagined is to connect a mobile device (android with OTG cable, Raspberry Pi Zero or others) with VirtualHere client and passthrough emulated device to OTG port...

Is it possible to do this?

#2

No i dont have that type of client (yet) it is in the todo list however, but it will probably be in 3-6 months

#3

What about that subject!?

Raspberry pi zero / Virtualhere client / OTG port

Any release coming ?

#4

No release at the moment ive been busy with other stuff

Actually the pi4 is better as a client with its USB 3 OTG port,so i will write it for that as a base rather than the zero

#5

Hi. Have you managed to find any time to write this support? I have a FreeBSD machine I'd very much like to connect and, since there's no native client, this seems like the next-best option.
Thanks.

#6

Its made it to the top of my list now and im working on it... unfortunately it looks like i need to patch kernel source to get it to work fully, and it does have some limitations. It will only work on the pi4 and it will only pass through "high-speed" devices. There is still a fair bit of work to do, but at the moment it does pass through usb disks ok but i still need to test it a lot so it will be a few months..

#7

I have been working on this for a while and its generally not going to work unfortunately.

The reason is the OTG port in the pi4 or any other SOC does not have the required events that are needed to property implement pass-through. Although basic devices work like usb disks via virtualhere out the OTG port, it is very fragile as error conditions cannot be handled correctly due to the lack of specific registers in the OTG drivers in linux and the IP blocks they use like musb, and dwc2.

I'm going to attempt to see if it can be done on an FPGA instead, actually it definitely can be done in FPGA, its just my skill level with FPGA's is at a newbie level so that is the main issue at the moment.

#8

Was there ever any progress made on this? I would really love this functionality.

#9

After substantial effort to try to optimize this, its not actually possible to work well. The single reason is that USB devices can only communicate a small amount of bytes at a time via the OTG port. Normally you dont notice this because its all internal to the CPU and small amounts of bytes a transmitted/received very fast. However over the network this is impossible and that is why no one has done such a thing.  There are products out there which do what you want but they will always be very local and all those products do is just put the USB signal over some other media like fibreoptic or cat 6 Ethernet cable because they cant get around the latency issue otherwise.