WSL2でUSBデバイスの接続

Microsoft社の「USB デバイスを接続する」を参考にするとWSL2でもUSBデバイスにアクセスできるようになります。

USBIPD-WINのインストール

下記からWindows側にusbipd-winをインストールします。

現時点では1.3.0をインストールしました。

https://github.com/dorssel/usbipd-win/releases

uspbipなどをインストール

今度はWSL2側にusbipdなどをインストールします。

$ sudo apt install linux-tools-5.4.0-77-generic hwdata

/etc/sudoersにsecure_path=/usr/lib/linux-tools/5.4.0-77-generic:/usr/local/sbinを追加します。

下記のようなにします。

Defaults        secure_path="/usr/lib/linux-tools/5.4.0-77-generic:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

現時点でWSL2のLinux Kernelはv5.10.60なのに5.4.0-77のツールを入れているのは気にしないでおきましょう。

USBデバイスをattach

PowerShellを管理者モードで起動して、次のようにUSBデバイスを確認します。

PS C:\WINDOWS\system32> usbipd wsl list
BUSID  DEVICE                                                        STATE
1-2    USB Serial Converter A, USB Serial Converter B                Not attached
1-6    USB 入力デバイス                                                    Not attached
3-1    Generic Bluetooth Radio                                       Not attached
3-2    USB 入力デバイス                                                    Not attached
3-3    USB 入力デバイス                                                    Not attached
3-4    Jabra SPEAK 510 USB, USB 入力デバイス                               Not attached

ここでBUSIDの1-2に表示されているUSB Serial Converter A, USB Serial Converter BはDigilent社のArty-A7です。

つぎのようにattachします。

PS C:\WINDOWS\system32> usbipd wsl attach --busid 1-2

attach前はWSL2側で次のように見えています。

hidemi@nereid:~$ 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

attach後、次のようにFTDIのデバイスが増えています。

hidemi@nereid:~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 0403:6010 Future Technology Devices International, Ltd FT2232C/D/H Dual UART/FIFO IC
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
write: 2022/01/17/ 00:00:00