USB liwat IP ing ngarep

Kadhangkala sampeyan pengin nggarap piranti sing disambungake liwat USB tanpa disimpen ing meja ing jejere laptop. Pirantiku minangka pengukir Cina kanthi laser 500 mW, sing cukup ora nyenengake nalika kontak cedhak. Saliyane bebaya langsung kanggo mata, produk pembakaran beracun dibebasake sajrone operasi laser, saengga piranti kasebut kudu dilebokake ing wilayah sing duwe ventilasi sing apik, lan luwih diisolasi saka wong. Kepiye carane sampeyan bisa ngontrol piranti kasebut? Aku ora sengaja nemokake jawaban kanggo pitakonan iki nalika browsing gudang OpenWRT kanthi pangarep-arep nemokake panggunaan sing cocog kanggo router D-Link DIR-320 A2 lawas. Kanggo nyambung, aku mutusake nggunakake sing diterangake ing HabrΓ© sadurunge. USB liwat IP trowonganNanging, kabeh instruksi kanggo nginstal wis ilang relevansi, mula aku nulis dhewe.

OpenWRT minangka sistem operasi sing ora mbutuhake introduksi, mula aku ora bakal nerangake instalasie. Kanggo router, aku njupuk release stabil paling anyar saka OpenWrt 19.07.3, lan nyambung menyang titik akses Wi-Fi utama minangka klien, milih mode. lan, supaya ora nyiksa firewall.

Bagian server

We tumindak miturut instruksi resmi. Sawise nyambungake liwat ssh, instal paket sing dibutuhake.

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

Sabanjure, kita nyambungake piranti menyang port USB router (ing kasusku, piranti: hub USB, flash drive ing ngendi sistem file router dipasang (amarga kekurangan ruang ing panyimpenan internal), lan, langsung, tukang ngukir).

Ayo nyoba nampilake dhaptar piranti sing disambungake:

root@OpenWrt:~# usbip list -l

kosong.

Kanthi googling pelakune ditemokake, jebule ana perpustakaan libudev-fbsd.
Kita narik versi kerja paling anyar saka gudang kanthi tangan libudev_3.2-1 saka OpenWRT 17.01.7 release kanggo arsitektur Panjenengan, ing cilik iku libudev_3.2-1_mipsel_mips32.ipk. Nggunakake wget/scp, download menyang memori router lan instal maneh

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

Priksa:

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)

Wong Cina sing disambungake menyang hub USB nampa bsuid 1-1.4. Eling.

Saiki ayo miwiti daemon:

root@OpenWrt:~# usbipd -D

lan bindim wong Cina

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

Ayo priksa manawa kabeh bisa digunakake:

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

Kanggo luwih ngiket piranti kanthi otomatis, ayo ngowahi /etc/rc.localkanthi nambah sadurunge metu 0 ing ngisor iki:

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

sisih klien

Coba sambungake piranti menyang Windows 10 nggunakake pandhuan ing ndhuwur saka openwrt.org. Aku bakal langsung ngomong: ide kasebut bakal gagal. Kaping pisanan, mung Windows 7 x64 sing dianggep. Kapindho, link diwenehake menyang thread ing sourceforge.net, sing nyaranake ndownload driver sing ditambal ing 2014 saka Dropbox. Nalika kita nyoba mbukak ing Windows 10 lan nyambung menyang piranti kita, kita entuk kesalahan ing ngisor iki:

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

*** ERROR: cannot find device

Iki amarga kasunyatan manawa klien ora bisa digunakake karo server sing dibangun kanggo kernel sing luwih lawas tinimbang versi 3.14.
Server usbip kanggo OpenWRT 19.07.3 dibangun ing kernel 4.14.180.

Nerusake search sandi, Aku teka tengen pembangunan saiki saka klien Windows kanggo GitHub. Ok, dhukungan kanggo Windows 10 x64 nyatakake, nanging klien kasebut mung klien uji, mula ana sawetara watesan.

Dadi, pisanan dheweke njaluk nginstal sertifikat, lan kaping pindho. Oke, ayo dilebokake ing Otoritas Sertifikasi Root Terpercaya lan Penerbit Terpercaya.

Sabanjure, sampeyan kudu sijine sistem operasi menyang mode test. Iki ditindakake dening tim

bcdedit.exe /set TESTSIGNING ON

Aku ora kasil pisanan, aku njaluk ing dalan boot aman. Kanggo mateni, sampeyan kudu urip maneh menyang UEFI lan nyetel boot aman kanggo mateni. Sawetara model laptop mbutuhake nyetel sandhi supervisor.

SawisΓ© iku, boot menyang Windows lan nindakake bcdedit.exe /set TESTSIGNING ON
Vinda ngomong kabeh ok. Kita urip maneh, lan kita ndeleng ing sudhut tengen ngisor tembung Test Mode, versi lan OS mbangun nomer.

Kanggo apa kabeh manipulasi iki? Kanggo nginstal driver unsigned USB/IP VHCI. Disaranake kanggo nindakake iki kanthi ndownload file usbip.exe, usbip_vhci.sys, usbip_vhci.inf, usbip_vhci.cer, usbip_vhci.cat, lan mlaku nganggo hak administrator.

usbip.exe install

utawa cara liya, nginstal Warisan Hardware kanthi manual. Aku milih pilihan kapindho, nampa bebaya babagan nginstal driver unsigned lan sarujuk karo.

Sabanjure, priksa manawa kita duwe kemampuan kanggo nyambung menyang piranti USB remot kanthi nggunakake printah:

usbip.exe list -r <ip вашСго Ρ€ΠΎΡƒΡ‚Π΅Ρ€Π°>

kita entuk dhaptar piranti:

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)

kanggo kesalahan usbip: kesalahan: gagal mbukak database id usb Kita ora mbayar manungsa waΓ©, ora mengaruhi karya.

Saiki kita ngiket piranti:

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

Mekaten, Windows wis ndeteksi piranti anyar, saiki sampeyan bisa nggarap kaya-kaya disambungake kanthi fisik menyang laptop.

Aku kudu nandhang sangsara sethitik karo engraver Chinese, amarga nalika aku nyoba kanggo nginstal driver CH341SER liwat installer sing teka karo engraver (ya, engraver Arduino), USB / IP VHCI dropped Windows menyang BSOD. Nanging, nginstal driver CH341SER kanggo nyambungake piranti liwat usbip.exe ditanggulangi masalah.

Ing ngisor baris: engraver nggawe gangguan lan smokes ing pawon karo jendhela mbukak lan lawang ditutup, Aku nonton proses kobong saka kamar liyane liwat piranti lunak dhewe, kang ora pangertèn nyekel.

Sumber sing digunakake:

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

Source: www.habr.com

Add a comment