家庭 USB over IP

有時您希望使用透過 USB 連接的設備,而不將其放在筆記型電腦旁邊的桌子上。 我的設備是一台中國雕刻機,配備 500 mW 激光,近距離接觸時相當不愉快。 除了對眼睛造成直接危險外,雷射操作期間還會釋放有毒燃燒產物,因此設備應放置在通風良好的區域,並最好與人隔離。 如何控制這樣的設備? 我在瀏覽 OpenWRT 儲存庫時意外找到了這個問題的答案,希望為舊的 D-Link DIR-320 A2 路由器找到一個有價值的用途。 為了進行連接,我決定使用哈布雷之前描述的。 USB over IP 隧道然而,所有安裝說明都失去了相關性,所以我正在編寫自己的說明。

OpenWRT是一個不需要介紹的作業系統,所以我不會描述它的安裝。 對於我的路由器,我採用了 OpenWrt 19.07.3 的最新穩定版本,並將其作為客戶端連接到主 Wi-Fi 接入點,選擇模式 局域網,以免折磨防火牆。

服務器部分

我們按照 官方說明。 透過 ssh 連接後,安裝必要的軟體包。

root@OpenWrt:~# opkg update
root@OpenWrt:~# opkg install kmod-usb-ohci usbip-server usbip-client

接下來,我們將裝置連接到路由器的 USB 連接埠(在我的例子中,裝置:USB 集線器、安裝了路由器檔案系統的快閃磁碟機(由於內部儲存空間不足),並且直接將雕刻師)。

讓我們嘗試顯示已連接設備的清單:

root@OpenWrt:~# usbip list -l

空的。

透過谷歌找到了罪魁禍首,原來是一個圖書館 libudev-fbsd.
我們手動從儲存庫中提取最新的工作版本 libudev_3.2-1 從適用於您的架構的 OpenWRT 17.01.7 版本開始,在我的例子中,它是 libudev_3.2-1_mipsel_mips32.ipk。 使用wget/scp,將其下載到路由器記憶體中並重新安裝

root@OpenWrt:~# opkg remove --force-depends libudev-fbsd
root@OpenWrt:~# opkg install libudev_3.2-1_mipsel_mips32.ipk

我們檢查:

root@OpenWrt:~# usbip list -l
 - busid 1-1.1 (090c:1000)
   Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) : Flash Drive (090c:1000)

 - busid 1-1.4 (1a86:7523)
   QinHeng Electronics : HL-340 USB-Serial adapter (1a86:7523)

一名連接到 USB 集線器的中國人收到了 bsuid 1-1.4。 記住。

現在讓我們啟動守護程式:

root@OpenWrt:~# usbipd -D

和中國人賓丁

root@OpenWrt:~# usbip bind -b 1-1.4
usbip: info: bind device on busid 1-1.4: complete

讓我們檢查一下一切是否正常:

root@OpenWrt:/home# 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:3240            0.0.0.0:*               LISTEN      1884/usbipd

為了進一步自動綁定設備,讓我們編輯 在/etc/rc.local透過在之前添加 退出0 以下內容:

usbipd -D &
sleep 1
usbip bind -b 1-1.4

客戶端

讓我們嘗試使用 openwrt.org 中的上述說明將裝置連接到 Windows 10。 我馬上就說:這個想法注定失敗。 首先,僅考慮 Windows 7 x64。 其次,提供了一個連結到 sourceforge.net 上的一個線程,建議從 Dropbox 下載 2014 年修補的驅動程式。 當我們嘗試在 Windows 10 下執行它並連接到我們的裝置時,我們收到以下錯誤:

c:Utilsusbip>usbip -a 192.168.31.203 1-1.4
usbip for windows ($Id$)

*** ERROR: cannot find device

這是因為客戶端無法與為早於 3.14 版本的核心所建置的伺服器一起使用。
OpenWRT 19.07.3 的 usbip 伺服器是基於核心 4.14.180 建置。

繼續我的搜索,我發現了 Windows 用戶端的當前開發 GitHub上。 好的,聲明了對 Windows 10 x64 的支持,但客戶端只是測試客戶端,因此存在一些限制。

因此,他們首先要求安裝證書,然後安裝兩次。 好吧,我們把它放在受信任的根憑證授權單位和受信任的發布者中。

接下來,您需要將作業系統置於測試模式。 這是由一個團隊完成的

bcdedit.exe /set TESTSIGNING ON

我第一次沒成功,我礙事了 安全啟動。 要停用它,您需要重新啟動到 UEFI 並將安全啟動設定為停用。 某些筆記型電腦型號可能需要設定管理員密碼。

之後,啟動進入 Windows 並執行 bcdedit.exe /設定測試簽名打開
維達說一切都好。 我們再次重新啟動,我們會在右下角看到「測試模式」、「版本」和「作業系統版本號」等字樣。

所有這些操縱是為了什麼? 安裝未簽署的驅動程式 USB/IP VHCI。 建議透過下載檔案 usbip.exe、usbip_vhci.sys、usbip_vhci.inf、usbip_vhci.cer、usbip_vhci.cat 並以管理員權限執行來執行此操作

usbip.exe install

或第二種方法,手動安裝舊硬體。 我選擇了第二個選項,收到有關安裝未簽署驅動程式的警告並同意它。

接下來,我們透過執行以下命令檢查是否能夠連接到遠端 USB 裝置:

usbip.exe list -r <ip вашего роутера>

我們得到一個設備清單:

c:Utilsusbip>usbip.exe list -r 192.168.31.203
usbip: error: failed to open usb id database
Exportable USB devices
======================
 - 192.168.31.203
      1-1.4: unknown vendor : unknown product (1a86:7523)
           : /sys/devices/ssb0:1/ehci-platform.0/usb1/1-1/1-1.4
           : unknown class / unknown subclass / unknown protocol (ff/00/00)

因為一個錯誤 usbip:錯誤:無法開啟 USB ID 資料庫 我們不注意,不影響工作。

現在我們綁定設備:

c:Utilsusbip>usbip.exe attach -r 192.168.31.203 -b 1-1.4

就這樣,Windows 已偵測到一個新設備,現在您可以使用它,就像它實際連接到筆記型電腦一樣。

我在使用中國雕刻機時遇到了一些麻煩,因為當我嘗試透過雕刻機(是的,一個 Arduino 雕刻機)附帶的安裝程式安裝其 CH341SER 驅動程式時,USB/IP VHCI 使 Windows 陷入 BSOD。 但是,安裝CH341SER驅動程式 透過 usbip.exe 連接設備解決了問題。

底線:雕刻師在廚房裡開著窗戶、關著門時發出噪音和煙霧,我透過我自己的軟體從另一個房間觀看燃燒過程,該軟體沒有感覺到卡住。

使用的來源:

https://openwrt.org/docs/guide-user/services/usb.iptunnel
https://github.com/cezanne/usbip-win

來源: www.habr.com

添加評論