WSLが出た当初に組み込み界隈で問題視されて、既に回避記事が多数記事が出ているUSB/IPの記事です。
いまさら感がありまくりですが、、、わたし個人のメモ的な意味合いで書き残しておきます。

USB/IPでWindowsとWSLを橋渡し
普通のWSLは、USBデバイスを利用できません。 たとえば、XIAO ESP32C6をPCに接続しても、WSLで認識されません。(認識されれば、Serialが表示されるはず。)
root@DESKTOP-O9671AF:~# lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub root@DESKTOP-O9671AF:~#
そこでUSB/IPの出番です。 ネットワーク経由で遠隔のUSBにアクセスするUSB/IPというプロジェクトを使うと、WSLのLinuxからUSBデバイスが利用できるようになります。
Windows側でUSB/IPサーバーを動かしておいて、Linux側でUSB/IPクライアントで接続します。 なお、今回使うusbipd-winでは、Linux側のUSB/IPクライアントの操作がWindows側から可能です。ちょっとややこしい。
usbipd-winをインストール
usbipd-winのReleasesから最新のインストーラをダウンロードして実行します。
わたしは、usbipd-win_5.3.0_x64.msiをインストールしました。
WSLのLinuxからからXIAO ESP32C6にアクセス
WindowsにXIAO ESP32C6を接続すると、デバイスマネージャにCOMとUSB JTAGが認識されます。

ここでusbipd listを実行して、XIAO ESP32C6のBUSIDを得ます。

WSLのLinuxを起動しておき、Windows側で管理者として実行しているコマンドプロンプトでusbipd bind -b 6-3とusbipd attach -w -b 6-3を実行します。
すると、Linux側からXIAO ESP32C6が見えるようになります。
Windows側:

Linux側:

もちろん、Windowsのデバイスマネージャからは消えます。

USBデバイスの状態遷移
bindやattachすると、下図のようにUSBデバイスの接続状態が遷移します。

USBデバイスは一度bindするとpersistedと記憶されて、デバイスをリセットしたりUSB抜き差ししたときに自動的にbindされます。 そのため、2回目からはbind操作は不要です。
ただ、attachはされないのでusbipd attachはしなければいけません。
まぁ、そうですよねー。
