树莓派通过网络共享USB设备

故事背景

公司里有台SHARP AR-4021的打印机想要在局域网内实现共享,奈何这货本身没有网络接口,直接去万能的淘宝上175拍了一个打印机共享服务器,喏~就是这货:树莓派通过网络共享USB设备_第1张图片

双百兆网口,也不带WIFI,很纯粹的打印共享服务功能.
树莓派通过网络共享USB设备_第2张图片
结果订单下好了,钱也支付了,客服过来问了一句打印机什么型号的,发过去人家回了句打印机不支持…瞬间GAME OVER,货都不用发了,直接退款了事.

也懒得再去逛其他店的现成设备了,应该大差不差的就这个价位了.突然想起来之前折腾过的树莓派,Linux下直接跑个CUPS服务难道不香吗?随便逛了逛在咸鱼上170块钱收了一枚树莓派3B,还带一张32G的TF卡和原装壳子,成色很不错,除了跑跑CUPS共享打印机,还能做点其他的扩展服务,比这专门的打印共享服务器不知道要高到哪里去了~

然而…我还是想的简单了,一顿操作猛如虎,CUPS服务跑起来,打印机USB怼上去,添加打印机设备的时候又傻眼了…Linux内置的打印机驱动中虽然有SHARP品牌,但是就是没有这个AR-4021的型号,甚至连相似接近的型号都tm没有…跑到SHARP官网上找了一通,说好的支持Linux…可就是翻遍了也找不到,最后发现这个型号的打印机,官方只提供了Windows下的驱动,骗子!
树莓派通过网络共享USB设备_第3张图片
好吧.故事本来到这里就可以结束了,都准备再买个低功耗的x86电脑棒之类的跑Windows来共享了,突发奇想了一下,能不能用树莓派将本地连接的USB设备直接共享到局域网里面呢?就是不在本地安装设备驱动,直接进行USB设备to网络转发的效果.您别说,嘿~还真有这种解决方案!收集到下面这几种技术方案:

  • USB Network Gate
  • USB/IP
  • USB Redirector
  • VirtualHere
  • USB over Network By Fabulatech

简单看了下,大部分都是商用的收费软件,显然不符合成本预算.最终锁定了VirtualHere这个方案,虽然也是商用的,不过默认提供了免费试用的授权,只允许共享1个USB设备,貌似没有其他的功能限制.

官网:https://www.virtualhere.com/home

树莓派通过网络共享USB设备_第4张图片
好了,方案敲定,开始怼起来!

实现过程

树莓派端

只需要从官网上下载一个二进制文件加上可执行的权限跑一下就ojbk了,相当简单粗暴,后面长期使用的建议做成systemd开机服务,方法可以参考另外一篇树莓派折腾笔记

$ wget https://www.virtualhere.com/sites/default/files/usbserver/vhusbdarm 
$ chmod +x vhusbdarm
$ sudo ./vhusbarm -b

# -b参数表示在后台运行

ps:这个vhusbdarm进程需要使用tcp 7575端口进行通信,反正也没开防火墙,无甚大碍的.

客户端(办公电脑)

从官网上下载Windows适用的客户端安装程序:
https://www.virtualhere.com/sites/default/files/usbclient/vhui64.exe

下载好之后直接运行这个vhui64.exe就行了,首次启动过程中会提示需要额外安装Apple Bonjour插件,这货用的是苹果开发的网络自动发现协议,还挺新鲜的哈~

启动起来后,会自动搜索发现当前局域网内已经运行服务器端的设备信息:
树莓派通过网络共享USB设备_第5张图片
测试过程中这台树莓派上只接了一个无线键盘,直接就发现了,双击Raspberry Hub下面的USB设备就可以连上了,这里还会提示安装一个设备驱动(虚拟USB HUB设备),允许就可以了~

最后实现的效果跟USB设备直接接在自己本地电脑上的效果是一样一样的,

查看设备管理器可以看到通用串行总线控制器下面多了个VirtualHere USB Host Controller的控制器设备
树莓派通过网络共享USB设备_第6张图片

你可能感兴趣的:(树莓派)