WSL 에서 USB 포트를 활성화 시키는 방법

WSL로 리눅스를 사용하면 USB 포트는 어떻게 연결할까?

최근에 코드도사에서는 WSL로 리눅스를 Windows 가 설치된 PC에 손쉽게 설치하여 개발환경을 꾸밀 수 있는 방법에 대해 가이드를 드린 적이 있습니다.

저도 위의 방법대로 현재 회사 노트북에 WSL 로 우분투 18.04, 20.04, 22.04 버전을 설치하여 리눅스를 사용중입니다. Virtual Box 나 도커보다 Windows 에서 리눅스를 설치하여 사용하기에는 꽤나 편리합니다.

그동안 별탈 없이 WSL 로 소스도 빌드도 하고 개발 환경도 꾸미고 했는데요, 그러다 문제가 생겼습니다. WSL로 설치한 리눅스에 USB 장치를 연결해야 하는데 현재 WSL 로 설치한 우분투에서는 USB 장치가 전혀 검색도 되지 않고 연결을 해도 인식 조차 하질 않더군요.

현재 설치한 우분투에서 USB 장치를 연결해서 사용해야 하는 상황이라서 약간 당황스러웠으나 약간의 검색을 해보니 하기와 같이 WSL 에서 USB 연결을 하는 방법에 대해 가이드가 되어 있었습니다.

코드도사에서 안내해 드린대로 WSL로 리눅스를 설치하셨다면 WSL2 로 설치가 되어 있을 겁니다. 위 글을 토대로 WSL 로 설치한 리눅스에서 USB 장치를 연결하는 방법에 대해 알아보겠습니다.

WSL로 설치한 우분투에서 USB 포트 활성화 하기

먼저 하기의 링크로 이동하여 “usbipd-win” 의 msi 설치파일을 다운로드 합니다.

마이크로소프트의 문서에서 github 프로젝트의 소스를 사용하라고 하니 격세지변인거 같네요^^. 어쨌거나 위 링크를 클릭하여 msi 파일을 다운로드 해봅니다.

제가 확인한 버전은 3.2.0 이 최신 버전이군요. 그림에서도 보이듯이 .msi 파일을 다운로드 하여 실행합니다. 그리고 설치를 진행합니다.

저는 실행하니 위와 같이 나오는군요. 당연히 “Install” 버튼을 누릅니다.

설치가 완료되었다면 WSL의 우분투를 실행하여서 아래 명령어로 도구들을 설치해 줍니다.

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 에서 연결된 USB 디바이스를 WSL의 우분투로 연결해야 합니다. 다음으로 Windows PowerShell 을 실행합니다.

usbipd wsl list

위 명령어를 Windows PowerShell 에서 입력하면 위의 그림과 같이 연결된 USB 장치들이 나타나게 됩니다. 여기서 연결하려는 USB 장치를 다음 명령어로 WSL에 연결을 해줍니다.

usbipd wsl attach --busid <busid>

그런데 위 명령어를 실행을 하니 권한 문제가 발생하였습니다. 따라서 Windows PowerShell 을 실행할 때 관리자 권한으로 실행을 해야 할거 같습니다.

관리자 권한으로 실행을 하고 나서 USB 장치를 attach 를 하였는데 위와 같이 메시지가 나타나면서 에러 메시지가 발생하네요. 그렇다면 “wsl –update” 로 설치되어 있는 Default 배포판의 커널을 업데이트를 진행해 줍니다.

그런 다음에 다시 USB 장치의 attach 를 시도해 봅니다.

짠! 위와 같이 나온다면 WSL의 우분투에 USB 장치가 잘 연결된거라고 볼 수 있습니다. WSL 우분투의 콘솔에서 확인해 볼까요?

좀전에 연결한 USB 장치가 이제 검색이 되는군요. 이후에는 USB 장치를 WSL 리눅스에서 사용하면 되겠습니다. 이후에 사용 후 더 이상 사용을 안한다면 아래의 명령어로 detach 를 해주면 연결이 해제됩니다.

usbipd wsl detach --busid <busid>

위의 그림과 같이 좀전에 연결한 USB 장치가 detach 된것을 볼 수 있습니다. 이후에도 WSL 에서 USB 장치를 연결 혹은 해제하려면 위의 절차대로 Windows PowerShell 에서 WSL 명령어를 통해 연결 및 해제하면 됩니다.