USB mbi IP në shtëpi

Ndonjëherë dëshironi të punoni me një pajisje të lidhur me USB pa e mbajtur në tavolinë pranë laptopit tuaj. Pajisja ime është një gdhendës kineze me një lazer 500 mW, e cila është mjaft e pakëndshme kur është në kontakt të ngushtë. Përveç rrezikut të menjëhershëm për sytë, produkte toksike të djegies lëshohen gjatë funksionimit me lazer, kështu që pajisja duhet të vendoset në një zonë të ajrosur mirë dhe mundësisht të izoluar nga njerëzit. Si mund ta kontrolloni një pajisje të tillë? Rastësisht e gjeta përgjigjen e kësaj pyetjeje gjatë shfletimit të depove të OpenWRT me shpresën për të gjetur një përdorim të denjë për ruterin e vjetër D-Link DIR-320 A2. Për t'u lidhur, vendosa të përdor atë të përshkruar në Habré më herët. tunel USB mbi IP, megjithatë, të gjitha udhëzimet për instalimin e tij kanë humbur rëndësinë e tyre, kështu që unë po shkruaj të miat.

OpenWRT është një sistem operativ që nuk ka nevojë për prezantim, kështu që nuk do ta përshkruaj instalimin e tij. Për ruterin tim, mora versionin më të fundit të qëndrueshëm të OpenWrt 19.07.3 dhe e lidha me pikën kryesore të hyrjes Wi-Fi si klient, duke zgjedhur modalitetin lan, në mënyrë që të mos mundoni murin e zjarrit.

Pjesa e serverit

Ne veprojmë sipas udhëzimet zyrtare. Pas lidhjes përmes ssh, instaloni paketat e nevojshme.

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

Më pas, ne e lidhim pajisjen tonë me portën USB të ruterit (në rastin tim, pajisjet: një shpërndarës USB, një flash drive në të cilin është montuar sistemi i skedarëve të ruterit (për shkak të mungesës së hapësirës në hapësirën e brendshme) dhe, drejtpërdrejt, gdhendës).

Le të përpiqemi të shfaqim një listë të pajisjeve të lidhura:

root@OpenWrt:~# usbip list -l

Bosh.

Duke kërkuar në google, u gjet fajtori, rezultoi se ishte një bibliotekë libudev-fbsd.
Ne nxjerrim versionin më të fundit të punës nga depoja me dorë libudev_3.2-1 nga versioni OpenWRT 17.01.7 për arkitekturën tuaj, në rastin tim është libudev_3.2-1_mipsel_mips32.ipk. Duke përdorur wget/scp, shkarkoni atë në memorien e ruterit dhe riinstaloni atë

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

kontrolloni:

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)

Një kinez i lidhur me një shpërndarës USB mori një bsuid 1-1.4. Mbani mend.

Tani le të fillojmë demonin:

root@OpenWrt:~# usbipd -D

dhe bindim kinezët

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

Le të kontrollojmë që gjithçka po funksionon:

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

Për të lidhur më tej pajisjen automatikisht, le ta modifikojmë /etc/rc.localduke shtuar më parë dalja 0 sa vijon:

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

Nga ana e klientit

Le të përpiqemi ta lidhim pajisjen me Windows 10 duke përdorur udhëzimet e mësipërme nga openwrt.org. Unë do të them menjëherë: ideja është e dënuar të dështojë. Së pari, merret parasysh vetëm Windows 7 x64. Së dyti, një lidhje i jepet një lidhjeje në sourceforge.net, e cila sugjeron shkarkimin e një drejtuesi të rregulluar në 2014 nga Dropbox. Kur përpiqemi ta ekzekutojmë nën Windows 10 dhe të lidhemi me pajisjen tonë, marrim gabimin e mëposhtëm:

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

*** ERROR: cannot find device

Kjo për faktin se klienti nuk punon me një server të ndërtuar për një kernel më të vjetër se versioni 3.14.
Serveri usbip për OpenWRT 19.07.3 është ndërtuar në kernel 4.14.180.

Duke vazhduar kërkimin tim, ndeshem me zhvillimin aktual të një klienti Windows për Github. Ok, mbështetja për Windows 10 x64 është deklaruar, por klienti është vetëm një klient testues, kështu që ka një sërë kufizimesh.

Pra, së pari ata kërkojnë të instalojnë certifikatën, dhe dy herë. Ok, le ta vendosim në Autoritetin e Certifikimit të Rrënjëve të Besuar dhe Botuesit e Besuar.

Tjetra, duhet ta vendosni sistemin operativ në modalitetin e testimit. Kjo bëhet nga një ekip

bcdedit.exe /set TESTSIGNING ON

Nuk pata sukses herën e parë, u pengova çizme e sigurt. Për ta çaktivizuar atë, duhet të rindizni në UEFI dhe të caktoni nisjen e sigurt të çaktivizohet. Disa modele laptopë mund të kërkojnë vendosjen e një fjalëkalimi mbikëqyrësi.

Pas kësaj, niseni në Windows dhe bëni bcdedit.exe /vendos TESTSIGNING ON
Vinda thotë se gjithçka është në rregull. Rinisim përsëri dhe shohim në këndin e poshtëm djathtas fjalët Test Mode, version dhe OS build number.

Për çfarë janë gjithë këto manipulime? Për të instaluar një drejtues të panënshkruar USB/IP VHCI. Sugjerohet ta bëni këtë duke shkarkuar skedarët usbip.exe, usbip_vhci.sys, usbip_vhci.inf, usbip_vhci.cer, usbip_vhci.cat dhe duke ekzekutuar me të drejtat e administratorit

usbip.exe install

ose metodën e dytë, instalimin manual të Legacy Hardware. Zgjodha opsionin e dytë, mora një paralajmërim për instalimin e një drejtuesi të panënshkruar dhe u pajtova me të.

Më pas, kontrollojmë nëse kemi aftësinë për t'u lidhur me një pajisje USB të largët duke ekzekutuar komandën:

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

marrim një listë të 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)

për një gabim usbip: gabim: dështoi në hapjen e bazës së të dhënave usb id Nuk i kushtojmë vëmendje, nuk ndikon në punë.

Tani e lidhim pajisjen:

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

Kjo është e gjitha, Windows ka zbuluar një pajisje të re, tani mund të punoni me të sikur të ishte i lidhur fizikisht me laptopin.

M'u desh të vuaj pak me gdhendjen kineze, sepse kur u përpoqa të instaloja drejtuesin e tij CH341SER përmes instaluesit që erdhi me gdhendjen (po, një gdhendës Arduino), USB/IP VHCI hodhi Windows në BSOD. Megjithatë, instalimi i drejtuesit CH341SER tek Lidhja e pajisjes përmes usbip.exe e zgjidhi problemin.

Përfundimi: gdhendësi bën zhurmë dhe pi duhan në kuzhinë me dritaren e hapur dhe derën e mbyllur, unë shikoj procesin e djegies nga një dhomë tjetër përmes softuerit tim, i cili nuk ndjen një kapje.

Burimet e përdorura:

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

Burimi: www.habr.com

Shto një koment