USB over IP ื‘ื‘ื™ืช

ืœืคืขืžื™ื ื™ืฉ ืจืฆื•ืŸ ืœืขื‘ื•ื“ ืขื ืžื›ืฉื™ืจ ื”ืžื—ื•ื‘ืจ ื‘ืืžืฆืขื•ืช USB ืžื‘ืœื™ ืœื”ืฉืื™ืจ ืื•ืชื• ืขืœ ื”ืฉื•ืœื—ืŸ ืœื™ื“ ื”ืžื—ืฉื‘ ื”ื ื™ื™ื“. ื™ืฉ ืœื™ ืžื›ืฉื™ืจ ื›ื–ื” ื”ื•ื ื—ืจื˜ ืกื™ื ื™ ืขื ืœื™ื™ื–ืจ 500 mW, ื“ื‘ืจ ื“ื™ ืœื ื ืขื™ื ื‘ืžื’ืข ืงืจื•ื‘. ื‘ื ื•ืกืฃ ืœืกื›ื ื” ื”ืžื™ื™ื“ื™ืช ืœืขื™ื ื™ื™ื, ืžืฉืชื—ืจืจื™ื ืžื•ืฆืจื™ ื‘ืขื™ืจื” ืจืขื™ืœื™ื ื‘ืžื”ืœืš ืคืขื•ืœืช ื”ืœื™ื™ื–ืจ, ื•ืœื›ืŸ ื™ืฉ ืœืžืงื ืืช ื”ืžื›ืฉื™ืจ ื‘ืื–ื•ืจ ืžืื•ื•ืจืจ ื”ื™ื˜ื‘, ื•ืจืฆื•ื™ ืžื‘ื•ื“ื“ ืžืื ืฉื™ื. ืื‘ืœ ืื™ืš ืœื ื”ืœ ืžื›ืฉื™ืจ ื›ื–ื”? ืžืฆืืชื™ ื‘ื˜ืขื•ืช ืืช ื”ืชืฉื•ื‘ื” ืœืฉืืœื” ื”ื–ื• ืชื•ืš ื›ื“ื™ ื’ืœื™ืฉื” ื‘ืžืื’ืจ OpenWRT ื‘ืชืงื•ื•ื” ืœืžืฆื•ื ืฉื™ืžื•ืฉ ืจืื•ื™ ืœื ืชื‘ D-Link DIR-320 A2 ื”ื™ืฉืŸ. ื›ื“ื™ ืœื”ืชื—ื‘ืจ, ื”ื—ืœื˜ืชื™ ืœื”ืฉืชืžืฉ ื‘ื–ื” ืฉืชื•ืืจ ืขืœ Habrรฉ ืงื•ื“ื ืœื›ืŸ ืžื ื”ืจืช USB over IP, ืขื ื–ืืช, ื›ืœ ื”ื”ื•ืจืื•ืช ืœื”ืชืงื ืชื• ืื™ื‘ื“ื• ืืช ื”ืจืœื•ื•ื ื˜ื™ื•ืช ืฉืœื”ืŸ, ืื– ืื ื™ ื›ื•ืชื‘ ืืช ืฉืœื™.

OpenWRT ื”ื™ื ืžืขืจื›ืช ื”ืคืขืœื” ืฉืื™ื ื” ื–ืงื•ืงื” ืœื”ืงื“ืžื” ื•ืœื›ืŸ ืœื ืืชืืจ ืืช ื”ืชืงื ืชื”. ืขื‘ื•ืจ ื”ื ืชื‘ ืฉืœื™, ืœืงื—ืชื™ ืืช ื”ืžื”ื“ื•ืจื” ื”ื™ืฆื™ื‘ื” ื”ืื—ืจื•ื ื” ืฉืœ OpenWrt 19.07.3, ื•ื—ื™ื‘ืจืชื™ ืื•ืชื• ืœื ืงื•ื“ืช ื”ื’ื™ืฉื” ื”ืจืืฉื™ืช ืฉืœ Wi-Fi ื›ืœืงื•ื—, ื•ื‘ื—ืจืชื™ ื‘ืžืฆื‘ lanื›ื“ื™ ืœื ืœื™ื™ืกืจ ืืช ื—ื•ืžืช ื”ืืฉ.

ื—ืœืง ืฉืจืช

