首先,USB/IP 是为了在局域网内共享USB设备而开发的一套系统。
目前已经集成到了Linux的主线仓库中。因此一般情况下linux系统都可以比较方便的进行使用。
针对Windows貌似也有类似的版本存在,但是这里我也还没有进行研究。
下面是我尝试的过程。
首先USB/IP要使用则需要 两台设备。一台当作Server。一台当作Client。
其中需要共享的设备插入到Server上
Client通过网络来使用位于Server上的设备。
这里准备了:
Server:树莓派一个,用来连接外设,外设可以为键盘、鼠标、U盘等各类设备。
Client:运行在Windows上的虚拟机中的一个 Ubuntu18.04。
服务端
下面首先开始Server上的操作: 树莓派3B+
Linux raspberrypi 5.10.17-v7+ #1414 SMP Fri Apr 30 13:18:35 BST 2021 armv7l GNU/Linux
#安装相关应用...
sudo apt-get install usbip
#加载对应模块
sudo modprobe usbip-core
sudo modprobe vhci-hcd
sudo modprobe usbip-host
#打开服务端监听程序
sudo usbipd -D
#列出当前设备上存在的USB设备
sudo usbip list -l
#将设备绑定到 USBIP 服务上
sudo usbip bind -b 1-1.1.1 后面的busid 从上一步 list出的内容查看。
客户端
之后就是 Client上面的操作了。 Ubuntu18.04
#同样安装相关应用
sudo apt-get install usbip
#加载对应的模块
sudo modprobe usbip-core
sudo modprobe vhci-hcd
#列出远端设备上共享的设备
sudo usbip list -r 192.168.2.64
#将远端设备 attach到本地设备
sudo usbip attach -r 192.168.2.64 -b 1-1.1.1
如果顺利的话 到这一步 位于树莓派上的设备已经可以在 Ubuntu上面操作了。 我尝试了 鼠标、U盘均可以正常工作。
甚至还可以在树莓派上接入串口工具,通过如此操作后,就可以在Ubuntu中使用串口工具了,真的是非常的方便呀。
出错处理
在我操作过程种遇到的一个错误是:
在Ubuntu上没有执行 modprobe 以至于出现 以下报错。
只要按照步骤执行了 modprobe后就正常了。
至于其他的出错可以参照引用的资料。
参考链接: