USB-IP is a protocol that allows you to share USB devices over a network between Linux and Windows computers. This lets you access USB devices connected to one computer from another computer on the same network. In this note, I'll explain how to set up USB-IP on both Linux and Windows servers and clients.
Linux USB-IP Server
On Linux, install the usbip
package:
sudo apt install usbip
Also install linux-tools-generic
and hwdata
for additional USB utilities:
sudo apt install linux-tools-generic hwdata
Attach the USB device you want to share, then run:
sudo usbipd -D
This lists available USB devices to share. Note the busid
of the device to share, then run:
sudo usbip bind --busid <busid>
The device is now bound to the server, ready for clients.
Linux USB-IP Client
On the Linux client, install usbip
, linux-tools-generic
and hwdata
.
Load the vhci-hcd module:
sudo modprobe vhci-hcd
To connect to the shared device, run:
sudo usbip attach -r <server_ip> -b <busid>
Where <server_ip>
is the server IP and <busid>
is the device busid
. The device will now appear locally.
Windows USB-IP Server
On Windows, install the USB/IP Virtual USB Device Server. Run the app and share the desired USB device, noting its GUID.
Windows USB-IP Client
Install the USB/IP Virtual USB Device Driver on Windows.
To connect, run:
usbipd attach -r <server_ip> -b <device_guid>
Where <server_ip>
is the server IP and <device_guid>
is the device GUID