USB yfir IP heima

Stundum vilt þú vinna með tæki tengt með USB án þess að hafa það á borðinu við hlið fartölvunnar. Tækið mitt er kínverskt leturgröftur með 500 mW laser, sem er frekar óþægilegt í náinni snertingu. Auk bráðrar hættu fyrir augun losna eitruð brunaefni við leysigeislanotkun, þannig að tækið ætti að vera staðsett á vel loftræstu svæði og helst einangrað frá fólki. Hvernig geturðu stjórnað slíku tæki? Ég fann óvart svarið við þessari spurningu þegar ég var að vafra um OpenWRT geymsluna í von um að finna verðuga notkun fyrir gamla D-Link DIR-320 A2 beininn. Til að tengjast ákvað ég að nota þann sem lýst var á Habré áðan. USB yfir IP göngHins vegar hafa allar leiðbeiningar um uppsetningu þess misst mikilvægi sitt, svo ég skrifa mínar eigin.

OpenWRT er stýrikerfi sem þarf enga kynningu, svo ég mun ekki lýsa uppsetningu þess. Fyrir beininn minn tók ég nýjustu stöðugu útgáfuna af OpenWrt 19.07.3 og tengdi hana við aðal Wi-Fi aðgangsstaðinn sem viðskiptavin og valdi stillinguna lan, til að kvelja ekki eldvegginn.

Server hluti

Við störfum skv opinber fyrirmæli. Eftir að hafa tengst í gegnum ssh skaltu setja upp nauðsynlega pakka.

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

Næst tengjum við tækið okkar við USB tengi beinisins (í mínu tilfelli, tæki: USB miðstöð, glampi drif sem skráarkerfi beinsins er fest á (vegna plássleysis á innri geymslunni), og beint leturgröftur).

Við skulum reyna að birta lista yfir tengd tæki:

root@OpenWrt:~# usbip list -l

Tómt.

Með því að googla að sökudólgurinn fannst kom í ljós að þetta var bókasafn libudev-fbsd.
Við tökum út nýjustu vinnuútgáfuna úr geymslunni með höndunum libudev_3.2-1 frá OpenWRT 17.01.7 útgáfunni fyrir arkitektúrinn þinn, í mínu tilfelli er það libudev_3.2-1_mipsel_mips32.ipk. Notaðu wget/scp, halaðu því niður í minni beinisins og settu það upp aftur

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

Við athugum:

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)

Kínverskur karlmaður sem tengdur var USB miðstöð fékk bsuid 1-1.4. Mundu.

Nú skulum við byrja púkann:

root@OpenWrt:~# usbipd -D

og bindim Kínverja

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

Við skulum athuga hvort allt virki:

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

Til að binda tækið sjálfkrafa frekar skulum við breyta /etc/rc.localmeð því að bæta við áður útgönguleið 0 eftirfarandi:

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

Viðskiptavinahlið

Við skulum reyna að tengja tækið við Windows 10 með því að nota ofangreindar leiðbeiningar frá openwrt.org. Ég segi strax: hugmyndin er dæmd til að mistakast. Í fyrsta lagi kemur aðeins til greina Windows 7 x64. Í öðru lagi er hlekkur gefinn á þráð á sourceforge.net, sem bendir til þess að hlaða niður bílstjóra sem lagfærður var árið 2014 frá Dropbox. Þegar við reynum að keyra það undir Windows 10 og tengjumst tækinu okkar fáum við eftirfarandi villu:

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

*** ERROR: cannot find device

Þetta er vegna þess að biðlarinn vinnur ekki með netþjóni sem er smíðaður fyrir kjarna sem er eldri en útgáfa 3.14.
Usbip miðlarinn fyrir OpenWRT 19.07.3 er byggður á kjarna 4.14.180.

Áframhaldandi leit minni rekst ég á núverandi þróun á Windows biðlara fyrir GitHub. Allt í lagi, stuðningur við Windows 10 x64 er tilgreindur, en biðlarinn er aðeins prófunarviðskiptavinur, svo það eru ýmsar takmarkanir.

Svo fyrst biðja þeir um að setja upp vottorðið og tvisvar. Allt í lagi, við skulum setja það í Trusted Root Certification Authority og Trusted Publishers.

Næst þarftu að setja stýrikerfið í prófunarham. Þetta er gert af teymi

bcdedit.exe /set TESTSIGNING ON

Mér tókst það ekki í fyrsta skiptið, ég varð í veginum örugg stígvél. Til að slökkva á því þarftu að endurræsa í UEFI og stilla örugga ræsingu á óvirkt. Sumar fartölvugerðir gætu þurft að setja umsjónarlykilorð.

Eftir það skaltu ræsa í Windows og gera bcdedit.exe /setja PRÓFUNDIRSKRIFT
Vinda segir að allt sé í lagi. Við endurræsum aftur og við sjáum í neðra hægra horninu orðin Test Mode, útgáfa og OS byggingarnúmer.

Til hvers eru öll þessi töfrabrögð? Til að setja upp óundirritaðan bílstjóri USB/IP VHCI. Mælt er með því að gera þetta með því að hlaða niður skránum usbip.exe, usbip_vhci.sys, usbip_vhci.inf, usbip_vhci.cer, usbip_vhci.cat og keyra með stjórnandaréttindi

usbip.exe install

eða seinni aðferðin, uppsetning Legacy Hardware handvirkt. Ég valdi seinni kostinn, fékk viðvörun um að setja upp óundirritaðan bílstjóra og samþykkti það.

Næst athugum við hvort við höfum getu til að tengjast ytra USB tæki með því að keyra skipunina:

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

við fáum lista yfir tæki:

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)

fyrir mistök usbip: villa: tókst ekki að opna usb auðkennisgagnagrunn Við tökum ekki eftir því, það hefur ekki áhrif á vinnuna.

Nú bindum við tækið:

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

Það er það, Windows hefur fundið nýtt tæki, nú er hægt að vinna með það eins og það væri líkamlega tengt við fartölvuna.

Ég þurfti að þjást aðeins af kínverska leturgröftunni, því þegar ég reyndi að setja upp CH341SER driverinn hans í gegnum uppsetningarforritið sem fylgdi með leturgröftunni (já, Arduino leturgröftur), þá sleppti USB/IP VHCI Windows í BSOD. Hins vegar að setja upp CH341SER bílstjórann í að tengja tækið í gegnum usbip.exe leysti vandamálið.

Niðurstaða: leturgröfturinn gerir hávaða og reykir í eldhúsinu með gluggann opinn og hurðina lokaða, ég horfi á brennsluferlið úr öðru herbergi í gegnum eigin hugbúnað sem skynjar ekki grípur.

Notaðar heimildir:

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

Heimild: www.habr.com

Bæta við athugasemd