USB mbi IP në kushte shtëpiake

Ndonjëherë, ndihesh i ndihmuar të punosh 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ë gravurë kineze me lazer 500 mW, e cila është shumë e pakëndshme në kontakt të ngushtë. Përveç rrezikut të drejtpërdrejtë për sytë, gjatë punës me lazer lëshohen produkte toksike të djegies, prandaj pajisja duhet të gjendet në një ambient të ajrosur mirë dhe, sa më shumë të jetë e mundur, e izoluar nga njerëzit. Por si mund ta menaxhosh një pajisje të tillë? Përgjigjen e kësaj pyetjeje e kam gjetur rastësisht, duke shikuar në depo OpenWRT, me shpresën për të gjetur një përdorim të denjë për një router të vjetër D-Link DIR-320 A2. Për lidhje, vendosa të përdor tunnelin e dëshmuar në Habr. USB over IP tunnel, megjithatë, 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 ta përshkruaj instalimin e tij. Për routerin tim, mora versionin më të fundit të stabilizuar OpenWrt 19.07.3, dhe e lidhësova atë me pikën e aksesit kryesore përmes Wi-Fi si klient, duke zgjedhur modalitetin lan, për të mos e munduar firewall-in.

Pjesa server

Veprojmë sipas udhëzimit zyrtar. Pasi lidhemi përmes ssh, instalojmë paketat e nevojshme.

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

Më pas lidhim pajisjen tonë në portin USB të router-it (në rastin tim, pajisjet: një hub USB, një USB flash, në të cilin është montuar sistemi i skedarëve të router-it (për shkak të mungesës së hapësirës në memorien e brendshme), dhe, drejtpërdrejt, gravuesi).

Provojmë të nxjerrim listën e pajisjeve të lidhura:

root@OpenWrt:~# usbip list -l

E zbrazët.

Me anë të kërkimit në Google u zbulua fajtori, që ishte biblioteka libudev-fbsd.
E nxjerrim dorazi versionin e fundit të punës libudev_3.2-1 nga lëshimi OpenWRT 17.01.7 për arkitekturën tonë, në rastin tim është libudev_3.2-1_mipsel_mips32.ipk. Me wget/scp e ngarkojmë në memorien e router-it dhe e riporositëm

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 (dikur 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-in USB, mori bsuid 1-1.4. E kemi mbajtur mend.

Tani fillojmë demonin:

root@OpenWrt:~# usbipd -D

dhe e lidhim kinezën

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

Pohoqim se shohim që gjithçka funksionon:

root@OpenWrt:/home# netstat -alpt
Koneksionet aktive të Internetit (serverat 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:*               DËGJO      1884/usbipd

Për të binduar pajisjen automatikisht më tej, do të redaktojmë /etc/rc.local, duke shtuar përpara exit 0 këtë:

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

Pjesa klient

Do të provojmë të lidhemi me pajisjen në Windows 10, duke përdorur udhëzimin e përmendur më sipër nga openwrt.org. Të them të drejtën: plani është i destinuar për dështim. Së pari, shqyrtohet vetëm Windows 7 x64. Së dyti, jepet një lidhje në një thread në sourceforge.net, ku propozohet të shkarkohet një driver i patchuar në 2014. Kur përpiqemi ta nisim atë në Windows 10 dhe të lidhemi me 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ë gjej pajisjen

Kjo është e lidhur me faktin se klienti nuk punon me serverin që është ndërtuar me një bërthamë më të vjetër se versioni 3.14.
Serveri usbip nën OpenWRT 19.07.3 është ndërtuar në bërthamën 4.14.180.

Duke vazhduar kërkimin, ndeshem me një zhvillim aktual të klientit për Windows në github. Ok, mbështetje për Windows 10 x64 është e deklaruar, por klienti është ekskluzivisht testues, prandaj ka një sërë të kufizimeve.

Pra të fillojmë, na kërkohet të instalohet certifikata, madje dy herë. Mirë, e vendosim atë në Autoritetin e Certifikimit të Besuar dhe në Botuesit e Besuar.

Më pas, duhet të kalojmë sistemin operativ në modin testues. Kjo bëhet me komandën

bcdedit.exe /set TESTSIGNING ON

Me herën e parë nuk më rezultoi, u ndërhy secure boot. Për ta çaktivizuar atë, duhet të ribashkohemi në UEFI dhe ta vendosim secure boot në disabel. Në disa modele laptopësh mund të kërkohet vendosja e fjalëkalimit të supervisor.

Pas kësaj, ngarkohemi në Windows dhe bëjmë bcdedit.exe /set TESTSIGNING ON
Windows-i thotë se gjithçka është në rregull. Sërish ribashkohemi dhe shohim në këndin e djathtë poshtë shkrimin Test Mode, versionin dhe numrin e ndërtimit të OS-it.

Pse të bëjmë të gjitha këto manipulime? Për të instaluar një drejtues të padëshmuar USB/IP VHCI. Kjo ofrohet duke shkarkuar skedarët usbip.exe, usbip_vhci.sys, usbip_vhci.inf, usbip_vhci.cer, usbip_vhci.cat, dhe duke e realizuar me të drejtat e administratorit

usbip.exe install

apo një mënyrë tjetër, instalimi i Hardware Legacy në mënyrë manuale. Zgjodha opsionin e dytë, mora një paralajmërim për instalaciónin e drejtuesit të padëshmuar dhe e pranoja atë.

Më pas kontrollojmë nëse kemi mundësinë të lidhim me një dispozitiv USB të largët, duke ekzekutuar komandën:

usbip.exe list -r

po marrim një listë pajisjesh:

c:Utilsusbip>usbip.exe list -r 192.168.31.203
usbip: gabim: nuk ka mundur të hapet baza e të dhënave të identitetit usb
Pajisjet USB të eksportueshme
======================
 - 192.168.31.203
      1-1.4: prodhues i panjohur : produkt i panjohur (1a86:7523)
           : /sys/devices/ssb0:1/ehci-platform.0/usb1/1-1/1-1.4
           : klasë e panjohur / nënklasë e panjohur / protokoll i panjohur (ff/00/00)

për gabimin usbip: gabim: nuk ka mundur të hapet baza e të dhënave të identitetit usb nuk është e nevojshme të shqetësohemi, nuk ndikon në funksionim.

Tani po e lidhim pajisjen:

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

Çështja Ă«shtĂ« zgjidhur, Windows ka zbuluar njĂ« pajisje tĂ« re, tani mund tĂ« punojmĂ« me tĂ« siç do tĂ« ishte e lidhur fizikisht me laptopin.

Me gravuesin kinez u desh pak mund për shkak se kur u përpoqa të instaloj drejtuesin CH341SER përmes instaluesit të bashkangjitur (po, gravuesi është në Arduino), USB/IP VHCI çonte Windows në BSOD. Megjithatë, instalimi i drejtuesit CH341SER deri te nëpërmjet usbip.exe zgjidhte problemin.

Përmbledhje: gravuesi bëri zhurmë dhe tymosur në kuzhinë me dritare të hapur dhe derë të mbyllur, po e vëzhgoj procesin e djegies nga dhoma tjetër përmes softuerit të tij të natyrshëm, i cili nuk dyshon.

Burimet e përdorura:

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

Burimi: habr.com

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster