Can wslc containers use USB devices?
The short answer: wslc 2.9.4.0 cannot pass USB devices into containers. There
is no --device flag, no /dev/bus/usb mapping, and no USB API. This
page covers what works, what does not, and what is coming.
lsusb, and
/dev/bus/usb exists. This is the well-trodden path for microcontrollers,
flashing tools, and other USB hardware.
## What does not work: USB in a wslc container
A wslc container runs in its own Hyper-V utility VM session — it shares neither the distro
filesystem nor its devices. So even after usbipd attach --wsl, a wslc container
sees nothing:
```console
$ lsusb
# empty — no USB bus exposed
$ ls /dev/bus/usb
No such file or directory
```
And you cannot pass the device yourself: wslc run --device does not exist
(--device is rejected as an unrecognized argument on 2.9.4.0). The same gap
blocks /dev/fuse, AMD GPU /dev/kfd, and any other device mapping —
see the privileged & devices page.
## The proposal: built-in USB attach
There is an open proposal to add first-class USB support to WSL itself — essentially
usbipd-win functionality built in, managed through the CLI and carried over
Hyper-V. It is discussed in
microsoft/WSL discussion #41216.
If it lands, it would presumably reach wslc containers too (or at least the WSL surface).
## Workarounds until then
- Run the USB workload in a normal WSL distro, not a wslc container. usbipd-win
works there today.
- Keep Docker Desktop for the rare USB-in-container case — Docker still supports
--device.
- Watch the discussion and the
feature tracker for USB attach status.