ืื ื—ื ื• ืคื•ืขืœื™ื ืœืคื™ ื”ื ื—ื™ื•ืช ืจืฉืžื™ื•ืช. ืœืื—ืจ ื—ื™ื‘ื•ืจ ื‘ืืžืฆืขื•ืช 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 ืžืชื’ื‘ืจ 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 ื”ืชืขื•ืคื” post

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

ืฆื“ ื”ืœืงื•ื—

ื‘ื•ืื• ื ื ืกื” ืœื—ื‘ืจ ืืช ื”ืžื›ืฉื™ืจ ืœ-Windows 10 ื‘ืืžืฆืขื•ืช ื”ื”ื•ืจืื•ืช ืฉืœืขื™ืœ ืž-openwrt.org. ื”ืจืฉื• ืœื™ ืœื•ืžืจ ืœื›ื ืžื™ื“: ื”ืจืขื™ื•ืŸ ื ื™ื“ื•ืŸ ืœื›ื™ืฉืœื•ืŸ. ืจืืฉื™ืช, ืจืง Windows 7 x64 ื ื—ืฉื‘. ืฉื ื™ืช, ื ื™ืชืŸ ืงื™ืฉื•ืจ ืœืฉืจืฉื•ืจ ื‘ืืชืจ sourceforge.net, ื‘ื• ืžื•ืฆืข ืœื”ื•ืจื™ื“ ื“ืจื™ื™ื‘ืจ ืฉืชื•ืงืŸ ื‘-2014 ืž-dropbox. ื›ืืฉืจ ืื ื• ืžื ืกื™ื ืœื”ืคืขื™ืœ ืื•ืชื• ืชื—ืช Windows 10 ื•ืœื”ืชื—ื‘ืจ ืœืžื›ืฉื™ืจ ืฉืœื ื•, ืื ื• ืžืงื‘ืœื™ื ืฉื’ื™ืื”:

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

*** ERROR: cannot find device

ื–ืืช ื‘ืฉืœ ื”ืขื•ื‘ื“ื” ืฉื”ืœืงื•ื— ืื™ื ื• ืขื•ื‘ื“ ืขื ืฉืจืช ืฉื ื‘ื ื” ืขื‘ื•ืจ ืœื™ื‘ื” ื™ืฉื ื” ืžื’ืจืกื” 3.14.
ืฉืจืช ื”-usbip ืชื—ืช OpenWRT 19.07.3 ื‘ื ื•ื™ ืขืœ ืœื™ื‘ืช 4.14.180.

ื‘ื”ืžืฉืš ื”ื—ื™ืคื•ืฉ, ืื ื™ ื ืชืงืœ ื‘ืคื™ืชื•ื— ื”ื ื•ื›ื—ื™ ืฉืœ ืœืงื•ื— Windows GitHub. ืื•ืงื™ื™, ืชืžื™ื›ื” ื‘-Windows 10 x64 ืžื•ืฆื”ืจืช, ืื‘ืœ ื”ืœืงื•ื— ื”ื•ื ืจืง ืœืงื•ื— ื‘ื“ื™ืงื”, ืื– ื™ืฉื ืŸ ืžืกืคืจ ืžื’ื‘ืœื•ืช.

ืื– ืชื—ื™ืœื” ื”ื ืžื‘ืงืฉื™ื ืžืžืš ืœื”ืชืงื™ืŸ ืชืขื•ื“ื”, ื™ืชืจ ืขืœ ื›ืŸ, ืคืขืžื™ื™ื. ืื•ืงื™ื™, ืฉืžื ื• ืืช ื–ื” ื‘-Trusted Root Certification Authority ื•ื‘-Trusted Publishers.

ืœืื—ืจ ืžื›ืŸ, ืขืœื™ืš ืœื”ื›ื ื™ืก ืืช ืžืขืจื›ืช ื”ื”ืคืขืœื” ืœืžืฆื‘ ื‘ื“ื™ืงื”. ื–ื” ื ืขืฉื” ืขืœ ื™ื“ื™ ื”ืฆื•ื•ืช

bcdedit.exe /set TESTSIGNING ON

