In order to work with embedded systems on WSL2, it's needed to bind the device Serial Port on Windows to the WSL2 host.
The project that allows that is usbipd-win
.
To install it, open a new PowerShell terminal and execute winget install usbipd
.
Once installed, list the available USB devices:
usbipd list
You should see an output should be similar to this:
BUSID VID:PID DEVICE STATE
2-3 0d28:0204 USB Mass Storage Device, Dispositivo Serial USB (COM3), D... Not shared
2-4 046d:c52b Logitech USB Input Device, Dispositivo de Entrada USB Not shared
2-5 1bcf:2a02 Integrated Webcam Not shared
On this example, the Serial Port BUSID
is 2-3
. Then, you must first open an elevated PowerShell promt and execute:
usbipd bind --busid 2-3
Then you can attach it to your WSL2 host without administrator privileges by running:
usbipd attach --wsl --busid 2-3
Expected output:
usbipd: info: Using WSL distribution 'Ubuntu' to attach; the device will be available in all WSL 2 distributions.
usbipd: info: Using IP address 192.168.64.1 to reach the host
Now, you can use the Serial Port on your WSL2 host.
Useful Links