USB Device Sharing over IP Network

usbip-project

News

The latest release is available for download.

Overview

The USB/IP Project aims to develop a general USB device sharing system over IP network. To share USB devices between computers with their full functionality, USB/IP encapsulates "USB protocols" into IP packets 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; for example, we can ...

In a client host, the VHCI (Virtual Host Controller Interface) driver is implemented as a USB host controller driver. The VHCI driver emulates a real USB host controller interface for virtual attachment/detachment, enumeration and initialization of remote USB devices. It encapsulates USB request blocks and then transmits USB/IP packets to remote server hosts. In a server host, the Stub driver is implemented as a USB per-device driver. The Stub driver decapsulates USB/IP packets into USB requests and then submit them to real USB devices.

usbip-design

USB/IP Design Overview

We have implemented USB/IP in Linux Kernel 2.6 series. The I/O performance is enough practical in local area network with original USB device drivers, including isochronous devices. The USB/IP implementation is available under the open source license GPL.

Documentation

Anyway, if you have any question or comment, please contact me.

Screenshots

usbview screenshot

usbview Screenshot

A remote USB webcam with an ov511 chip is virtually attached to a computer. We can see ov511 under USB VHCI Root Hub.
xawtv screenshot

Desktop Screenshot

xawtv is working for a remote USB webcam. A remote USB-HDD is also attached to the computer. Click the picture to enlarge.

Downloads

Download is available from sourceforge.net. Please visit our project page.

Please note that this is a pre-alpha release.

Links

Contact

my email address


SourceForge.net Logo Valid HTML 4.0! Valid CSS!