故事背景
公司裏有臺SHARP AR-4021
的打印機想要在局域網內實現共享,奈何這貨本身沒有網絡接口,直接去萬能的淘寶上175拍了一個打印機共享服務器,喏~就是這貨:
雙百兆網口,也不帶WIFI,很純粹的打印共享服務功能.
結果訂單下好了,錢也支付了,客服過來問了一句打印機什麼型號的,發過去人家回了句打印機不支持…😂瞬間GAME OVER,貨都不用發了,直接退款了事.
也懶得再去逛其他店的現成設備了,應該大差不差的就這個價位了.突然想起來之前折騰過的樹莓派,Linux下直接跑個CUPS服務難道不香嗎?隨便逛了逛在鹹魚上170塊錢收了一枚樹莓派3B,還帶一張32G的TF卡和原裝殼子,成色很不錯,除了跑跑CUPS共享打印機,還能做點其他的擴展服務,比這專門的打印共享服務器不知道要高到哪裏去了~
然而…我還是想的簡單了,一頓操作猛如虎,CUPS服務跑起來,打印機USB懟上去,添加打印機設備的時候又傻眼了…Linux內置的打印機驅動中雖然有SHARP品牌,但是就是沒有這個AR-4021的型號,甚至連相似接近的型號都tm沒有…😭跑到SHARP官網上找了一通,說好的支持Linux…可就是翻遍了也找不到,最後發現這個型號的打印機,官方只提供了Windows下的驅動,騙子!
好吧.故事本來到這裏就可以結束了,都準備再買個低功耗的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
好了,方案敲定,開始懟起來!
實現過程
樹莓派端
只需要從官網上下載一個二進制文件加上可執行的權限跑一下就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
插件,這貨用的是蘋果開發的網絡自動發現協議,還挺新鮮的哈~
啓動起來後,會自動搜索發現當前局域網內已經運行服務器端的設備信息:
測試過程中這臺樹莓派上只接了一個無線鍵盤,直接就發現了,雙擊Raspberry Hub
下面的USB設備就可以連上了,這裏還會提示安裝一個設備驅動(虛擬USB HUB設備),允許就可以了~
最後實現的效果跟USB設備直接接在自己本地電腦上的效果是一樣一樣的,
查看設備管理器可以看到通用串行總線控制器
下面多了個VirtualHere USB Host Controller
的控制器設備