Windows 11 の WSL2 で make を行うための設定・毎回の作業 - gfd-dennou-club/mrubyc-esp32 GitHub Wiki

WSL2 で usb serial を使う

設定

ソフトウェアのインストール.Ubuntu は usbip の代わりに linux-tools-generic を指定する.

WSL2 # apt-get install hwdata usbip

WSL2 # apt-get install linux-perf-5.10

Windows PowerShell を管理者権限で実行して,usbipd.exe をインストール

PowerShell > winget.exe install --id dorssel.usbipd-win

毎回の作業.

マイコンを USB ケーブルで接続する.まずは接続したマイコンの BUSID を探す.以下の例では,「2-1 USB Serial Converter」がそれである.

PowerShell> usbipd.exe list
   BUSID  DEVICE                                                        STATE
   2-1    USB Serial Converter                                          Not attached
   2-2    ELECOM WDC-150SU2M Wireless Adapter                           Not attached
   2-8    Front Camera, Front IR Camera                                 Not attached
   2-9    ELAN WBF Fingerprint Sensor                                   Not attached
   2-10   インテル(R) ワイヤレス Bluetooth(R)                           Not attached
   3-1    Realtek USB GbE Family Controller                             Not attached
   4-1    Logitech USB Input Device, USB 入力デバイス                   Not attached
   4-3    USB 入力デバイス                                              Not attached
   4-4    USB 入力デバイス                                              Not attached

バスを WSL2 に接続する.

PowerShell> usbipd bind --busid 2-1

PowerShell> usbipd attach --busid 2-1 --wsl

以下のようなエラーが出た場合は,Linux 側でモジュールをロードしてからやり直す.

PowerShell> usbipd attach --busid 2-1 --wsl

   WSL usbip: error: Attach Request for 2-1 failed - Device busy (exported)
   usbipd: warning: The device appears to be used by Windows; stop the software using the device, or bind the device using the '--force' option.

WSL2$ sudo modprobe vhci_hcd

PowerShell> usbipd attach --busid 2-1 --wsl

確認は以下のように行う.

PowerShell> usbipd.exe list

  BUSID  DEVICE                                                        STATE
  2-1    USB Serial Converter                                          Attached - Debian
  ...(以下略)...

デタッチするときは,ケーブルを PC から抜くか,以下のコマンドを行う.

PowerShell> usbipd detach --busid 2-1

参考文献

https://docs.microsoft.com/ja-jp/windows/wsl/connect-usb https://devblogs.microsoft.com/commandline/connecting-usb-devices-to-wsl/