Joskus haluat työskennellä USB-liitännän kautta kytketyn laitteen kanssa pitämättä sitä pöydällä kannettavan tietokoneen vieressä. Laitteeni on kiinalainen kaivertaja 500 mW laserilla, joka on melko epämiellyttävää läheisessä kosketuksessa. Välittömän silmien vaaran lisäksi laserkäytössä vapautuu myrkyllisiä palamistuotteita, joten laite tulee sijoittaa hyvin ilmastoituun tilaan ja mieluiten eristettynä ihmisistä. Miten tuollaista laitetta voi ohjata? Löysin vastauksen tähän kysymykseen vahingossa OpenWRT-arkistoa selaillessani toivoen löytäväni vanhalle D-Link DIR-320 A2 -reitittimelle sopivaa käyttöä. Yhdistämiseen päätin käyttää aiemmin Habrén kuvattua. USB over IP tunneliKaikki asennusohjeet ovat kuitenkin menettäneet merkityksensä, joten kirjoitan omani.
OpenWRT on käyttöjärjestelmä, joka ei kaipaa esittelyä, joten en kuvaile sen asennusta. Otin reitittimeeni OpenWrt:n uusimman vakaan version 19.07.3 ja liitin sen Wi-Fi-päätukiasemaan asiakkaana ja valitsin tilan. lan, jotta palomuuri ei vaivaudu.
Palvelimen osa
Toimimme sen mukaan
root@OpenWrt:~# opkg update
root@OpenWrt:~# opkg install kmod-usb-ohci usbip-server usbip-client
Seuraavaksi yhdistämme laitteemme reitittimen USB-porttiin (minun tapauksessani laitteet: USB-keskitin, flash-asema, johon reitittimen tiedostojärjestelmä on asennettu (sisäisen muistin tilan puutteen vuoksi) ja suoraan kaivertaja).
Yritetään näyttää luettelo yhdistetyistä laitteista:
root@OpenWrt:~# usbip list -l
Tyhjä.
Googlaamalla syyllinen löytyi, se osoittautui kirjastoksi libudev-fbsd.
Poimimme uusimman toimivan version arkistosta käsin libudev_3.2-1 OpenWRT 17.01.7 -julkaisusta arkkitehtuurillesi, minun tapauksessani se on libudev_3.2-1_mipsel_mips32.ipk. Lataa se wget/scp:n avulla reitittimen muistiin ja asenna se uudelleen
root@OpenWrt:~# opkg remove --force-depends libudev-fbsd
root@OpenWrt:~# opkg install libudev_3.2-1_mipsel_mips32.ipk
tarkista:
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)
USB-keskittimeen kytketty kiinalainen mies sai virheilmoituksen 1-1.4. Muistaa.
Aloitetaan nyt demoni:
root@OpenWrt:~# usbipd -D
ja sitoa kiinalaisia
root@OpenWrt:~# usbip bind -b 1-1.4
usbip: info: bind device on busid 1-1.4: complete
Tarkistetaan, että kaikki toimii:
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
Muokkaa, jos haluat sitoa laitteen edelleen automaattisesti /etc/rc.locallisäämällä ennen poistu 0 seuraavat:
usbipd -D &
sleep 1
usbip bind -b 1-1.4
Asiakkaan puolella
Yritetään yhdistää laite Windows 10:een yllä olevien ohjeiden avulla osoitteessa openwrt.org. Sanon heti: idea on tuomittu epäonnistumaan. Ensinnäkin vain Windows 7 x64 otetaan huomioon. Toiseksi, linkki löytyy sourceforge.net-sivuston säiettä, joka ehdottaa vuonna 2014 korjatun ohjaimen lataamista Dropboxista. Kun yritämme suorittaa sen Windows 10:ssä ja muodostaa yhteyden laitteeseen, saamme seuraavan virheilmoituksen:
c:Utilsusbip>usbip -a 192.168.31.203 1-1.4
usbip for windows ($Id$)
*** ERROR: cannot find device
Tämä johtuu siitä, että asiakas ei toimi palvelimen kanssa, joka on rakennettu versiota 3.14 vanhemmalle ytimelle.
OpenWRT 19.07.3:n usbip-palvelin on rakennettu ytimelle 4.14.180.
Jatkaessani hakua törmäsin Windows-asiakkaan nykyiseen kehitykseen
Joten ensin he pyytävät asentamaan varmenteen ja kahdesti. Ok, laitetaan se Trusted Root Certification Authority- ja Trusted Publishers -palveluun.
Seuraavaksi sinun on asetettava käyttöjärjestelmä testitilaan. Tämän tekee tiimi
bcdedit.exe /set TESTSIGNING ON
En onnistunut ensimmäisellä kerralla, jäin tielle turvata boot. Jos haluat poistaa sen käytöstä, sinun on käynnistettävä uudelleen UEFI-verkkoon ja asetettava suojattu käynnistys pois päältä. Jotkin kannettavat tietokonemallit saattavat vaatia valvojan salasanan asettamisen.
Tämän jälkeen käynnistä Windows ja tee bcdedit.exe /set TESTSIGNING PÄÄLLE
Vinda sanoo, että kaikki on hyvin. Käynnistämme uudelleen ja näemme oikeassa alakulmassa sanat Test Mode, version ja OS build number.
Mitä varten nämä kaikki manipulaatiot ovat? Allekirjoittamattoman ohjaimen asentaminen USB/IP VHCI. On suositeltavaa tehdä tämä lataamalla tiedostot usbip.exe, usbip_vhci.sys, usbip_vhci.inf, usbip_vhci.cer, usbip_vhci.cat ja suorittamalla järjestelmänvalvojan oikeuksilla
usbip.exe install
tai toinen tapa, asentamalla Legacy Hardware manuaalisesti. Valitsin toisen vaihtoehdon, sain varoituksen allekirjoittamattoman ohjaimen asentamisesta ja suostuin siihen.
Seuraavaksi tarkistamme, että pystymme muodostamaan yhteyden USB-etälaitteeseen suorittamalla komennon:
usbip.exe list -r <ip вашего роутера>
saamme luettelon laitteista:
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)
virheen takia usbip: virhe: usb id -tietokannan avaaminen epäonnistui Emme kiinnitä huomiota, se ei vaikuta työhön.
Nyt sidomme laitteen:
c:Utilsusbip>usbip.exe attach -r 192.168.31.203 -b 1-1.4
Siinä kaikki, Windows on havainnut uuden laitteen, nyt voit työskennellä sen kanssa ikään kuin se olisi fyysisesti kytketty kannettavaan tietokoneeseen.
Kiinan kaivertajan kanssa jouduin vähän kärsimään, koska kun yritin asentaa sen CH341SER-ohjainta kaivertajan mukana tulleen asennusohjelman kautta (kyllä, Arduino-kaivertaja), USB/IP VHCI pudotti Windowsin BSOD:iin. CH341SER-ohjaimen asentaminen kuitenkin до laitteen yhdistäminen usbip.exe:n kautta ratkaisi ongelman.
Pohjimmiltaan: kaivertaja melua ja polttaa keittiössä ikkuna auki ja ovi kiinni, katson polttoprosessia toisesta huoneesta oman ohjelmistoni kautta, joka ei tunne kiinni.
Käytetyt lähteet:
Lähde: will.com