Using a remote host's USB port as local USB (Linux and Windows)

LinuxUsbRemote Access

Linux Problem Overview


I have a USB device that reads data from a system and transfers them to the computer. I am wondering if it's possible to have a Linux single board PC (i.e. Raspberry Pi) to run a script and be a remote-server for my USB device and I can connect to that "remote-server"(Linux) through SSH or FTP or another protocol (over the Internet) and mount that USB port to my computer. Any software would do it, you know how terminal service connects the remote resources, and I need the same, but preferably on a Linux board.

My system is Windows 7, so I need to mount that remote-USB as a "local port" so the software thinks it's communicating locally, and it'll find the reader.

Linux Solutions


Solution 1 - Linux

There is an open source project called usbip that provides functionality to share and/or mount a remote USB device over an IP network (LAN/Internet).

There are also at least three commercial products that provide this functionality with better documentation and UI. I've included links to the commercial products at the end of this reply.

From the usbip web page:

> To share USB devices between computers with their full functionality, USB/IP encapsulates "USB I/O messages" into TCP/IP payloads and transmits them between computers. Original USB device drivers and applications can be also used for remote USB devices without any modification of them. A computer can use remote USB devices as if they were directly attached

The usbip server process runs on Linux systems and clients are available for Linux and Windows - the project has apparently been around since 2005, and they've had a signed Windows client driver since 2011. In theory, depending on the repositories configured on your Raspberry Pi, you should be able to execute sudo aptitude install usbip to install the server-side drivers and application.

Note that if you use Ubuntu 14.10 (Utopic Unicorn) or newer, you do not need to install the usbip package: the usbip tools are part of the linux-tools-generic package, and the binaries are already available in /usr/lib/linux-tools-KERNEL-VERSION/.

A walkthrough tutorial on how to install and use usbip is available at HowToForge:

The Windows client has advanced since the HowToForge tutorial and has a little more interface now instead of just a command-line tool.

Commercial USB-over-IP tools:

Fabula-Tech USB-over-Network - runs on Windows & Linux - trial available:

Eltima Software USB Network Gate - runs on Windows, Mac OS X, & Linux - trial available:

Incentives Pro/SimplyCore LLC USB Redirector - runs on Windows & Linux - apparently free for Linux server and a free Windows client is available:

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionCaspianView Question on Stackoverflow
Solution 1 - LinuxMKarthaView Answer on Stackoverflow