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
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
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:
Source: www.habr.com