microsoft / microsoft/WSL

USB should use a more robust guest to host side channel than IP

Open
#13,421 5 comments 4 reactions 0 assignees View on GitHub
feature
Dominant language
C++
Stars
33.7k
Forks
1.8k
Avg merge
3d 17h
Merged PRs (30d)
116

Description

**Is your feature request related to a problem? Please describe.**

Hi there,

I'm sure I'm not the only one who's struggled getting usbip to work with even mildly complex host networking configs on both Windows 11 and 10. Some observations:

- The default gateway address has to be [detected](https://github.com/nix-community/NixOS-WSL/blob/main/modules/usbip.nix#L31) and can change
- Bus IDs are unstable
- There is no native usbip management utility other than [third party ones](https://gitlab.com/alelec/wsl-usb-gui), which, while useful, rely on a third party host daemon that is often brittle to changes in both the host and guest
- Many Windows networking drivers (such as VPNs) break it, as well as large changes to the system networking config
- I'd like to use USB ethernet adapters in my WSL2 guest, and am double tunneling IP traffic, which slows things down, and has been one of the aforementioned large changes to system networking config when I plug one in 😅
- Telling team members how to set up USB IP in WSL2 is fraught with peril as a result

**Describe the solution you'd like**

A native WSL2 USB manager that uses USB emulation instead of usbip and is as easy to use as alternatives

**Describe alternatives you've considered**

- usbip (works, but can be brittle, see description above)
- Other hypervisors
- Natively booting Linux

**Additional context**

N/A

Contributor guide

Open the contributing guide

Research direction

No WSL source file, test, or entry point is named. Start by reviewing the issue's USB/IP limitations and define the scope of a native WSL2 USB manager using USB emulation; done would require an agreed design and implementation path rather than a small isolated change.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
networking, operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.