USB/IP - ArchWiki

# USB/IP

From ArchWiki
Jump to navigation Jump to search

From the USB/IP site:

  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 TCP/IP payloads and transmits them between computers.

## Installation

Install usbip.

## Usage

### Server Setup

The server should have the physical USB device connected to it.

Load the USB/IP kernel module:

    $ sudo modprobe usbip_host

Start and Enable the USB/IP systemd service:

    $ sudo systemctl start usbipd.service
    $ sudo systemctl enable usbipd.service

List the connected devices:

    $ usbip list -l

Bind the required device. For example, to share the device having busid 1-1.5:

    $ usbip bind -b 1-1.5

To unbind the device:

    $ usbip unbind -b 1-1.5

After binding, the device can be accessed from the client.

### Client Setup

Load the VHCI kernel module:

    $ sudo modprobe vhci-hcd

List devices available on the server:

    $ usbip list -r <Server IP Address>

Attach the required device. For example, to attach the device having busid 1-1.5:

    $ usbip attach -r <Server IP Address> -b 1-1.5

### Disconnecting Devices

A device can be disconnected only after detaching it on the client.

List attached devices:

    $ usbip port

Detach the device:

    $ usbip detach -p <Port Number>

Unbind the device on the server:

    $ usbip unbind -b <busid>

Note: USB/IP by default requires port 3240 to be open. If a firewall is running, make sure that this port is open. For detailed instruction on configuring the firewall, go to Category:Firewalls

## Man Page

See usbip(8).

## See Also

- Official USB/IP Project Site
- Linux Kernel "README for usbip-utils"
- "How To Setup and use USB/IP"

Category:

- Storage