项目十--USB over IP server on microWRT
本教程主要介绍一下USB over IP,以及在microWRT上的实现。 USB/IP介绍USB/IP 是一种通过IP在不同系统之间共享USB设备的技术。为了能够在不同的系统之间共享USB设备,需要把USB接口协议的报文放在TPC/IP报文 中进行传递。这样本地的USB设备,就可以通过网络被远端的设备来操作。如果将两者绑定在一起后,本地PC就可以操作远程的设备,比如:
在整个USB/IP 系统中分为Server/Client, 一般是在Server上连接usb设备,并安装相依的server端软件,而client端可以是linux系统的PC, 也可以是Window系统。同样需要安装相应的client软件。系统原理图如下: microWRT USB/IP Server搭建1.软件配置 目前openWRT的BB版本已经支持了USB/IP,我们只要按照下图进行配置,并编译固件,即可。 2.将固件烧写到MicroWRT板子上,通过“usbip list -l" 命令能列出可用的USB设备,在下面的例子中是一个hub和一个鼠标。如下: root@microWRT:~# usbip list -l Local USB devices: ================== - busid 2-1 (06e8:0407) 2-1:1:1.0 -> hub - busid 2-2 (079e:2410) 2-2:1.0 -> unknown 3. 下面将设备2-2添加到/etc/rc.local 中。 usbipd -D & sleep 1 usbip bind -b 2-2 exit 0 至此microWRT端就配置好了。我们可以通过下面的命令来查看是否通过网络找到USB设备,如下: root@microWrt:~# netstat -alpt Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:3320 0.0.0.0:* LISTEN 356/usbipd Client端搭建1. Linux 系统 (1) 安装usbip在PC上,如下: jason@ubuntu:~$ sudo apt-get install usbip Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: libsysfs2 libusbip0 The following NEW packages will be installed: libsysfs2 libusbip0 usbip (2) 装载vhci mod jason@ubuntu:~$ sudo modprobe vhci_hcd (3) 测试远端USB设备是否可访问 jason@ubuntu:~$ usbip list -r 192.168.1.1 Exportable USB devices ====================== - 192.168.1.1 2-2: Pixart Imaging, Inc. : Optical Mouse (093a:2510) : /sys/devices/platform/bcm63xx_ohci.0/usb2/2-2 : (Defined at Interface level) (00/00/00) : 0 - Human Interface Device / Boot Interface Subclass / Mouse (03/01/02) (4) 绑定远端USB设备 jason@ubuntu:~$ usbip attach -r 192.168.1.1 -b 2-2 如果一切正常的话,就可以在PC上操作远端的鼠标了。 2. Windows系统 在window系统上安装usbip驱动有时会遇到问题,主要是版本不匹配。每个系统安装后也不一样。详细的安装方法可以参考下面几个链接。 下载源码自己编译: http://sourceforge.net/p/usbip/code/HEAD/tree/ 下载编译好的驱动: http://sourceforge.net/projects/usbip/ 安装好驱动后,在windows的命令行窗口中运行如下命令,查看设备 usbip.exe -l 192.168.1.1 |