ื‘ืคืขื ื”ืจืืฉื•ื ื” ืœื ื”ืฆืœื—ืชื™, ืžื ืข ืœืื‘ื˜ื— ืืช ื”ืืชื—ื•ืœ. ื›ื“ื™ ืœื”ืฉื‘ื™ืช ืื•ืชื•, ืขืœื™ืš ืœืืชื—ืœ ืžื—ื“ืฉ ืœืชื•ืš UEFI, ื•ืœื”ื’ื“ื™ืจ ืืชื—ื•ืœ ืžืื•ื‘ื˜ื— - ื”ืฉื‘ืช. ื“ื’ืžื™ ืžื—ืฉื‘ ื ื™ื™ื“ ืžืกื•ื™ืžื™ื ืขืฉื•ื™ื™ื ืœื“ืจื•ืฉ ื”ื’ื“ืจืช ืกื™ืกืžืช ืžืคืงื—.

ืœืื—ืจ ืžื›ืŸ, ืืชื—ืœ ืœืชื•ืš Windows ื•ืขืฉื” bcdedit.exe /set TESTSIGNING ON
ื•ื•ื™ื ื“ื•ืก ืื•ืžืจ ืฉื”ื›ืœ ื‘ืกื“ืจ. ืื ื• ืžืืชื—ืœื™ื ืฉื•ื‘, ื•ืจื•ืื™ื ื‘ืคื™ื ื” ื”ื™ืžื ื™ืช ื”ืชื—ืชื•ื ื” ืืช ื”ื›ืชื•ื‘ืช Test Mode, ื’ืจืกื” ื•ืžืกืคืจ build ืฉืœ ืžืขืจื›ืช ื”ื”ืคืขืœื”.

ืœืžื” ื›ืœ ื”ืžื ื™ืคื•ืœืฆื™ื•ืช ื”ืืœื”? ื›ื“ื™ ืœื”ืชืงื™ืŸ ื“ืจื™ื™ื‘ืจ ืœื ื—ืชื•ื USB/IP VHCI. ืžื•ืฆืข ืœืขืฉื•ืช ื–ืืช ืขืœ ื™ื“ื™ ื”ื•ืจื“ืช ื”ืงื‘ืฆื™ื usbip.exe, usbip_vhci.sys, usbip_vhci.inf, usbip_vhci.cer, usbip_vhci.cat, ื•ื”ืคืขืœื” ืขื ื–ื›ื•ื™ื•ืช ืžื ื”ืœ ืžืขืจื›ืช

usbip.exe install

ืื• ื”ื“ืจืš ื”ืฉื ื™ื™ื”, ื”ืชืงื ืช Legacy Hardware ื‘ืžืฆื‘ ื™ื“ื ื™. ื‘ื—ืจืชื™ ื‘ืืคืฉืจื•ืช ื”ืฉื ื™ื™ื”, ืงื™ื‘ืœืชื™ ืื–ื”ืจื” ืขืœ ื”ืชืงื ืช ื“ืจื™ื™ื‘ืจ ืœื ื—ืชื•ื ื•ื”ืกื›ืžืชื™ ืื™ืชื”.

ืœืื—ืจ ืžื›ืŸ, ืื ื• ื‘ื•ื“ืงื™ื ืฉื™ืฉ ืœื ื• ืืช ื”ื™ื›ื•ืœืช ืœื”ืชื—ื‘ืจ ืœื”ืชืงืŸ 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 ื ื›ืฉืœื” ืื ื—ื ื• ืœื ืฉืžื™ื ืœื‘, ื–ื” ืœื ืžืฉืคื™ืข ืขืœ ื”ืขื‘ื•ื“ื”.

ื›ืขืช ืื’ื“ ืืช ื”ืžื›ืฉื™ืจ:

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

ื”ื›ืœ, Windows ื–ื™ื”ื” ืžื›ืฉื™ืจ ื—ื“ืฉ, ืขื›ืฉื™ื• ืืชื” ื™ื›ื•ืœ ืœืขื‘ื•ื“ ืื™ืชื• ื›ืื™ืœื• ื”ื•ื ืžื—ื•ื‘ืจ ืคื™ื–ื™ืช ืœืžื—ืฉื‘ ื ื™ื™ื“.

ื ืืœืฆืชื™ ืœืกื‘ื•ืœ ืžืขื˜ ืขื ื”ื—ืจื˜ ื”ืกื™ื ื™, ื›ื™ ื›ืฉื ื™ืกื™ืชื™ ืœื”ืชืงื™ืŸ ืืช ื”ื“ืจื™ื™ื‘ืจ ืฉืœ ื”-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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”