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 I/O messages" into IP packets and transmits them between computers. Download the latest code.
about
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 I/O messages" 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 ...
- USB storage devices: fdisk, mkfs, mount/umount, file operations, play a DVD movie and record a DVD-R media.
- USB keyboards and USB mice: use with linux console and X Window System.
- USB webcams and USB speakers: view webcam, capture image data and play some music.
- USB printers, USB scanners, USB serial converters and USB Ethernet interfaces: ok, use fine.
It is currently implemented as Linux device drivers and available under the open source license GPL. Its I/O performance is enough practical in local area network for all types of devices, including isochronous devices, without any modification of Linux-original USB device drivers.
Documentation
Overview
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.

USB/IP Design Overview
The project Wiki is here. See also source code and below papers.
- USB/IP - a Peripheral Bus Extension for Device Sharing over IP Network. Takahiro Hirofuchi, Eiji Kawai, Kazutoshi Fujikawa, and Hideki Sunahara. In the Proceedings of the FREENIX Track: USENIX Annual Technical Conference, pp. 47-60, April 2005. (Awarded FREENIX Track Best Paper!)
- USB/IP: A Transparent Device Sharing Technology over IP Network. Takahiro Hirofuchi, Eiji Kawai, Kazutoshi Fujikawa, and Hideki Sunahara. IPSJ Transactions on Advanced Computing Systems, Vol. 46, No. SIG11(ACS11), pp. 349-361, August 2005. (Also appeared in IPSJ Digital Courier.)
Install
You need to compile both kernel modules and utility programs. See READMEs in tarball.
Usage
See READMEs in tarball.
TODO & Future Plan
Read Todo list in the project Wiki.
FAQ
Read FAQ in the project Wiki.
- "client" and "server" are confusing...
A server host has physical USB devices which are exported to a client host. In the server host, load usbip_common_mod.ko and vhci-hcd.ko, and then use usbipd. The client host imports a USB device virtually; the client host may not have a real USB device. In the client host, load usbip_common_mod.ko and usbip.ko, and then use usbip. - USB/IP is stable ?
It basically works for most USB devices under LAN (Gb Ethernet is better). It has minimum features (e.g., attach/detach) and your contribution is welcome. - Do you have a plan to develop the MS Windows client of USB/IP ?
Some people are trying to develop it. But, the Host Controller API of MS Windows is not well-documented. This issue was discussed in the project forum in sourceforge.net. - Does your USB/IP implementation have compatibility with other similar products?
No, currently.
Screenshots
usbview
A remote USB webcam with an ov511 chip is virtually attached to a computer. We can see ov511 under USB VHCI Root Hub.
Desktop
xawtv is working for a remote USB webcam. A remote USB-HDD is also attached to the computer.
Download
Latest Release
Download is available from sourceforge.net.
- File Releases and its RSS
SVN Repository
See this instruction.
Community
Mailing Lists
- usbip-devel (the character) lists.sourceforge.net
- Subscribe/Unsubscribe & Archives
Public Forums
Links
- Project Summary in sourceforge.net
- Wiki | RSS feeds | Statistics | Public Forums | Mailing Lists
- Old Page Mirror from http://usbip.naist.jp/
Contact
Normally, please use the above mailing lists and forums.
- usbip-devel (the character) lists.sourceforge.net (Recommended)
- Takahiro Hirofuchi < hirofuchi (the character) users.sourceforge.net >