usbipd 与 Windows WSL
usbip 是 usbip 客户端。usbipd 是 usbip 服务端。usbipd-win 是 windows 平台专用的 usbip 服务端程序。它是 C/S 架构。
它让 Windows 宿主机与 WSL 通过 IP 共享本地的 USB 设备。安装 usbipd 前需要升级 wsl2 版本 wsl --update
。
本文参考自这个讨论。
当 usbipd-win 无法与 WSL 搭配使用
排查问题列表:
- 使用 usbipd 对于 wsl2 版本有要求,使用前可能需要升级 wsl2 版本
wsl --update
,参考官方 Wiki。 - windows 防火墙默认会阻止 WSL 访问宿主机。需要在 Windows Defender 防火墙里添加入站规则。
- 启用 adb 之前,先在 WSL 里用
lsusb
命令看看是否识别了新的 usb 接口。 - 如果以上都确保没问题,还是没法连通宿主机。可以排查电脑里安装的有关网络管理、监控、VPN 等应用。可能是它搞得鬼。之前我装了一个网络监控工具把我电脑的网络流量给劫持了,导致修改防火墙规则也不起作用。
WSL 里 adb 无法连接设备
解决方法:先 adb kill-server
,然后用 sudo adb devices
用 sudo 权限开启 adb server 是关键。之后就能正常连接了。参考 issue。
当执行 adb shell
看到报错 This adb server's $ADB_VENDOR_KEYS is not set
时,去看一眼手机,要点授权后才能访问。需要 adb kill-server
重来一遍。