Signed-off-by: matt mooney <mfm@muteddisk.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
The precise terms and conditions for copying, distribution and
modification follow.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
- Bind usbip.ko to the device of busid 1-2.
- A usb device 1-2 is now exportable to other hosts!
- Use 'usbip_bind_driver --other 1-2' when you want to shutdown exporting
- Bind usbip.ko to the device of busid 1-2.
- A usb device 1-2 is now exportable to other hosts!
- Use 'usbip_bind_driver --other 1-2' when you want to shutdown exporting
- and use the device locally.
+ and use the device locally.
client:# insmod usbip_common_mod.ko
client:# insmod usbip_common_mod.ko
List USB devices
- busid 3-3.2 (04bb:0206)
3-3.2:1.0 -> usb-storage
List USB devices
- busid 3-3.2 (04bb:0206)
3-3.2:1.0 -> usb-storage
- 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.1 (08bb:2702)
3-3.1:1.0 -> snd-usb-audio
3-3.1:1.1 -> snd-usb-audio
- busid 3-3 (0409:0058)
3-3:1.0 -> hub
- busid 3-3 (0409:0058)
3-3:1.0 -> hub
- busid 3-2 (0711:0902)
3-2:1.0 -> none
- busid 3-2 (0711:0902)
3-2:1.0 -> none
- busid 1-1 (05a9:a511)
1-1:1.0 -> ov511
- busid 1-1 (05a9:a511)
1-1:1.0 -> ov511
- busid 4-1 (046d:08b2)
4-1:1.0 -> none
4-1:1.1 -> none
4-1:1.2 -> none
- 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
- busid 5-2 (058f:9254)
5-2:1.0 -> hub
--------------------------------------------------------------------------------------------------------
Mark the device of busid 3-3.2 as exportable.
trois:# usbip_bind_driver --usbip 3-3.2
--------------------------------------------------------------------------------------------------------
Mark the device of busid 3-3.2 as exportable.
trois:# usbip_bind_driver --usbip 3-3.2
- ** (process:24621): DEBUG: 3-3.2:1.0 -> none
+ ** (process:24621): DEBUG: 3-3.2:1.0 -> none
** (process:24621): DEBUG: write "add 3-3.2" to /sys/bus/usb/drivers/usbip/match_busid
** Message: bind 3-3.2 to usbip, complete!
** (process:24621): DEBUG: write "add 3-3.2" to /sys/bus/usb/drivers/usbip/match_busid
** Message: bind 3-3.2 to usbip, complete!
trois:# usbip_bind_driver --list
List USB devices
- busid 3-3.2 (04bb:0206)
trois:# usbip_bind_driver --list
List USB devices
- busid 3-3.2 (04bb:0206)
: /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)
: /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.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)
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)
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)
4-1: Logitech, Inc. : QuickCam Express (046d:0870)
: /sys/devices/pci0000:00/0000:00:1e.0/0000:02:0a.1/usb4/4-1
: Vendor Specific Class / Vendor Specific Subclass / Vendor Specific Protocol (ff/ff/ff)
: 0 - Vendor Specific Class / Vendor Specific Subclass / Vendor Specific Protocol (ff/ff/ff)
4-1: Logitech, Inc. : QuickCam Express (046d:0870)
: /sys/devices/pci0000:00/0000:00:1e.0/0000:02:0a.1/usb4/4-1
: Vendor Specific Class / Vendor Specific Subclass / Vendor Specific Protocol (ff/ff/ff)
: 0 - Vendor Specific Class / Vendor Specific Subclass / Vendor Specific Protocol (ff/ff/ff)
4-2: Texas Instruments Japan : unknown product (08bb:2702)
: /sys/devices/pci0000:00/0000:00:1e.0/0000:02:0a.1/usb4/4-2
: (Defined at Interface level) / unknown subclass / unknown protocol (00/00/00)
: 0 - Audio / Control Device / unknown protocol (01/01/00)
: 1 - Audio / Streaming / unknown protocol (01/02/00)
4-2: Texas Instruments Japan : unknown product (08bb:2702)
: /sys/devices/pci0000:00/0000:00:1e.0/0000:02:0a.1/usb4/4-2
: (Defined at Interface level) / unknown subclass / unknown protocol (00/00/00)
: 0 - Audio / Control Device / unknown protocol (01/01/00)
: 1 - Audio / Streaming / unknown protocol (01/02/00)
--------------------------------------------------------------------------------------------------------
Attach a remote usb device!
deux:# usbip --attach 10.0.0.3 1-1
port 0 attached
--------------------------------------------------------------------------------------------------------
Attach a remote usb device!
deux:# usbip --attach 10.0.0.3 1-1
port 0 attached
--------------------------------------------------------------------------------------------------------
Show what devices are attached to this client.
--------------------------------------------------------------------------------------------------------
Show what devices are attached to this client.
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)
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
+ 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
/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 0
port 0 detached
--------------------------------------------------------------------------------------------------------
Detach the imported device.
deux:# usbip --detach 0
port 0 detached
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
*) AC_MSG_ERROR(bad value ${enableval} for --enable-usbids-install) ;;
esac])
AM_CONDITIONAL(INSTALL_USBIDS, test x$usbids = xinstall)
*) AC_MSG_ERROR(bad value ${enableval} for --enable-usbids-install) ;;
esac])
AM_CONDITIONAL(INSTALL_USBIDS, test x$usbids = xinstall)
[\fIoptions\fR]
.SH DESCRIPTION
[\fIoptions\fR]
.SH DESCRIPTION
-Driver bindings for USB devices can be changed using
-this program. It is used to export and unexport USB
+Driver bindings for USB devices can be changed using
+this program. It is used to export and unexport USB
devices over USB/IP.
.SH OPTIONS
devices over USB/IP.
.SH OPTIONS
- Bind usbip.ko to the device of busid 1-2.
- A usb device 1-2 is now exportable to other hosts!
- Bind usbip.ko to the device of busid 1-2.
- A usb device 1-2 is now exportable to other hosts!
- server:# usbip_bind_driver --other 1-2
+ server:# usbip_bind_driver --other 1-2
- Shutdown exporting and use the device locally.
.SH "SEE ALSO"
- Shutdown exporting and use the device locally.
.SH "SEE ALSO"
- err("usbip_status not ready after %d retries",
+ err("usbip_status not ready after %d retries",
SYSFS_OPEN_RETRIES);
else if (retries < SYSFS_OPEN_RETRIES)
info("warning: usbip_status ready after %d retries",
SYSFS_OPEN_RETRIES);
else if (retries < SYSFS_OPEN_RETRIES)
info("warning: usbip_status ready after %d retries",
- for (i = 0; i < ninterface; i++) {
- char driver[PATH_MAX];
+ for (i = 0; i < ninterface; i++) {
+ char driver[PATH_MAX];
int ret;
bzero(&driver, sizeof(driver));
int ret;
bzero(&driver, sizeof(driver));
- getdriver(busid, configvalue, i, driver, PATH_MAX-1);
+ getdriver(busid, configvalue, i, driver, PATH_MAX-1);
g_debug(" %s:%d.%d -> %s ", busid, configvalue, i, driver);
g_debug(" %s:%d.%d -> %s ", busid, configvalue, i, driver);
- for (i = 0; i < ninterface; i++) {
+ for (i = 0; i < ninterface; i++) {
int ret;
ret = bind_interface(busid, configvalue, i, "usbip");
int ret;
ret = bind_interface(busid, configvalue, i, "usbip");
if (be_local == 0)
use_device_by_usbip(busid);
}
if (be_local == 0)
use_device_by_usbip(busid);
}
if (geteuid() != 0)
g_warning("running non-root?");
if (geteuid() != 0)
g_warning("running non-root?");
- ret = usbip_names_init(USBIDS_FILE);
- if (ret)
- notice("failed to open %s", USBIDS_FILE);
+ ret = usbip_names_init(USBIDS_FILE);
+ if (ret)
+ notice("failed to open %s", USBIDS_FILE);
} __attribute__((packed));
struct op_export_reply {
} __attribute__((packed));
struct op_export_reply {
} __attribute__((packed));
} __attribute__((packed));
} __attribute__((packed));
struct op_unexport_reply {
} __attribute__((packed));
struct op_unexport_reply {
} __attribute__((packed));
#define PACK_OP_UNEXPORT_REQUEST(pack, request) do {\
} __attribute__((packed));
#define PACK_OP_UNEXPORT_REQUEST(pack, request) do {\