본문 바로가기

MCU

usbipd: WSL2에 USB port 인식 시키기

728x90
반응형

---- WSL2 에 USB port 인식 시키기 ----

기본적으로 USB port가 Windows에서만 인식이 되는데, WSL 환경에서 USB port를 인식시켜주기 위해 아래와 같은 작업이 필요하다.

 

1. 오픈소스 프로젝트 usbipd-win 설치

  • Windows 11 실행(빌드 22000 이상) (Windows 10 지원 가능)
  • x64 프로세서가 있는 컴퓨터가 필요합니다. (x86 및 Arm64는 현재 usbipd-win에서 지원되지 않습니다).
  • WSL이 설치되고 최신 버전으로 설정됩니다.
  • Linux 배포판이 설치되고 WSL 2로 설정됩니다.

 

설치 페이지: https://github.com/dorssel/usbipd-win/releases

    usbipd-win_VERSION.msi  파일 다운로드 및 설치

 

 

2. PowerShell 관리자 모드 실행

 1) Windows에 연결된 모든 usb 디바이스 확인

usbipd list

ESP32 연결 전
ESP32 연결 후

 

ESP32를 USB에 연결하기 전과 후에 'usbipd list' 명령어로 확인하면 BUSID 2-1이 새로생겼음을 확인할 수 있다.

 

2) 해당 포트(2-1)를 wsl로 bind 시키기

usbipd bind --busid 2-1

 

위 명령어 실행 후 usbipd list를 통해 다시 확인해보면 다음과 같이 STATE가 Shared로 바뀐것을 확인 가능

 

3) wsl에 해당 포트의 USB를 사용할 수 있도록 변경

  아래 명령어를 통해 해당 포트 USB를 WSL2에서 사용할 수 있도록 변경합니다.

 usbipd attach --wsl --busid 2-1

 

  wsl shell 에서 다음과 같이 usb 포트가 연결된 것을 확인할 수 있다.

attach이전
attach 이후 - 004 번 추가 확인

 

esp32를 usb 포트를 통해 업로드를 하기 위해서는 포트 번호를 알아야 한다.

리눅스에서 usb 포트는 다음과 같은 양식으로 되어 있다.

/dev/ttyUSB0

/dev/ttyUSB1

...

ls /dev/tty*

위 명령어를 통해 다음과 같이 attach 이후에 새로 추가된 포트를 확인할 수 있다.

 

 

* 해당 USB 포트를 wsl에서 해제 시키려면 다음과 같이 하면 된다.

  1) usbipd detach --busid 2-1

    bind는 아직 shared 상태로 되어 있다

    windows에서 usb포트 사용 가능한 상태

  2) usbipd unbind -b 2-1

    위 명령어를 통해 완전히 bind 해제 가능 (초기 상태)

728x90
반응형

'MCU' 카테고리의 다른 글

falling-edge, rising-edge  (1) 2024.04.18
Bluetooth: HID # Boot mode # Report mode  (0) 2024.04.15