USB, izmantojot IP mājās

Dažreiz vēlaties strādāt ar ierÄ«ci, kas pievienota, izmantojot USB, neturot to uz galda blakus klēpjdatoram. Mans aparāts ir Ä·Ä«nieÅ”u gravieris ar 500 mW lāzeru, kas cieŔā kontaktā ir diezgan nepatÄ«kami. Papildus tieÅ”ajam acu apdraudējumam lāzera darbÄ«bas laikā izdalās toksiski sadegÅ”anas produkti, tāpēc ierÄ«ce jānovieto labi vēdināmā vietā un vēlams izolēta no cilvēkiem. Kā jÅ«s varat kontrolēt Ŕādu ierÄ«ci? Es nejauÅ”i atradu atbildi uz Å”o jautājumu, pārlÅ«kojot OpenWRT repozitoriju, cerot atrast cienÄ«gu pielietojumu vecajam marÅ”rutētājam D-Link DIR-320 A2. Lai izveidotu savienojumu, es nolēmu izmantot HabrĆ© iepriekÅ” aprakstÄ«to. USB, izmantojot IP tunelitomēr visas instalÄ“Å”anas instrukcijas ir zaudējuÅ”as savu nozÄ«mi, tāpēc es rakstu savu.

OpenWRT ir operētājsistēma, kas nav jāievada, tāpēc es neaprakstÄ«Å”u tās instalÄ“Å”anu. Savam marÅ”rutētājam es izmantoju jaunāko stabilo OpenWrt versiju 19.07.3 un pievienoju to galvenajam Wi-Fi piekļuves punktam kā klientu, atlasot režīmu. lan, lai nemocÄ«tu ugunsmÅ«ri.

Servera daļa

Mēs rÄ«kojamies saskaņā ar oficiālās instrukcijas. Pēc savienojuma izveides, izmantojot ssh, instalējiet nepiecieÅ”amās pakotnes.

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

Pēc tam mēs pievienojam savu ierÄ«ci marÅ”rutētāja USB portam (manā gadÄ«jumā ierÄ«ces: USB centrmezgls, zibatmiņas disks, kurā ir uzstādÄ«ta marÅ”rutētāja failu sistēma (jo iekŔējā atmiņā trÅ«kst vietas), un tieÅ”i gravieris).

Mēģināsim parādīt pievienoto ierīču sarakstu:

root@OpenWrt:~# usbip list -l

TukŔs.

Googlējot vaininieks tika atrasts, izrādījās, ka tā ir bibliotēka libudev-fbsd.
Mēs ar roku izvelkam no krātuves jaunāko darba versiju libudev_3.2-1 no OpenWRT 17.01.7 laidiena jÅ«su arhitektÅ«rai, manā gadÄ«jumā tas ir libudev_3.2-1_mipsel_mips32.ipk. Izmantojot wget/scp, lejupielādējiet to marÅ”rutētāja atmiņā un atkārtoti instalējiet

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

Pārbaude:

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āds Ä·Ä«nietis, kurÅ” bija savienots ar USB centrmezglu, saņēma bsuid 1-1.4. Atcerieties.

Tagad sāksim dēmonu:

root@OpenWrt:~# usbipd -D

un bindim ķīnieŔus

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

Pārbaudīsim, vai viss darbojas:

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

Lai turpmāk automātiski saistÄ«tu ierÄ«ci, rediģēsim /etc/rc.localpievienojot iepriekÅ” izeja 0 Ŕādi:

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

Klienta puse

Mēģināsim savienot ierÄ«ci ar Windows 10, izmantojot iepriekÅ” sniegtos norādÄ«jumus no openwrt.org. Es teikÅ”u uzreiz: ideja ir lemta neveiksmei. Pirmkārt, tiek ņemta vērā tikai Windows 7 x64. Otrkārt, tiek dota saite uz vÄ«tni vietnē sourceforge.net, kas iesaka lejupielādēt 2014. gadā labotu draiveri no Dropbox. Mēģinot to palaist operētājsistēmā Windows 10 un izveidot savienojumu ar mÅ«su ierÄ«ci, tiek parādÄ«ta Ŕāda kļūda:

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

