前两天大有事情去忙,闲下来以后被朋友劝去尝试了一下 STM32 开发,搭建环境过程中学会了 usbip 工具的使用。虽然 STM32 的学习因为手上这片 stm32f103c8t6 排针没有焊接且手里没有 LED 灯泡模块而搁置就是了。

在此简单介绍 USB/IP 的使用。细节请参阅:


USB/IP 是将 USB 设备通过网络进行共享的软件工具。USB/IP将「USB I/O消息」封装到 TCP/IP 中,并在计算机之间传输,以实现远程共享或访问USB设备。

在 Fedora 43 上,该工具可以通过下述指令安装:

$ sudo dnf install usbip

在 USB/IP 中,服务端是将 USB 设备分享出去的端系统,客户端是使用服务端分享出来的 USB 设备的端系统。

服务端所需要做的工作:

  • 物理连接上目标USB设备
  • 启用usbip_host模块
  • 启用usbip-server服务

客户端所需要做的工作:

  • 启用vhci-hcd模块

过程:

  • 服务端通过usbip list -l翻阅本地usb设备,然后通过usbip bind --busid=...进行绑定
  • 客户端通过usbip list --remote=<server_ip>查看服务端上发布的usb设备,使用usbip attach --remote=<server_ip> -b ...进行连接
  • 服务端和客户端分别可以通过unbinddetach来取消连接。