1 # 2 # README for usbip-utils 3 # 4 # Copyright (C) 2011 matt mooney <mfm@muteddisk 5 # 2005-2008 Takahiro Hirofuchi 6 7 [Overview] 8 USB/IP protocol allows to pass USB device from 9 network. Server is a machine which provides (s 10 a machine which uses USB device provided by se 11 The USB device may be either physical device c 12 software entity created on a server using USB 13 Whole project consists of four parts: 14 15 - usbip-vhci 16 A client side kernel module which prov 17 and allows to import a USB device from 18 19 - usbip-host (stub driver) 20 A server side module which provides a 21 bound to a physical USB device to make 22 23 - usbip-vudc 24 A server side module which provides a 25 to export a USB device created using U 26 27 - usbip-utils 28 A set of userspace tools used to handl 29 Used on both sides. 30 31 [Requirements] 32 - USB/IP device drivers 33 Found in the drivers/usb/usbip/ direct 34 35 - libudev >= 2.0 36 libudev library 37 38 - libwrap0-dev 39 tcp wrapper library 40 41 - gcc >= 4.0 42 43 - libtool, automake >= 1.9, autoconf >= 2. 44 45 [Optional] 46 - hwdata 47 Contains USB device identification dat 48 49 50 [Install] 51 0. Generate configuration scripts. 52 $ ./autogen.sh 53 54 1. Compile & install the userspace utiliti 55 $ ./configure [--with-tcp-wrappers=no] 56 $ make install 57 58 2. Compile & install USB/IP drivers. 59 60 61 [Usage] 62 On a server side there are two entities which 63 First of them is physical usb device connected 64 To make it available below steps should be exe 65 66 server:# (Physically attach your USB devic 67 68 server:# insmod usbip-core.ko 69 server:# insmod usbip-host.ko 70 71 server:# usbipd -D 72 - Start usbip daemon. 73 74 server:# usbip list -l 75 - List driver assignments for USB devi 76 77 server:# usbip bind --busid 1-2 78 - Bind usbip-host.ko to the device wit 79 - The USB device 1-2 is now exportable 80 - Use `usbip unbind --busid 1-2' to st 81 82 Second of shareable entities is USB Gadget cre 83 on a server machine. To make it available belo 84 85 server:# (Create your USB gadget) 86 - Currently the most preferable way of 87 is ConfigFS Composite Gadget. Please 88 for details. 89 - See vudc_server_example.sh for a sho 90 91 server:# insmod usbip-core.ko 92 server:# insmod usbip-vudc.ko 93 - To create more than one instance of 94 95 server:# (Bind gadget to one of available 96 - Assign your new gadget to USB/IP UDC 97 - Using ConfigFS interface you may do 98 server:# cd /sys/kernel/config/usb 99 server:# echo "usbip-vudc.0" > UDC 100 101 server:# usbipd -D --device 102 - Start usbip daemon. 103 104 To attach new device to client machine below c 105 106 client:# insmod usbip-core.ko 107 client:# insmod vhci-hcd.ko 108 109 client:# usbip list --remote <host> 110 - List exported USB devices on the <ho 111 112 client:# usbip attach --remote <host> --bu 113 - Connect the remote USB device. 114 - When using vudc on a server side bus 115 For example: usbip-vudc.0 116 117 client:# usbip port 118 - Show virtual port status. 119 120 client:# usbip detach --port <port> 121 - Detach the USB device. 122 123 124 [Example] 125 --------------------------- 126 SERVER SIDE 127 --------------------------- 128 Physically attach your USB devices to this hos 129 130 trois:# insmod path/to/usbip-core.ko 131 trois:# insmod path/to/usbip-host.ko 132 trois:# usbipd -D 133 134 In another terminal, let's look up what USB de 135 attached to this host. 136 137 trois:# usbip list -l 138 Local USB devices 139 ================= 140 - busid 1-1 (05a9:a511) 141 1-1:1.0 142 143 - busid 3-2 (0711:0902) 144 3-2:1.0 145 146 - busid 3-3.1 (08bb:2702) 147 3-3.1:1.0 148 3-3.1:1.1 149 150 - busid 3-3.2 (04bb:0206) 151 3-3.2:1.0 152 153 - busid 3-3 (0409:0058) 154 3-3:1.0 155 156 - busid 4-1 (046d:08b2) 157 4-1:1.0 158 4-1:1.1 159 4-1:1.2 160 161 - busid 5-2 (058f:9254) 162 5-2:1.0 163 164 A USB storage device of busid 3-3.2 is now bou 165 driver. To export this device, we first mark t 166 "exportable"; the device is bound to the usbip 167 remember you can not export a USB hub. 168 169 Mark the device of busid 3-3.2 as exportable: 170 171 trois:# usbip --debug bind --busid 3-3.2 172 ... 173 usbip debug: usbip_bind.c:162:[unbind_othe 174 ... 175 bind device on busid 3-3.2: complete 176 177 trois:# usbip list -l 178 Local USB devices 179 ================= 180 ... 181 182 - busid 3-3.2 (04bb:0206) 183 3-3.2:1.0 184 ... 185 186 --------------------------- 187 CLIENT SIDE 188 --------------------------- 189 First, let's list available remote devices tha 190 exportable on the host. 191 192 deux:# insmod path/to/usbip-core.ko 193 deux:# insmod path/to/vhci-hcd.ko 194 195 deux:# usbip list --remote 10.0.0.3 196 Exportable USB devices 197 ====================== 198 - 10.0.0.3 199 1-1: Prolific Technology, Inc. : u 200 : /sys/devices/pci0000:00/0000: 201 : (Defined at Interface level) 202 : 0 - Mass Storage / SCSI / Bu 203 204 1-2.2.1: Apple Computer, Inc. : unknow 205 : /sys/devices/pci0000:00/0000: 206 : (Defined at Interface level) 207 : 0 - Human Interface Devices 208 209 1-2.2.3: OmniVision Technologies, Inc. 210 : /sys/devices/pci0000:00/0000: 211 : (Defined at Interface level) 212 : 0 - Vendor Specific Class / 213 214 3-1: Logitech, Inc. : QuickCam Pro 215 : /sys/devices/pci0000:00/0000: 216 : (Defined at Interface level) 217 : 0 - Data / unknown subclass 218 : 1 - Audio / Control Device / 219 : 2 - Audio / Streaming / unkn 220 221 Attach a remote USB device: 222 223 deux:# usbip attach --remote 10.0.0.3 --bu 224 port 0 attached 225 226 Show the devices attached to this client: 227 228 deux:# usbip port 229 Port 00: <Port in Use> at Full Speed(12Mbp 230 Prolific Technology, Inc. : unknown 231 6-1 -> usbip://10.0.0.3:3240/1-1 ( 232 6-1:1.0 used by usb-storage 233 /sys/class/scsi_devi 234 /sys/class/scsi_host 235 /sys/block/sda/devic 236 237 Detach the imported device: 238 239 deux:# usbip detach --port 0 240 port 0 detached 241 242 243 [Checklist] 244 - See 'Debug Tips' on the project wiki. 245 - http://usbip.wiki.sourceforge.net/ho 246 - usbip-host.ko must be bound to the targe 247 - See /sys/kernel/debug/usb/devices an 248 - Target USB gadget must be bound to vudc 249 (using USB gadget susbsys, not usbip bin 250 - Shutdown firewall. 251 - usbip now uses TCP port 3240. 252 - Disable SELinux. 253 - Check the kernel and daemon messages. 254 255 256 [Contact] 257 Mailing List: linux-usb@vger.kernel.org
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.