*** ERROR: cannot find device

Tas ir saistīts ar faktu, ka klients nedarbojas ar serveri, kas izveidots kodolam, kas ir vecāks par versiju 3.14.
OpenWRT 19.07.3 usbip serveris ir veidots uz kodola 4.14.180.

Turpinot meklÄ“Å”anu, es saskaros ar paÅ”reizējo Windows klienta izstrādi GitHub. Labi, ir norādÄ«ts atbalsts operētājsistēmai Windows 10 x64, taču klients ir tikai testa klients, tāpēc ir vairāki ierobežojumi.

Tātad, vispirms viņi lūdz instalēt sertifikātu un divas reizes. Labi, ievietosim to Trusted Root Certification Authority un Trusted Publishers.

Tālāk jums jāievieto operētājsistēma testa režīmā. To dara komanda

bcdedit.exe /set TESTSIGNING ON

Man ar pirmo reizi neizdevās, es traucēju nodroÅ”ināt boot. Lai to atspējotu, jums ir jāpārstartē UEFI un jāiestata droÅ”a sāknÄ“Å”ana, lai to atspējotu. Dažiem klēpjdatoru modeļiem var bÅ«t jāiestata vadÄ«tāja parole.

Pēc tam sāknējiet sistēmu Windows un dariet bcdedit.exe /set TESTSIGNING ON
Vinda saka, ka viss ir kārtÄ«bā. Mēs atsāknējam vēlreiz, un apakŔējā labajā stÅ«rÄ« redzam vārdus Test Mode, version un OS build number.

Kam domātas visas Ŕīs manipulācijas? Lai instalētu neparakstÄ«tu draiveri USB/IP VHCI. Ieteicams to izdarÄ«t, lejupielādējot failus usbip.exe, usbip_vhci.sys, usbip_vhci.inf, usbip_vhci.cer, usbip_vhci.cat un palaižot ar administratora tiesÄ«bām.

usbip.exe install

vai otrā metode, manuāli instalējot mantoto aparatÅ«ru. Izvēlējos otro variantu, saņēmu brÄ«dinājumu par neparakstÄ«ta draivera uzstādÄ«Å”anu un tam piekritu.

Pēc tam mēs pārbaudām, vai mums ir iespēja izveidot savienojumu ar attālo USB ierīci, izpildot komandu:

usbip.exe list -r <ip Š²Š°ŃˆŠµŠ³Š¾ рŠ¾ŃƒŃ‚ŠµŃ€Š°>

mēs iegūstam ierīču sarakstu:

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)

par kļūdu usbip: kļūda: neizdevās atvērt usb id datu bāzi Mēs nepievērÅ”am uzmanÄ«bu, tas neietekmē darbu.

Tagad mēs saistām ierīci:

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

Tas arī viss, Windows ir atklājis jaunu ierīci, tagad ar to varat strādāt tā, it kā tā būtu fiziski savienota ar klēpjdatoru.

Nācās nedaudz paciesties ar Ä·Ä«nieÅ”u gravieri, jo mēģinot uzinstalēt tā CH341SER draiveri caur instalÄ“Å”anas programmu, kas bija komplektā ar gravieri (jā, Arduino gravieri), USB/IP VHCI nometa Windows BSOD. Tomēr instalējot CH341SER draiveri lÄ«dz savienojot ierÄ«ci, izmantojot usbip.exe, problēma tika atrisināta.

Secinājums: gravieris trokŔņo un smēķē virtuvē ar atvērtu logu un aizvērtām durvÄ«m, degÅ”anas procesu skatos no citas telpas caur savu programmatÅ«ru, kas nejÅ«t Ä·erÅ”anu.

Izmantotie avoti:

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

Avots: www.habr.com

Pievieno komentāru