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/