Skip to content

SagerNet/sing-usbip

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sing-usbip

Cross-platform USB/IP implementation in Go

Backends:

Platform Server (export) Client (import)
Linux usbip-host kernel driver vhci_hcd kernel driver
macOS IOUSBHost (disable SIP required) IOUSBHostControllerInterface
Windows VBoxUSB drivers (embedded) usbip-win2 UDE vhci driver (embedded)

Control extension

Standard USB/IP has no change notifications, so importers must poll for device arrivals and removals. sing-usbip adds a control channel that pushes device state to the client instead. It runs on its own connections alongside the standard protocol, so the server keeps serving standard usbip clients unchanged; the sing-usbip client always imports through the extension and requires a sing-usbip server.

CLI

Export devices (matched by busid, vendor:product, and/or serial):

sing-usbip list
sing-usbip run -s :3240 -d 1-1.2
sing-usbip run -s 127.0.0.1:3240 -d 0bda:8153,serial=001000001

Import devices (without --device, every exported device is imported):

sing-usbip list -c 192.168.1.10
sing-usbip run -c 192.168.1.10 -d 0bda:8153

Exported devices can also be attached by standard usbip clients; importing requires a sing-usbip server.

About

Cross-platform usbip implementation in Go

Resources

License

Stars

Watchers

Forks

Contributors