Home > Uncategorized > Software: USB device redirector over IP

Software: USB device redirector over IP

There are several pieces of client/server software that solve the problem of USB device redirect, but I could only find a single decent one that was open source; simply, USBIP.

Unfortunately, I’m sure they’d be happy to have someone write it, there is no Windows Kernel driver that is part of the USBIP project, so there is only a Windows USBIP client that can connect to USB devices served off of Linux.

Two major trustworthy, yet hacky, software shops released products to solve the USB device redirection issue: Eltima and FabulaTech. Cheesy company names aside, from the research I performed, it turns out that these look like the only two of the few products that allow the “serving” of USB devices off a Windows host that look like they weren’t developed by one man shops.

I have yet to test FabulaTech’s software, but Eltima’s does not allow more than one client to be connected to a served device at one time. This also means that the device becomes unavailable on the serving host when it is served out. I can imagine that this is a nearly impossible task to solve, picturing the idea of an I/O device trying to spit data to and from a system that didn’t request it. That should make the Kernel panic. A scripting API and/or a global hotkey feature would be great to allow a user to easily serve and un-serve a device. Hopefully you can configure the client to poll a server repeatedly at a set interval.

Eltima’s software does provide two great features: a password to connect to a device served, and encryption.

HP’s RGS is another solution which provides USB redirection as follows:

Remote USB for the RGS Receiver can be configured in one of three modes:

Local
USB devices are to be used exclusively on the local system. USB devices plugged into the Receiver system will not be "exported" to the Sender.

Remote
USB devices are to be used exclusively on the Sender system. USB devices plugged into the Receiver system will not be available for use on the Receiver. This is the case even when the Receiver is not connected to a Sender.

This mode is recommended for Thin Clients.

Local/Remote
USB devices plugged into the Receiver system while the Receiver is not connected to a Sender will be used on the Receiver system. USB devices plugged in after the Receiver has connected to a Sender will be "exported" to the Sender. Local devices will not be exported for remote use unless they are are unplugged and plugged back in while the Receiver is connected to a Sender. Exported devices will not be available for local use unless they are are unplugged and plugged back in while the Receiver is not connected to a Sender.

This mode is recommended for Workstations.

So, this isn’t a magic bullet either, but at least you could programmatically trigger a disconnect/reconnect of the device you wish to have mounted remotely after the connection occurs.

It seems like a tough situation to solve, yet RDP does it so elegantly. Finally, we turn our sites on RDP, and it’s underlying device magic, RemoteFX.
The Remote Desktop API is still available, but was packaged with Live Meeting and then SharedView in the Windows Vista client. It appears that this might be the best way to handle the situation. Too bad there aren’t any private solutions available.

Advertisements
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: