🐸
WSL2でArduinoデバイスを認識させる
前提
- Windows 11
- WSL2(Ubuntu)
- Arduino Uno(COM4)
USBを認識する
接続されているUSBはUbuntu側で以下のコマンドを使用して認識できる
lsusb -t
実行結果
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=vhci_hcd/8p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=vhci_hcd/8p, 480M
上記の時点では接続されていません。WslにUSBを認識させ為にはWindowsからのアタッチが必要です。
Linux(Ubuntu)の操作
下記のコマンドを打ってください。
sudo apt install linux-tools-generic hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/*-generic/usbip 20
これでUSBデバイスをWindowsと共有するためのツールがインストールされます
Windows側の操作
ちょっと長いです。
以下のコマンドを打ちます。
winget install --interactive --exact dorssel.usbipd-win
そしてPowerShellを管理者モードで開いてください。
そこで下記のコマンドを実行してください。もし出力されない場合は再起動してください。
usbipd wsl list
実行結果
BUSID VID:PID DEVICE STATE
2-1 ****:**** USB 入力デバイス Not attached
2-8 ****:**** Arduino Uno (COM4) Not attached
2-14 ****:**** インテル(R) ワイヤレス Bluetooth(R) Not attached
接続したいBUSIDをメモし、
usbipd wsl attach --busid <BUSID>
これを打った後にUbuntu側で最初のコマンドを打つとUSBが接続されている事が確認できます。そして最後に
ls /dev/ttyACM0
で出力されるとデバイスが正しく認識されていることがわかります。
Discussion