Skip to main content

A client-server application for remotely sharing USB devices with usbip

Project description

CI Coverage PyPI License

usb-remote

Client-server software to share USB devices over the network.

Source https://github.com/epics-containers/usb-remote
PyPI uvx usb-remote --version
Docker docker run ghcr.io/epics-containers/usb-remote:latest
Documentation https://epics-containers.github.io/usb-remote
Releases https://github.com/epics-containers/usb-remote/releases

Overview

usb-remote allows USB devices to be easily shared over a network using the Linux usbip service.

A usb-remote server runs on a machine with physical USB devices attached and shares its devices to clients. Clients can connect to multiple servers to access and control their USB devices as if they were locally connected.

Comparison to Digi's AnyWhereUSB

usb-remote is a FOSS alternative to commercial USB-over-Ethernet solutions like Digi's AnyWhereUSB.

Advantages of Digi's AnyWhereUSB:

  • Commercial product with support and warranty
  • Dedicated hardware servers for USB device sharing
  • Excellent security features controlling access to USB devices

Advantages of usb-remote:

  • Good support for UVC isochronous Webcams that do not work with AnyWhereUSB
  • Very simple to setup and use in trusted network environments
  • Free and open source software (FOSS)
  • The server runs on standard hardware such as a $55 Raspberry Pi

Installation

See the Server Setup and Client Setup guides for installation instructions.

Example Client Commands

# List devices on all configured servers
usb-remote list

# List devices on a specific server
usb-remote list --host raspberrypi1

# Attach a device my description substring
# (scans all servers, fails on multiple matches)
usb-remote attach --desc "Camera"

# Attach first matching device across servers
usb-remote attach --desc "Camera" --first

# Attach a device based on glob of serial number - recommended for guaranteed unique match
usb-remote attach --serial=??72D8DF

# Detach a device
usb-remote detach --serial=??72D8DF

# Find devices on the 1-4 bus of a specific server, using a glob pattern
usb-remote list --host raspberrypi1 --bus '1-4-*'

Architecture

See the Architecture Reference for full details.

See https://epics-containers.github.io/usb-remote for more detailed documentation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

usb_remote-2.2.1.tar.gz (6.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

usb_remote-2.2.1-py3-none-any.whl (29.3 kB view details)

Uploaded Python 3

File details

Details for the file usb_remote-2.2.1.tar.gz.

File metadata

  • Download URL: usb_remote-2.2.1.tar.gz
  • Upload date:
  • Size: 6.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for usb_remote-2.2.1.tar.gz
Algorithm Hash digest
SHA256 3e81cece2164140f1ebeb236480f39eb8c58d95c4cb8cecba973ae07aeace41a
MD5 1b948d9b7bc8698cb9e8b88b9e016c09
BLAKE2b-256 09c7f7745b75998f250c0a9a6092e95cb6b0fc5f2e84a6fb1100ec714f167e73

See more details on using hashes here.

File details

Details for the file usb_remote-2.2.1-py3-none-any.whl.

File metadata

  • Download URL: usb_remote-2.2.1-py3-none-any.whl
  • Upload date:
  • Size: 29.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for usb_remote-2.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9219763bd62587e14809c77ad602ad94a5e87be6962c097f25f73551330c695a
MD5 e70244f3e3c394d0d9ce8b8997a42688
BLAKE2b-256 4ae2954225d5a1d196b3a324cc6b922b0c3f395cb415dcc565abad3238efcdee

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page