|  | # | 
|  | # README for usbip-utils | 
|  | # | 
|  | # Copyright (C) 2011 matt mooney <mfm@muteddisk.com> | 
|  | #               2005-2008 Takahiro Hirofuchi | 
|  |  | 
|  |  | 
|  | [Requirements] | 
|  | - USB/IP device drivers | 
|  | Found in the staging directory of the Linux kernel. | 
|  |  | 
|  | - libudev >= 2.0 | 
|  | libudev library | 
|  |  | 
|  | - libwrap0-dev | 
|  | tcp wrapper library | 
|  |  | 
|  | - gcc >= 4.0 | 
|  |  | 
|  | - libtool, automake >= 1.9, autoconf >= 2.5.0, pkg-config | 
|  |  | 
|  | [Optional] | 
|  | - hwdata | 
|  | Contains USB device identification data. | 
|  |  | 
|  |  | 
|  | [Install] | 
|  | 0. Generate configuration scripts. | 
|  | $ ./autogen.sh | 
|  |  | 
|  | 1. Compile & install the userspace utilities. | 
|  | $ ./configure [--with-tcp-wrappers=no] [--with-usbids-dir=<dir>] | 
|  | $ make install | 
|  |  | 
|  | 2. Compile & install USB/IP drivers. | 
|  |  | 
|  |  | 
|  | [Usage] | 
|  | server:# (Physically attach your USB device.) | 
|  |  | 
|  | server:# insmod usbip-core.ko | 
|  | server:# insmod usbip-host.ko | 
|  |  | 
|  | server:# usbipd -D | 
|  | - Start usbip daemon. | 
|  |  | 
|  | server:# usbip list -l | 
|  | - List driver assignments for USB devices. | 
|  |  | 
|  | server:# usbip bind --busid 1-2 | 
|  | - Bind usbip-host.ko to the device with busid 1-2. | 
|  | - The USB device 1-2 is now exportable to other hosts! | 
|  | - Use `usbip unbind --busid 1-2' to stop exporting the device. | 
|  |  | 
|  | client:# insmod usbip-core.ko | 
|  | client:# insmod vhci-hcd.ko | 
|  |  | 
|  | client:# usbip list --remote <host> | 
|  | - List exported USB devices on the <host>. | 
|  |  | 
|  | client:# usbip attach --remote <host> --busid 1-2 | 
|  | - Connect the remote USB device. | 
|  |  | 
|  | client:# usbip port | 
|  | - Show virtual port status. | 
|  |  | 
|  | client:# usbip detach --port <port> | 
|  | - Detach the USB device. | 
|  |  | 
|  |  | 
|  | [Example] | 
|  | --------------------------- | 
|  | SERVER SIDE | 
|  | --------------------------- | 
|  | Physically attach your USB devices to this host. | 
|  |  | 
|  | trois:# insmod path/to/usbip-core.ko | 
|  | trois:# insmod path/to/usbip-host.ko | 
|  | trois:# usbipd -D | 
|  |  | 
|  | In another terminal, let's look up what USB devices are physically | 
|  | attached to this host. | 
|  |  | 
|  | trois:# usbip list -l | 
|  | Local USB devices | 
|  | ================= | 
|  | - busid 1-1 (05a9:a511) | 
|  | 1-1:1.0 -> ov511 | 
|  |  | 
|  | - busid 3-2 (0711:0902) | 
|  | 3-2:1.0 -> none | 
|  |  | 
|  | - busid 3-3.1 (08bb:2702) | 
|  | 3-3.1:1.0 -> snd-usb-audio | 
|  | 3-3.1:1.1 -> snd-usb-audio | 
|  |  | 
|  | - busid 3-3.2 (04bb:0206) | 
|  | 3-3.2:1.0 -> usb-storage | 
|  |  | 
|  | - busid 3-3 (0409:0058) | 
|  | 3-3:1.0 -> hub | 
|  |  | 
|  | - busid 4-1 (046d:08b2) | 
|  | 4-1:1.0 -> none | 
|  | 4-1:1.1 -> none | 
|  | 4-1:1.2 -> none | 
|  |  | 
|  | - busid 5-2 (058f:9254) | 
|  | 5-2:1.0 -> hub | 
|  |  | 
|  | A USB storage device of busid 3-3.2 is now bound to the usb-storage | 
|  | driver. To export this device, we first mark the device as | 
|  | "exportable"; the device is bound to the usbip-host driver. Please | 
|  | remember you can not export a USB hub. | 
|  |  | 
|  | Mark the device of busid 3-3.2 as exportable: | 
|  |  | 
|  | trois:# usbip --debug bind --busid 3-3.2 | 
|  | ... | 
|  | usbip debug: usbip_bind.c:162:[unbind_other] 3-3.2:1.0 -> usb-storage | 
|  | ... | 
|  | bind device on busid 3-3.2: complete | 
|  |  | 
|  | trois:# usbip list -l | 
|  | Local USB devices | 
|  | ================= | 
|  | ... | 
|  |  | 
|  | - busid 3-3.2 (04bb:0206) | 
|  | 3-3.2:1.0 -> usbip-host | 
|  | ... | 
|  |  | 
|  | --------------------------- | 
|  | CLIENT SIDE | 
|  | --------------------------- | 
|  | First, let's list available remote devices that are marked as | 
|  | exportable on the host. | 
|  |  | 
|  | deux:# insmod path/to/usbip-core.ko | 
|  | deux:# insmod path/to/vhci-hcd.ko | 
|  |  | 
|  | deux:# usbip list --remote 10.0.0.3 | 
|  | Exportable USB devices | 
|  | ====================== | 
|  | - 10.0.0.3 | 
|  | 1-1: Prolific Technology, Inc. : unknown product (067b:3507) | 
|  | : /sys/devices/pci0000:00/0000:00:1f.2/usb1/1-1 | 
|  | : (Defined at Interface level) / unknown subclass / unknown protocol (00/00/00) | 
|  | :  0 - Mass Storage / SCSI / Bulk (Zip) (08/06/50) | 
|  |  | 
|  | 1-2.2.1: Apple Computer, Inc. : unknown product (05ac:0203) | 
|  | : /sys/devices/pci0000:00/0000:00:1f.2/usb1/1-2/1-2.2/1-2.2.1 | 
|  | : (Defined at Interface level) / unknown subclass / unknown protocol (00/00/00) | 
|  | :  0 - Human Interface Devices / Boot Interface Subclass / Keyboard (03/01/01) | 
|  |  | 
|  | 1-2.2.3: OmniVision Technologies, Inc. : OV511+ WebCam (05a9:a511) | 
|  | : /sys/devices/pci0000:00/0000:00:1f.2/usb1/1-2/1-2.2/1-2.2.3 | 
|  | : (Defined at Interface level) / unknown subclass / unknown protocol (00/00/00) | 
|  | :  0 - Vendor Specific Class / unknown subclass / unknown protocol (ff/00/00) | 
|  |  | 
|  | 3-1: Logitech, Inc. : QuickCam Pro 4000 (046d:08b2) | 
|  | : /sys/devices/pci0000:00/0000:00:1e.0/0000:02:0a.0/usb3/3-1 | 
|  | : (Defined at Interface level) / unknown subclass / unknown protocol (00/00/00) | 
|  | :  0 - Data / unknown subclass / unknown protocol (0a/ff/00) | 
|  | :  1 - Audio / Control Device / unknown protocol (01/01/00) | 
|  | :  2 - Audio / Streaming / unknown protocol (01/02/00) | 
|  |  | 
|  | Attach a remote USB device: | 
|  |  | 
|  | deux:# usbip attach --remote 10.0.0.3 --busid 1-1 | 
|  | port 0 attached | 
|  |  | 
|  | Show the devices attached to this client: | 
|  |  | 
|  | deux:# usbip port | 
|  | Port 00: <Port in Use> at Full Speed(12Mbps) | 
|  | Prolific Technology, Inc. : unknown product (067b:3507) | 
|  | 6-1 -> usbip://10.0.0.3:3240/1-1  (remote bus/dev 001/004) | 
|  | 6-1:1.0 used by usb-storage | 
|  | /sys/class/scsi_device/0:0:0:0/device | 
|  | /sys/class/scsi_host/host0/device | 
|  | /sys/block/sda/device | 
|  |  | 
|  | Detach the imported device: | 
|  |  | 
|  | deux:# usbip detach --port 0 | 
|  | port 0 detached | 
|  |  | 
|  |  | 
|  | [Checklist] | 
|  | - See 'Debug Tips' on the project wiki. | 
|  | - http://usbip.wiki.sourceforge.net/how-to-debug-usbip | 
|  | - usbip-host.ko must be bound to the target device. | 
|  | - See /proc/bus/usb/devices and find "Driver=..." lines of the device. | 
|  | - Shutdown firewall. | 
|  | - usbip now uses TCP port 3240. | 
|  | - Disable SELinux. | 
|  | - Check the kernel and daemon messages. | 
|  |  | 
|  |  | 
|  | [Contact] | 
|  | Mailing List: linux-usb@vger.kernel.org |