USB over IP hjemme

Noen ganger vil man jobbe med en enhet som er koblet til via USB uten Ä ha den pÄ bordet ved siden av den bÊrbare datamaskinen. For meg er en slik enhet en kinesisk gravÞr med en 500 mW laser, noe som er ganske ubehagelig i nÊrkontakt. I tillegg til den umiddelbare faren for Þynene, frigjÞres giftige forbrenningsprodukter under laseroperasjonen, sÄ enheten bÞr vÊre i et godt ventilert rom, og helst isolert fra mennesker. Men hvordan kontrollerer man en slik enhet? Jeg fant tilfeldigvis svaret pÄ dette spÞrsmÄlet mens jeg sÞkte i OpenWRT-arkivet i hÄp om Ä finne en verdig bruk for en gammel D-Link DIR-320 A2-ruter. For tilkoblingen bestemte jeg meg for Ä bruke den som er beskrevet tidligere pÄ Habr. USB over IP-tunnel, men alle instruksjonene for installasjon er utdaterte, sÄ jeg skriver mine egne.

OpenWRT er et operativsystem som ikke trenger noen introduksjon, sÄ jeg vil ikke beskrive installasjonen av det. For ruteren min tok jeg den nyeste stabile versjonen av OpenWrt 19.07.3, og koblet den til hovedtilgangspunktet via Wi-Fi som en klient, og valgte modusen lan, for ikke Ä plage brannmuren.

Serverdel

Vi handler deretter offisielle instruksjonerEtter tilkobling via SSH, installer de nĂždvendige pakkene.

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

Deretter kobler vi enheten vÄr til USB-porten pÄ ruteren (i mitt tilfelle er enhetene: en USB-hub, en flash-stasjon som ruterens filsystem er montert pÄ (pÄ grunn av mangel pÄ plass pÄ den interne lagringen), og direkte gravÞren).

La oss prĂžve Ă„ vise en liste over tilkoblede enheter:

root@OpenWrt:~# usbip list -l

TĂžmme.

Ved Ă„ google ble synderen funnet, det viste seg Ă„ vĂŠre et bibliotek libudev-fbsd.
Vi henter manuelt den nyeste fungerende versjonen fra depotet libudev_3.2-1 Fra OpenWRT 17.01.7-utgivelsen for arkitekturen din, i mitt tilfelle er det libudev_3.2-1_mipsel_mips32.ipk. Ved Ä bruke wget/scp laster vi den inn i ruterens minne og installerer den pÄ nytt.

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

Vi sjekker:

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)

Kinesisk mann koblet til USB-hub fikk blurred 1-1.4Husket.

NĂ„ starter vi daemonen:

root@OpenWrt:~# usbipd -D

og binde kineserne

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

La oss sjekke at alt fungerer:

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

For Ă„ binde enheten ytterligere automatisk, la oss redigere /etc/rc.local, legger til fĂžr avkjĂžrsel 0 fĂžlgende:

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

Klient side

La oss prÞve Ä koble enheten til Windows 10, ved Ä bruke de nevnte instruksjonene fra openwrt.org. Jeg sier det med en gang: dette er dÞmt til Ä mislykkes. For det fÞrste, bare Windows 7 x64. For det andre gis det en lenke til en trÄd pÄ sourceforge.net, som foreslÄr Ä laste ned en driver som ble oppdatert i 2014 fra Dropbox. NÄr du prÞver Ä kjÞre den under Windows 10 og nÄr vi kobler til enheten vÄr fÄr vi en feilmelding:

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

*** ERROR: cannot find device

Dette skyldes at klienten ikke fungerer med en server som er kompilert for en kjerne eldre enn versjon 3.14.
USBIP-serveren under OpenWRT 19.07.3 er bygget pÄ kjernen 4.14.180.

Ved Ä fortsette sÞket mitt, snublet jeg over den nÄvÊrende utviklingen av en Windows-klient pÄ GitHubOk, stÞtten er annonsert. Windows 10 x64, men klienten er utelukkende for testing, sÄ det er en rekke begrensninger.

SĂ„ fĂžrst blir du bedt om Ă„ installere sertifikatet, to ganger. Ok, vi har lagt det i Trusted Root Certification Authority og Trusted Publishers.

Deretter mÄ du sette operativsystemet i testmodus. Dette gjÞres med kommandoen

bcdedit.exe /set TESTSIGNING ON

Jeg lyktes ikke fĂžrste gang, det kom i veien sikre bootFor Ă„ deaktivere den, mĂ„ du starte UEFI pĂ„ nytt og sette sikker oppstart – deaktiver. PĂ„ noen bĂŠrbare modeller mĂ„ du kanskje angi et passord for administrator.

Etter det starter vi inn Windows og det gjþr vi bcdedit.exe /set TESTSIGNING PÅ
Windows sier at alt er i orden. Vi starter opp igjen og ser i nedre hĂžyre hjĂžrne inskripsjonen Testmodus, versjon og buildnummer til operativsystemet.

Hva er alle disse manipulasjonene til for? For Ă„ installere en usignert driver USB/IP VHCIDet anbefales Ă„ gjĂžre dette ved Ă„ laste ned filene usbip.exe, usbip_vhci.sys, usbip_vhci.inf, usbip_vhci.cer, usbip_vhci.cat, og kjĂžre dem med administratorrettigheter.

usbip.exe install

eller den andre mÄten, Ä installere eldre maskinvare manuelt. Jeg valgte det andre alternativet, fikk en advarsel om Ä installere en usignert driver og samtykket til det.

Deretter sjekker vi at vi har muligheten til Ă„ koble til en ekstern USB-enhet ved Ă„ kjĂžre kommandoen:

usbip.exe list -r <ip ĐČĐ°ŃˆĐ”ĐłĐŸ Ń€ĐŸŃƒŃ‚Đ”Ń€Đ°>

Vi fÄr en liste over enheter:

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)

for en feil usbip: feil: klarte ikke Ä Äpne usb-id-databasen Vi fÞlger ikke med, det pÄvirker ikke arbeidet.

NĂ„ binder vi enheten:

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

Det er det, Windows har oppdaget en ny enhet, nÄ kan du jobbe med den som om den var fysisk koblet til den bÊrbare datamaskinen.

Jeg mĂ„tte slite litt med den kinesiske gravĂžren, siden USB/IP VHCI sendte Windows inn i en BSOD da jeg prĂžvde Ă„ installere CH341SER-driveren via installasjonsprogrammet som fulgte med gravĂžren (ja, gravĂžren er pĂ„ Arduino). Installasjonen av CH341SER-driveren til Å koble til enheten via usbip.exe lĂžste problemet.

Resultat: gravÞren lager lyd og rÞyk pÄ kjÞkkenet med vinduet Äpent og dÞren lukket, jeg ser pÄ brenneprosessen fra et annet rom gjennom den innebygde programvaren, som ikke registrerer en hake.

Brukte kilder:

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

Kilde: www.habr.com

KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KjĂžp pĂ„litelig webhotell med DDoS-beskyttelse, VPS VDS-servere | ProHoster