最近有了一个比较奇葩的需求,需要在本地远程连接一个 USB 设备,结果发现了 USB 协议可以通过 TCP/IP 网络使用,真的是万物 over TCP/IP。
USB/IP 各个操作系统基本都有实现,以双方都是 Linux 为例。使用配置异常的简单。一些企业级别的 USB 共享等等应该也是这个方案。
Server
列出本地 USB 设备,并记录 busid。
sudo usbip list --local
启动 Server
sudo usbipd -D
连接设备
sudo usbip bind -b busid
断开设备
sudo usbip unbind -b busid
Client
查看远程共享的设备
sudo usbip list --remote [server_ip]
连接远程设备
sudo usbip attach --remote [server_ip] --busid=[busid]
查看状态
lsusb
sudo usbip port
断开设备
sudo usbip detach -p [port_number]