USB oor IP by die huis

Soms is daar 'n begeerte om te werk met 'n toestel wat via USB gekoppel is sonder om dit op die tafel langs die skootrekenaar te hou. Ek het so 'n toestel is 'n Chinese graveur met 'n 500 mW laser, 'n nogal onaangename ding in noue kontak. Benewens die onmiddellike gevaar vir die oë, word giftige verbrandingsprodukte vrygestel tydens die werking van die laser, dus moet die toestel in 'n goed geventileerde area geleë wees, en verkieslik geïsoleer van mense. Maar hoe om so 'n toestel te bestuur? Ek het per ongeluk die antwoord op hierdie vraag gekry terwyl ek deur die OpenWRT-bewaarplek blaai in die hoop om 'n waardige gebruik vir die ou D-Link DIR-320 A2-router te vind. Om aan te sluit, het ek besluit om die een te gebruik wat vroeër op Habré beskryf is USB oor IP tonnelAlle instruksies om dit te installeer, het egter hul relevansie verloor, so ek skryf my eie.

OpenWRT is 'n bedryfstelsel wat geen bekendstelling nodig het nie, so ek sal nie die installasie daarvan beskryf nie. Vir my router het ek die nuutste stabiele weergawe van OpenWrt 19.07.3 geneem en dit as 'n kliënt aan die hoof Wi-Fi-toegangspunt gekoppel en die modus gekies lanom nie die brandmuur te pynig nie.

Bediener deel

Ons tree op volgens amptelike instruksies. Nadat u via ssh gekoppel is, installeer die nodige pakkette.

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

Vervolgens koppel ons ons toestel aan die USB-poort van die router (in my geval die toestel: 'n USB-hub, 'n flitsaandrywer waarop die lêerstelsel van die router gemonteer is (weens 'n gebrek aan spasie op die interne skyf), en, direk, die graveur).

Probeer tans om 'n lys van gekoppelde toestelle te wys:

root@OpenWrt:~# usbip list -l

Leeg.

Deur te google is die skuldige gevind, dit blyk 'n biblioteek te wees libudev-fbsd.
Ons haal die nuutste werkende weergawe uit die bewaarplek met ons hande libudev_3.2-1 van die OpenWRT 17.01.7-vrystelling vir jou argitektuur, in my geval is dit libudev_3.2-1_mipsel_mips32.ipk. Gebruik wget / scp, laai dit af in die router se geheue en installeer dit weer

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

Ons kyk na:

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)

Chinese man wat by USB-hub ingeprop is, raak bsuid 1-1.4. Onthou.

Nou begin ons die daemoon:

root@OpenWrt:~# usbipd -D

en bindim chinees

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

Kom ons kyk of alles werk:

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

Om die toestel outomaties verder te bind, wysig /etc/rc.localdeur vooraf by te voeg uitgang 0 Die volgende:

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

Kliëntkant

Kom ons probeer om die toestel aan Windows 10 te koppel deur die bogenoemde instruksies vanaf openwrt.org te gebruik. Laat ek jou dadelik sê: die idee is gedoem tot mislukking. Eerstens word slegs Windows 7 x64 oorweeg. Tweedens word 'n skakel gegee na 'n draad op sourceforge.net, waarin voorgestel word om 'n drywer wat in 2014 gepatch is van 'n dropbox af te laai. Wanneer ons probeer om dit onder Windows 10 te laat loop en aan ons toestel te koppel, kry ons 'n fout:

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

*** ERROR: cannot find device

Dit is te wyte aan die feit dat die kliënt nie werk met 'n bediener wat gebou is vir 'n kern ouer as weergawe 3.14 nie.
Die usbip-bediener onder OpenWRT 19.07.3 is gebou op die 4.14.180-kern.

Deur die soektog voort te sit, struikel ek oor die huidige ontwikkeling van 'n Windows-kliënt Github. Goed, ondersteuning vir Windows 10 x64 word verklaar, maar die kliënt is slegs 'n toetskliënt, so daar is 'n aantal beperkings.

So, eers vra hulle jou om 'n sertifikaat te installeer, bowendien, twee keer. Ok, ons plaas dit in die Trusted Root Certification Authority en Trusted Publishers.

Vervolgens moet u die bedryfstelsel in toetsmodus plaas. Dit word deur die span gedoen

bcdedit.exe /set TESTSIGNING ON

Die eerste keer wat ek nie daarin geslaag het nie, verhoed veilige laaibak. Om dit te deaktiveer, moet jy in UEFI herlaai en veilige selflaai stel - deaktiveer. Sommige skootrekenaarmodelle vereis dalk dat 'n toesighouerwagwoord gestel moet word.

Daarna, begin in Windows en doen bcdedit.exe /stel TOETSONDERTEKENING AAN
Windows sê alles is reg. Ons herlaai weer, en ons sien in die onderste regterhoek die inskripsie Toetsmodus, weergawe en bounommer van die bedryfstelsel.

Hoekom al hierdie manipulasies? Om 'n ongetekende bestuurder te installeer USB/IP VHCI. Dit word voorgestel om dit te doen deur die lêers usbip.exe, usbip_vhci.sys, usbip_vhci.inf, usbip_vhci.cer, usbip_vhci.cat af te laai en met administrateurregte te hardloop

usbip.exe install

of die tweede manier, die installering van Legacy Hardware in die handmodus. Ek het die tweede opsie gekies, 'n waarskuwing ontvang oor die installering van 'n ongetekende bestuurder en daarmee saamgestem.

Vervolgens kyk ons ​​of ons die vermoë het om aan 'n afgeleë USB-toestel te koppel deur die opdrag uit te voer:

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

kry 'n lys van toestelle:

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)

vir 'n fout usbip: fout: kon nie usb-ID-databasis oopmaak nie ons gee nie aandag nie, dit raak nie die werk nie.

Bind nou die toestel:

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

Alles, Windows het 'n nuwe toestel opgespoor, nou kan jy daarmee werk asof dit fisies aan 'n skootrekenaar gekoppel is.

Ek moes 'n bietjie swaarkry met die Chinese graveerder, want toe ek sy CH341SER-bestuurder probeer installeer deur die installeerder wat saam met die graveerder gekom het (ja, die Arduino-graveerder), het USB / IP VHCI Windows in 'n BSOD laat val. Die installering van die CH341SER-bestuurder aan die koppeling van die toestel via usbip.exe het die probleem opgelos.

Bottom line: die graveur maak geraas en rook in die kombuis met die venster oop en die deur toe, ek kyk na die proses van brand vanuit 'n ander vertrek deur my inheemse sagteware, wat nie 'n vuil truuk voel nie.

Gebruikte bronne:

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

Bron: will.com

Voeg 'n opmerking