GithubHelp home page GithubHelp logo

liujar / usbipd-win Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dorssel/usbipd-win

0.0 0.0 0.0 3.28 MB

Windows software for sharing locally connected USB devices to other machines, including Hyper-V guests and WSL 2.

License: GNU General Public License v3.0

Shell 0.83% C++ 1.13% C# 98.04%

usbipd-win's Introduction

usbipd-win

Build CodeQL MegaLinter REUSE status codecov GitHub all releases

Windows software for sharing locally connected USB devices to other machines, including Hyper-V guests and WSL 2.

How to install

This software requires Microsoft Windows 10 (x64 only) / Microsoft Windows Server 2019, version 1809 or newer; it does not depend on any other software.

Run the installer (.msi) from the latest release on the Windows machine where your USB device is connected.

Alternatively, use the Windows Package Manager:

winget install usbipd

This will install:

  • A service called usbipd (display name: USBIP Device Host).
    You can check the status of this service using the Services app from Windows.
  • A command line tool usbipd.
    The location of this tool will be added to the PATH environment variable.
  • A firewall rule called usbipd to allow all local subnets to connect to the service.
    You can modify this firewall rule to fine tune access control.

Note

If you are using a third-party firewall, you may have to reconfigure it to allow incoming connections on TCP port 3240.

How to use

Share Devices

By default devices are not shared with USBIP clients. To lookup and share devices, run the following commands with administrator privileges:

usbipd --help
usbipd list
usbipd bind --busid=<BUSID>

Sharing a device is persistent; it survives reboots.

Tip

See the wiki for a list of tested devices.

Connecting Devices

Attaching devices to a client is non-persistent. You will have to re-attach after a reboot, or when the device resets or is physically unplugged/replugged.

Non-WSL 2

From another (possibly virtual) machine running Linux, use the usbip client-side tool:

usbip list --remote=<HOST>
sudo usbip attach --remote=<HOST> --busid=<BUSID>

Note

Client-side tooling exists for other operating systems such as Microsoft Windows, but not as part of this project.

WSL 2

Tip

In case you have used usbipd with WSL 2 before, the following has changed since version 4.0.0:

  • You have to share the device using usbipd bind first.
  • You no longer have to install any client-side tooling.
  • You no longer have to specify a specific distribution.
  • The syntax for the command to attach has changed slightly.

You can attach the device from within Windows with the following command, which does not require administrator privileges:

usbipd attach --wsl --busid=<BUSID>

Tip

See the wiki on how to add drivers for USB devices that are not supported by the default WSL 2 kernel.

GUI

For those who prefer a GUI over a CLI, the following is available:

How to remove

Uninstall via Add/Remove Programs or via Settings/Apps.

Alternatively, use the Windows Package Manager:

winget uninstall usbipd

usbipd-win's People

Contributors

dorssel avatar dependabot[bot] avatar nelsondaniel avatar benmcmorran avatar github-actions[bot] avatar robotdad avatar yejunhuang avatar itsenkov avatar programmer86 avatar shanselman avatar terlar avatar cho45 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.