When running on a recent 6.12+ kernel Raspberry Pi, the VirtualHere Device Client can send the USB Signal out the USB-C (DEVICE) port.
This is really useful for KVM/IP type systems or industrial control systems, where the USB device can be redirected to a target that does not need any VirtualHere Client software installed for the remote USB device to be accessible.
Most full speed and high speed devices should redirect out the USB-C port successfully. These include USB disks, fingerprint readers, Security Tokens, Serial Adapters, Wifi dongles, Bluetooth dongles, Speakers, Microphone, Headset etc.
Instructions:
Run the Virtualhere Device Client (vhuitarm64g) on the Raspberry Pi machine and plug the Pi into the target machine that you want to remotely access a USB device. The VirtualHere Device Client works like a normal VirtualHere client, so Auto-Use etc work the same way.
On the Pi, it will show a GUI with the available USB devices on the network. Right click on a USB device you want to use and select Use.
The USB-C port on the Pi will now become the remote USB Device.
Limitations:
- High bandwidth Isochronous Devices like Webcams currently do not work
- Plug USB 3 devices into into a USB 2 ports on the VirtualHere Server first. The Pi USB-C DEVICE port only supports High Speed USB 2, and Full Speed USB 1.1 output, not Super-speed USB or Low-speed 1.0 USB.
- Make sure the VirtualHere Server machine and VirtualHere Device Client Pi are using a good WiFi connection or preferably Ethernet because the data transmission is slower than if regular VirtualHere software was on both sides of the connection.
- Since the Pi only has one USB-C port - only one device can be used at a time. Stop using the device before trying to use another.
- Some complicated USB devices with more than 7 endpoints will not work
If the server is in trial mode, the client is limited to 5 minutes usage per device.
Any questions/comments/bugs please post on this forum or email mail [at] virtualhere.com (mail[at]virtualhere[dot]com)
thank you for this featureI…
thank you for this feature
I was waiting for it for a long time (at least since 2021) I thought it needed an FPGA to work
will the a pi zero 2 w work as well ? (yes the wifi is 2.4Ghz Only) but the microUSB is otg compatible, so theoretically it should also work. and I can add a GPIO 100mbps ethernet nic
and how is the Pi4 getting powered ? from the host, or should we add a little otg power splitter to power the Pi and connect the OTG port to the laptop ?
again, thanks a lot for this feature.
.
Yes it will work. I don't have one to test (I was testing on a pi4/5) but as long as you write the latest 64-bit RaspberryOS on it, then run the VirtualHere Device Client it will work. WiFi has more latency so it will be slower but it depends what you need to pass through? What USB device do you want to pass-through?
All Pis except 5 can be powered directly from the USB-C port only. Whereas i had trouble with the Pi5, it needed more power than just the USB-C port on my laptop could provide, so it kept cutting out. I suppose you can tweak the kernel to turn off most things e.g HDMI/bluetooth subsystems and maybe get it to boot reliably.
If you are running VirtualHere Server 4.8.0 or later and you run the VirtuaHere Client 5.9.0 or later on any machine you can remotely redirect a USB device out the pi port.
I haven't documented this fully yet as of now. But basically you can right click on the Device and select Send To and that will show the pi02w or whatever available Pi Device Clients are on the network that can do OTG. Thereore you dont actually need VNC or screen access to the pi to "use" the device. You can trigger the "Use" remotely. Furthermore you can Stop using remotely by simply selecting the device in any VirtuaHere client and selecting Disconnect from User. The pi3/4/5 does need to run either the Virtualhere GUI Device Client or the Virtualhere Console Device Client first e.g as a background daemon.
(To emulate an actual USB Hub would require an FPGA, however i found the limitations of just one device on the pi is pretty useful anyway, and its not as slow as i was expecting)
I needed this setup mainly…
I needed this setup mainly to pass-through a Yubikey Dongle for Fido2 authentication (it need a person to touch the device to activate the authentication)
the Pi zero 2 w can be fully powered by the micro usb otg port for this purpose, and the fact that we can remotly plug a USB without a VNC is even best suited for the z2w it runs better without x11 and they are cheap we can plug multiple ones on a Hub and plug multiple devices.
I will try it once i am back home.
again, thank you for this feature, it helps a LOT.
for the Pi5 power issue you…
for the Pi5 power issue you can use a USB-C power splitter to provide the power independently from the another source, something like this :
https://www.aliexpress.com/i/1005005514755174.html
.
I tested with my YubiKey 5C NFC FIPS .
If the VirtualHere Device Client is running on your pi02w and is connected to the VirtualHere server, then you will should see the Send To option (below) from any other client.
I have the Yubikey plugged into a Pi5 VirtualHere Server, i right click and Send To the VirtualHere Device Client running on a Pi4 plugged in via the USB-C port into my laptop. I then test using the demo.yubikey.com on my laptop and it works with my fingerprint etc. I reach across to the server and press my fingerprint where the physical Yubikey is and it works.
When you have finished using the Yubikey remotely you can right click on it and select Disconnect from User (of course, you can also just use the local client on the pi02w and stop using there if you want)