USB Device Works in Windows but Not in WSL2 Through a USB-C Hub? Configure USB Passthrough

USB Device Works in Windows but Not in WSL2 Through a USB-C Hub

Your USB device works perfectly in Windows.

The device appears in Device Manager.

Drivers are installed.

Windows applications can access it.

But when you open WSL2, the device is missing.

For example:

  • an Arduino board appears in Windows but not Linux;
  • a USB serial adapter works in Windows but not in WSL2;
  • an Android debugging device is visible on the host system but unavailable inside Linux tools.

This happens because Windows and WSL2 do not automatically share USB devices in the same way.

A working Windows USB connection does not mean the device is already available inside the WSL2 environment.

To use USB hardware inside WSL2, you usually need to configure USB passthrough.

Why Does Windows See the USB Device but WSL2 Cannot?

WSL2 runs a real Linux kernel inside a virtualized environment.

The USB connection path is different:

USB Device

↓

Windows USB Driver

↓

USB/IP Forwarding

↓

WSL2 Linux Kernel

↓

Linux Application

Windows can access the device directly because it owns the USB connection.

WSL2 needs the device to be attached and forwarded into the Linux environment.

Microsoft provides official guidance for connecting USB devices to WSL through USB/IP using tools such as usbipd-win. You can learn more about WSL2 USB device passthrough from Microsoft’s documentation.

First Check: Is the Device Available to WSL2?

Before changing cables or replacing your USB-C hub, check whether Windows can share the device with WSL2.

Open Windows Terminal or PowerShell and run:

usbipd list

You should see connected USB devices and their current status.

Example:

BUSID  VID:PID    DEVICE
1-4    2341:0043  Arduino Uno
2-3    0403:6001  USB Serial Converter

A device that is available for sharing can be attached to WSL2.

If the device does not appear here:

  • Windows may not detect it correctly;
  • the cable may not support data;
  • the USB port may only provide charging;
  • the hub connection may be unstable.

In this situation, troubleshoot the USB connection first. For example, if Windows itself cannot detect the device, check common USB devices not detected through a USB-C hub issues before configuring WSL2.

Configure USB Passthrough With usbipd-win

Once Windows detects the device, attach it to WSL2.

Step 1: Install usbipd-win

Install the latest usbipd-win package on Windows.

This tool allows USB devices connected to Windows to be shared with WSL2.

Microsoft recommends using USB/IP-based forwarding to connect compatible USB devices to WSL environments.

Step 2: List Connected USB Devices

Run:

usbipd list

Find the device you want to connect.

Example:

BUSID  VID:PID    DEVICE
1-4    2341:0043  Arduino Uno

The important value is the BUSID.

Step 3: Attach the Device to WSL2

Run:

usbipd attach --wsl --busid <BUSID>

Replace <BUSID> with your device number.

After attaching, the USB device should become available inside your Linux environment.

Step 4: Verify the Device in WSL2

Open your WSL2 terminal.

For USB devices, check:

lsusb

For serial devices, check:

ls /dev/tty*

If the device appears, Linux can now access the USB hardware.

Common WSL2 USB Problems and What They Mean

Different symptoms point to different parts of the connection chain.

Symptom Possible Cause
Works in Windows but missing in WSL2 USB device has not been attached through USB/IP
Device appears after manual attach but disappears after restart Device needs to be attached again
USB serial device appears in Windows but not Linux Missing WSL passthrough configuration
Device disconnects during use Cable, power, or hub stability issue
Multiple USB devices behave inconsistently USB topology or bandwidth sharing

Understanding the difference between Windows detection and Linux access prevents unnecessary hardware replacement.

Does a USB-C Hub Affect WSL2 USB Passthrough?

A USB-C hub can become part of the troubleshooting process because it changes the USB topology.

The connection path becomes:

USB Device → USB-C Hub → Windows → WSL2

Compared with:

USB Device → Computer USB Port → WSL2

Additional factors include:

  • multiple connected devices sharing the hub;
  • USB bandwidth allocation;
  • power management;
  • hub controller compatibility.

For development environments, stability is often more important than the number of available ports.

If USB devices repeatedly disappear while working, investigate whether the issue is related to USB-C hub keeps disconnecting devices.

Special Cases: Serial Devices, Arduino, and Debug Hardware

WSL2 USB passthrough is commonly used for:

  • Arduino boards;
  • ESP development boards;
  • USB serial adapters;
  • embedded debugging tools;
  • Android development devices.

However, some development tools still depend on Linux permissions.

For example:

A USB serial adapter may appear as:

/dev/ttyUSB0

but your user account may not have permission to access it.

In Linux environments, device visibility and device permission are separate problems.

First confirm that WSL2 can see the device.

Then troubleshoot application-level access.

Build a Better USB Development Setup

For developers, the best USB setup depends on the number of devices being tested.

For Multiple Development Devices

A USB-C hub with multiple data ports, such as the LENTION C37-1M, can simplify connecting:

  • development boards;
  • USB serial adapters;
  • debugging devices;
  • everyday peripherals.

Its longer host cable also helps organize a fixed workstation where multiple devices need to remain connected.

For Simpler USB Expansion

For users who mainly connect USB-A development tools, a USB-C hub with multiple USB-A data ports, such as the LENTION C22s, provides additional USB connections for:

  • serial adapters;
  • USB dongles;
  • keyboards;
  • testing accessories.

A simpler USB layout can make troubleshooting easier because fewer devices share the same connection path.

FAQ

Why does my USB device work in Windows but not WSL2?

Because Windows and WSL2 use different USB access layers. Windows may own the device while WSL2 requires USB passthrough through USB/IP.

Does every USB device work with WSL2?

No. Compatibility depends on the device type, drivers, Linux support, and whether it can be forwarded through USB/IP.

Why does my USB device disappear from WSL2 after restarting?

USB passthrough attachments may need to be configured again after reconnecting or restarting environments.

Can a USB-C hub prevent WSL2 USB passthrough?

A hub does not automatically prevent passthrough, but it adds another layer that can affect device stability, power, and connection reliability.

Final Thoughts

When a USB device works in Windows but not in WSL2, the problem is usually not that the device is broken.

The key difference is:

Windows detects the device → WSL2 needs USB passthrough

Start with:

  1. Confirm Windows detects the USB device.
  2. Check the device with usbipd list.
  3. Attach it using USB/IP.
  4. Verify it inside WSL2.
  5. Test the USB-C hub connection if stability problems remain.

A successful Windows connection is only the first step. Proper USB passthrough makes the device available where your Linux tools actually run.

RELATED ARTICLES

Leave a comment

Your email address will not be published. Required fields are marked *

Please note, comments must be approved before they are published