Posted by on the 24th of September, 2023 at 12:35 pm under 컴퓨터.  This post has no comments.

이번에 업그레이드 하면서 윈도우10을 새로 깔았다. 그리고 가능한 개발 환경은 WSL 을 이용해 리눅스를 이용하고 있다. WSL에 Android Studio를 사용하는데 있던 문제 해결 방법을 적어둔다. 결론은 USBIPD 쓰면 됨.

윈도우 ADB 실행 안됨

일단 윈도우에서 ADB를 실행하는데 자꾸 5037 포트를 열지 못하고 실행이 되지 않았다. 구글링 해보니 Hyper-V 를 사용하는 경우 Hyper-V 에서 임의의 포트를 미리 잡고 있어서 문제가 생긴다고 한다.

다음 명령으로 포트를 바꾸고 재부팅하면 해결 된다.

netsh int ipv4 set dynamic tcp start=49152 num=16384
netsh int ipv6 set dynamic tcp start=49152 num=16384

(출처: https://stackoverflow.com/questions/52173657/android-studio-error-cannot-connect-to-daemon/76617445#76617445)

WSL Android Studio와 연동하기 (윈도우 adb + socat)

안드로이드 폰을 PC와 연결하면 윈도우PC와 동작한다. 이걸 WSL로 연동을 해야 하는데 USBIPD 가 잘 동작하지 않아 일단 다른 방법을 시도했다.  윈도우에서 adb를 실행시키고 리눅스에서 socat으로 사용하는 방법이다.

먼저 윈도우에서 adb를 실행한다.

adb kill-server
adb -a nodaemon server start

다음에 linux에서 socat을 실행한다.

adb kill-server
export WSL_HOST_IP="$(tail -1 /etc/resolv.conf | cut -d' ' -f2)"
socat TCP-LISTEN:5037,reuseaddr,fork TCP:$WSL_HOST_IP:5037

(출처: https://stackoverflow.com/questions/60166965/adb-device-list-empty-using-wsl2/77049846#77049846)

WSL Android Studio와 연동하기 (USBIPD)

그런데, 이 글을 적다가 진짜 USBIPD로 동작을 안하나 찾아봤다. 그런데 알고보니.. udev rules 파일을 제대로 안만들어서 그런거였다. udev rules가 잘 되어 있다면 윈도우에서는 다음과 같이 실행하면 된다.

usbipd wsl list            # bus id 확인
usbipd wsl attach –busid 0-0 –auto-attach

USBIPD 사용법: https://github.com/dorssel/usbipd-win/wiki/WSL-support



* Required

The URI to TrackBack this entry is:
https://bmp.pe.kr/blog/index.php/2023/09/24/wsl%ec%97%90-%ec%84%a4%ec%b9%98%ed%95%9c-android-studio%eb%a1%9c-%ea%b0%9c%eb%b0%9c%ed%95%98%ea%b8%b0/trackback/