USB over IP in casa

Calchì volta vulete travaglià cù un dispositivu cunnessu via USB senza mantene nantu à a tavula vicinu à u vostru laptop. U mo dispusitivu hè un incisore cinese cù un laser di 500 mW, chì hè abbastanza sgradevule quandu in cuntattu strettu. In più di u periculu immediatu per l'ochji, i prudutti di combustione tossica sò liberati durante l'operazione laser, cusì u dispusitivu deve esse situatu in una zona ben ventilata, è preferibile isolata da e persone. Cumu pudete cuntrullà un tali dispusitivu? Aghju trovu accidentalmente a risposta à sta quistione mentre navigava in u repository OpenWRT in a speranza di truvà un usu degnu per u vechju router D-Link DIR-320 A2. Per cunnette, aghju decisu d'utilizà quellu descrittu annantu à Habré prima. Tunnel USB over IP, in ogni modu, tutte l'istruzzioni per a stallazione anu persu a so rilevanza, cusì scrivu u mo propiu.

OpenWRT hè un sistema operatore chì ùn hà micca bisognu di introduzione, per quessa, ùn descriveraghju micca a so installazione. Per u mo router, aghju pigliatu l'ultima versione stabile di OpenWrt 19.07.3, è hà cunnessu à u puntu d'accessu Wi-Fi principale cum'è cliente, selezziunate u modu. L lan, per ùn tormentà u firewall.

Parte di u servitore

Avemu agisce secondu istruzioni ufficiali. Dopu a cunnessione via ssh, installate i pacchetti necessarii.

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

In seguitu, cunnettemu u nostru dispositivu à u portu USB di u router (in u mo casu, i dispositi: un hub USB, una unità flash nantu à quale hè muntatu u sistema di fugliale di u router (per via di a mancanza di spaziu nantu à l'almacenamiento internu), è, direttamente, u incisore).

Pruvemu di vede una lista di i dispositi cunnessi:

root@OpenWrt:~# usbip list -l

Viotu.

Per Google, u culpitu hè statu trovu, hè diventatu una biblioteca libudev-fbsd.
Tiremu l'ultima versione di travagliu da u repositoriu a manu libudev_3.2-1 da a versione OpenWRT 17.01.7 per a vostra architettura, in u mo casu hè libudev_3.2-1_mipsel_mips32.ipk. Utilizendu wget/scp, scaricallu in a memoria di u router è reinstallà

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

Verificate:

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)

Un omu cinese cunnessu à un hub USB hà ricevutu un bsuid 1-1.4. Ricurdativi.

Avà cuminciamu u daemon:

root@OpenWrt:~# usbipd -D

è bindim i Cinesi

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

Cuntrollamu chì tuttu funziona:

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

Per più ligà u dispusitivu automaticamente, andemu à edità /etc/rc.localaghjustendu prima surtite 0 i seguenti:

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

Latu di u cliente

Pruvemu di cunnette u dispusitivu à Windows 10 usendu l'istruzzioni sopra da openwrt.org. Dicu subitu : l'idea hè cundannata à fallimentu. Prima, solu Windows 7 x64 hè cunsideratu. Siconda, un ligame hè datu à un filu in sourceforge.net, chì suggerisce di scaricà un driver patchatu in 2014 da Dropbox. Quandu pruvemu di eseguisce sottu Windows 10 è cunnette à u nostru dispositivu, avemu u seguente errore:

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

*** ERROR: cannot find device

Questu hè duvuta à u fattu chì u cliente ùn viaghja micca cù un servitore custruitu per un kernel più vechju di a versione 3.14.
U servitore usbip per OpenWRT 19.07.3 hè custruitu nantu à u kernel 4.14.180.

Cuntinuendu a mo ricerca, aghju trovu u sviluppu attuale di un cliente Windows per github. Ok, u supportu per Windows 10 x64 hè dichjaratu, ma u cliente hè solu un cliente di prova, cusì ci sò una quantità di limitazioni.

Allora, prima dumandanu à stallà u certificatu, è duie volte. Ok, mettemu in l'Autorità di Certificazione Root Trusted è Editori Fiduciosi.

Dopu, avete bisognu di mette u sistema upirativu in modu di prova. Questu hè fattu da una squadra

bcdedit.exe /set TESTSIGNING ON

Ùn aghju micca successu a prima volta, aghju in u modu boot sicuru. Per disattivà, avete bisognu di reboot in UEFI è stabilisce un boot sicuru per disattivà. Certi mudelli di laptop ponu esse bisognu di stabilisce una password di supervisore.

Dopu quì, avviate in Windows è fate bcdedit.exe /set TESTSIGNING ON
Vinda dice chì tuttu hè bè. Riavviamu di novu, è vedemu in u cantonu in basso à destra e parolle Test Mode, versione è numeru di custruzzione di OS.

Chì sò tutte queste manipulazioni? Per installà un driver senza firmatu USB/IP VHCI. Hè cunsigliatu di fà questu scarichendu i fugliali usbip.exe, usbip_vhci.sys, usbip_vhci.inf, usbip_vhci.cer, usbip_vhci.cat, è eseguisce cù diritti di amministratore.

usbip.exe install

o u sicondu mètudu, installendu Legacy Hardware manualmente. Aghju sceltu a seconda opzione, aghju ricevutu un avvisu per installà un driver senza firmatu è accunsentutu cun ellu.

In seguitu, verificamu chì avemu a capacità di cunnette à un dispositivu USB remota eseguendu u cumandamentu:

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

avemu una lista di i dispusitivi:

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)

per un sbagliu usbip: errore: ùn hà micca riesciutu à apre a basa di dati usb id Ùn avemu micca attentu, ùn affetta micca u travagliu.

Avà ligà u dispusitivu:

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

Hè cusì, Windows hà rilevatu un novu dispositivu, avà pudete travaglià cun ellu cum'è s'ellu era fisicamente cunnessu à u laptop.

Aviu avutu a soffrenu un pocu cù l'incisore cinese, perchè quandu aghju pruvatu à stallà u so driver CH341SER per mezu di l'installatore chì vene cù l'incisore (sì, un incisore Arduino), USB / IP VHCI abbandunò Windows in BSOD. Tuttavia, installendu u driver CH341SER à cunnette u dispusitivu via usbip.exe risolviu u prublema.

Bottom line: l'incisore face u rumore è fuma in a cucina cù a finestra aperta è a porta chjusa, fighjulà u prucessu di brusgia da un'altra stanza per mezu di u mo propiu software, chì ùn sente micca una cattura.

Fonti aduprate:

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

Source: www.habr.com

Add a comment