Ndonjëherë ndjehet dëshira për të punuar me një pajisje të lidhur përmes USB, pa e mbajtur atë në tryezë pranë laptopit. Një pajisje e tillë për mua është një gravuer kinez me lazer 500 mW, një gjë mjaft e pakëndshme në kontakt të afërt. Përveç rrezikut të drejtpërdrejtë për sytë, gjatë punës me lazer, lëshohen produkte toksike të djegies, prandaj pajisja duhet të jetë në një ambient të ajrosur mirë, dhe është e dëshirueshme të jetë e izoluar nga njerëzit. Por si të menaxhohet një pajisje e tillë? Pjesa e përgjigjes për këtë pyetje e gjetëm rastësisht, duke shqyrtuar repositorin OpenWRT në shpresën për të gjetur një përdorim të denjë për një router të vjetër D-Link DIR-320 A2. Vendosa të përdor lidhjen e përshkruar më parë në Habr. Tuneli USB mbi IP, por të gjitha udhëzimet për instalimin e tij kanë humbur aktualitetin, prandaj po shkruaj të mirat e mia.
OpenWRT është një sistem operativ që nuk ka nevojë për prezantim, prandaj nuk do të përshkruaj instalimin e tij. Për routerin tim, mora versionin më të fundit stabil të OpenWrt 19.07.3, dhe e lidha atë me pikën kryesore të qasjes përmes Wi-Fi si klient, duke zgjedhur modin lan, në mënyrë që të mos vuaj nga firewalli.
Pjesa server
Veprojmë sipas . Pas lidhjes përmes ssh, instalojmë paketat e nevojshme.
root@OpenWrt:~# opkg update
root@OpenWrt:~# opkg install kmod-usb-ohci usbip-server usbip-clientMë pas lidhemi me portin USB të routerit tonë pajisjen tonë (në rastin tim pajisjet: një hub USB, një flash drive, në të cilin është montuar sistemi i skedarëve të routerit (për shkak të mungesës së hapësirës në memorien e brendshme), dhe, drejtpërdrejt, gravueri).
Provojemi të nxjerrim listën e pajisjeve të lidhura:
root@OpenWrt:~# usbip list -lEmty.
Duke kërkuar në Google, u zbulua fajtorja, e cila ishte biblioteka libudev-fbsd.
E nxjerrim me dorë versionin e fundit punues nga repositorin libudev_3.2-1 nga lëshimi i OpenWRT 17.01.7 për arkitekturën time, në rastin tim kjo është libudev_3.2-1_mipsel_mips32.ipk. Me ndihmën e wget/scp, e ngarkojmë atë në memorien e routerit dhe e ripërinstalojmë
root@OpenWrt:~# opkg remove --force-depends libudev-fbsd
root@OpenWrt:~# opkg install libudev_3.2-1_mipsel_mips32.ipk
Po kontrollojmë:
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)Kinez, i lidhur në hub USB, mori bsuid 1-1.4. E mbajmë mend.
Tani luajmë demonin:
root@OpenWrt:~# usbipd -Ddhe e lidhim kinezë
root@OpenWrt:~# usbip bind -b 1-1.4
usbip: info: bind device on busid 1-1.4: completeKontrollojmë nëse gjithçka punon:
root@OpenWrt:/home# netstat -alpt
Koneksionet aktive të Internetit (server dhe të vendosur)
Proto Recv-Q Send-Q Adresa Lokale Adresa e Huaj Shteti PID/Emri i Programit
tcp 0 0 0.0.0.0:3240 0.0.0.0:* LISTEN 1884/usbipdPër të lidhur automatikisht pajisjen më pas, do të bëjmë disa ndryshime /etc/rc.local, duke shtuar përpara exit 0 si më poshtë:
usbipd -D &
sleep 1
usbip bind -b 1-1.4Pjesa e klientit
Do të provojmë të lidhim pajisjen në Windows 10 duke përdorur udhëzimin e përmendur më parë nga openwrt.org. Të them të drejtat: ky përpjekje është e destinuar për dështim. Së pari, shqyrtohet vetëm Windows 7 x64. Së dyti, jepet një lidhje në një diskut në sourceforge.net, ku sugjerohet të shkarkoni një driver të patchuar në 2014. Kur përpiqemi ta thërrasim atë në Windows 10 dhe të lidhim pajisjen tonë, marrim një gabim:
c:Utilsusbip>usbip -a 192.168.31.203 1-1.4
usbip për windows ($Id$)
*** GABIM: nuk mund të gjendet pajisja Kjo është e lidhur me faktin se klienti nuk punon me serverin e ndërtuar nën kernelerin më të vjetër se versioni 3.14.
Serveri usbip nën OpenWRT 19.07.3 është ndërtuar mbi kernelin 4.14.180.
Duke vazhduar kërkimin, ndeshem me zhvillimin aktual të klientit për Windows në . Ok, deklarohet mbështetje për Windows 10 x64, por klienti është ekskluzivisht testues, prandaj ka disa kufizime.
Pra, së pari kërkohen që të instaloni një certifikatë, madje dy herë. Ok, e vendosim në Autoritetin e Certifikimit Root të Besuar dhe Publikuesit e Besuar.
Pastaj, është e nevojshme të çoni sistemin operativ në modin e testimit. Kjo bëhet me komandën
bcdedit.exe /set TESTSIGNING ONNga hera e parë nuk munda, ndihmoi secure boot. Për ta çaktivizuar atë, nevojitet të rilidhet në UEFI dhe të vendoset secure boot - shkyç. Në disa modele laptopësh mund të kërkohet vendosja e fjalëkalimit të administratorit.
Pas kësaj, ngarkojmë Windows dhe bëjmë bcdedit.exe /set TESTSIGNING ON
Windows thotë se është gjithçka në rregull. Sa herë tjetër rilidhemi dhe shohim në këndin e poshtëm të djathtë shkrimin Test Mode, versionin dhe numrin e ndërtimit të sistemit operativ.
Për çfarë janë këto manipulime? Për instalimin e një driveri të pa nënshkruar USB/IP VHCI. Kjo bëhet duke shkarkuar skedarët usbip.exe, usbip_vhci.sys, usbip_vhci.inf, usbip_vhci.cer, usbip_vhci.cat, dhe duke e ekzekutuar me të drejtat e administratorit
usbip.exe installose mënyra e dytë, instalimi i Harduerit Legacy manualisht. Unë zgjodha variantin e dytë, mora një paralajmërim për instalimin e një driveri të pa nënshkruar dhe u pajtova me të.
Më pas kontrollojmë nëse kemi mundësi të lidhim pajisjen USB të largët, duke ekzekutuar komandën:
usbip.exe list -rmarrim listën e pajisjeve:
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)nga gabim usbip: error: failed to open usb id database nuk i kushtojmë rëndësi, nuk ndikon në funksionim.
Tani po e lidhim pajisjen:
c:Utilsusbip>usbip.exe attach -r 192.168.31.203 -b 1-1.4Tani, Windows zbulon pajisjen e re, tani mund ta përdorim siç do ta kishim lidhur fizikisht në laptop.
Me gravuerin kinez duhej të kaloja pak vështirësi, pasi përpjekja për të instaluar shoferin CH341SER përmes instaluesit të bashkangjitur (po, gravueri bazohet në Arduino), USB/IP VHCI e çonte Windows në BSOD. Megjithatë, instalimi i shoferit CH341SER në do të zgjidhte problemin e lidhjes së pajisjes përmes usbip.exe.
Përfundimi: gravueri bën zhurmë dhe tymos në kuzhinë me dritaren e hapur dhe derën e mbyllur, unë po e observoj procesin e djegies nga dhoma tjetër përmes programit të brendshëm, i cili nuk ndjen ndonjë rrezik.
Burimet e përdorura:
Burimi: habr.com
