wslcontainers
Ask AI wslc 2.9.4.0

Can wslc containers use USB devices?

Updated 2026-07-27 · 4 min read · wslc public preview

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.

## What works today: USB in a normal WSL distro USB pass-through to WSL distros works via usbipd-win: ```powershell # install winget install usbipd # bind the device (one-time, admin) usbipd bind --busid 3-1 # attach to a WSL distro usbipd attach --wsl --busid 3-1 ``` Inside the distro the device is visible with 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.

Related guides