Skip to main content

Overview

On Windows + WSL, USB devices are not automatically visible inside the Linux subsystem. The usbipd-win tool bridges this gap by forwarding USB buses from the Windows host into WSL over a loopback IP tunnel.
usbipd-win must already be installed. If not, run winget install usbipd-win in a Windows Administrator terminal.

Step-by-step

1

Kill any running ADB server on Windows

Open PowerShell (Administrator Mode) and run:
adb kill-server
This command may report an error if ADB is not running — that is safe to ignore.
2

List available USB devices

usbipd list
Note the BUSID for your Qualcomm device.
3

Bind the device (persistent, one-time)

usbipd bind --busid=<BUSID>
Binding is persistent across reboots. If your device exposes multiple USB modes (e.g. ADB + EDL), bind each BUSID once.
On some corporate machines, usbipd bind or the subsequent attach step may fail due to firewall policies. If you see an explicit firewall error, follow the Corporate firewall workaround below.
4

Attach the device to WSL with auto-reattach

usbipd attach --wsl --busid=<BUSID> --auto-attach
  • Keep this PowerShell window open — closing it stops the auto-attach loop.
  • You must re-run this command every time you restart WSL.
  • If you change the physical USB port, re-run all usbipd commands from the start.
The following shows the full bind and attach sequence:usbipd — bind and attach commands
5

Verify the device inside WSL

In your WSL terminal:
lsusb
You should see your Qualcomm device listed.

Corporate firewall workaround

  1. Close all open WSL terminals.
  2. In PowerShell, shut down WSL:
wsl --shutdown
  1. Edit %UserProfile%\.wslconfig and add:
[wsl2]
networkingMode=mirrored
  1. Restart WSL:
wsl -d ubuntu-22.04
  1. Retry the usbipd bind and usbipd attach steps.

Detach / unbind when done

usbipd detach --busid=<BUSID>