USB sa IP sa balay

Usahay gusto nimo nga magtrabaho sa usa ka aparato nga konektado pinaagi sa USB nga wala kini ibutang sa lamesa tapad sa imong laptop. Ang akong device usa ka Chinese engraver nga adunay 500 mW laser, nga medyo dili maayo kung suod nga kontak. Dugang pa sa diha-diha nga kapeligrohan sa mga mata, ang makahilo nga mga produkto sa pagkasunog gipagawas sa panahon sa operasyon sa laser, mao nga ang aparato kinahanglan nga nahimutang sa usa ka maayo nga bentilasyon nga lugar, ug labing maayo nga nahimulag sa mga tawo. Sa unsang paagi nimo makontrol ang maong himan? Ako aksidenteng nakit-an ang tubag niini nga pangutana samtang nag-browse sa OpenWRT repository sa paglaum sa pagpangita sa usa ka takus nga paggamit alang sa daan nga D-Link DIR-320 A2 router. Aron makonektar, nakahukom ko nga gamiton ang gihulagway sa HabrΓ© sa sayo pa. USB sa IP tunnel, bisan pa, ang tanan nga mga panudlo alang sa pag-instalar niini nawad-an sa ilang kalabutan, mao nga ako nagsulat sa akong kaugalingon.

Ang OpenWRT usa ka operating system nga wala magkinahanglan og pasiuna, mao nga dili nako ihulagway ang pag-instalar niini. Alang sa akong router, gikuha nako ang pinakabag-o nga stable nga pagpagawas sa OpenWrt 19.07.3, ug gikonektar kini sa main Wi-Fi access point isip kliyente, pagpili sa mode lan, aron dili masakitan ang firewall.

Server nga bahin

Kita molihok sumala sa opisyal nga mga instruksyon. Human makonektar pinaagi sa ssh, i-install ang gikinahanglan nga mga pakete.

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

Sunod, among gikonektar ang among device sa USB port sa router (sa akong kaso, mga device: USB hub, flash drive diin ang file system sa router gi-mount (tungod sa kakulang sa luna sa internal storage), ug, direkta, ang tigkulit).

Atong sulayan ang pagpakita sa usa ka lista sa konektado nga mga aparato:

root@OpenWrt:~# usbip list -l

Walay sulod.

Pinaagi sa pag-googling nakit-an ang sad-an, nahimo kini nga librarya libudev-fbsd.
Gikuha namo ang pinakabag-o nga bersyon sa pagtrabaho gikan sa repository pinaagi sa kamot libudev_3.2-1 gikan sa OpenWRT 17.01.7 release alang sa imong arkitektura, sa akong kaso kini mao ang libudev_3.2-1_mipsel_mips32.ipk. Gamit ang wget/scp, i-download kini sa memorya sa router ug i-install kini pag-usab

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

Pagsusi:

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)

Usa ka Chinese nga lalaki nga konektado sa USB hub nakadawat og bsuid 1-1.4. Hinumdomi.

Karon atong sugdan ang daemon:

root@OpenWrt:~# usbipd -D

ug bindim ang mga Insek

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

Atong susihon nga ang tanan nagtrabaho:

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

Aron sa dugang nga pagbugkos sa device awtomatikong, usba nato /etc/rc.localpinaagi sa pagdugang kaniadto paggawas 0 nagsunod:

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

Kliyente nga bahin

Atong sulayan nga ikonektar ang aparato sa Windows 10 gamit ang mga panudlo sa ibabaw gikan sa openwrt.org. Isulti ko dayon: ang ideya gitakda sa kapakyasan. Una, Windows 7 x64 lamang ang gikonsiderar. Ikaduha, ang usa ka link gihatag sa usa ka thread sa sourceforge.net, nga nagsugyot sa pag-download sa usa ka drayber nga gi-patch sa 2014 gikan sa Dropbox. Kung gisulayan namon nga ipadagan kini sa ilawom sa Windows 10 ug magkonektar sa among aparato, makuha namon ang mosunod nga sayup:

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

*** ERROR: cannot find device

Kini tungod sa kamatuoran nga ang kliyente wala magtrabaho sa usa ka server nga gitukod alang sa usa ka kernel nga mas tigulang kay sa bersyon 3.14.
Ang usbip server alang sa OpenWRT 19.07.3 gitukod sa kernel 4.14.180.

Nagpadayon sa akong pagpangita, nakit-an nako ang karon nga pag-uswag sa usa ka kliyente sa Windows alang sa github. Ok, suporta alang sa Windows 10 Gipahayag ang x64, apan ang kliyente usa lamang ka pagsulay nga kliyente, mao nga adunay daghang mga limitasyon.

Mao nga, una nga gihangyo nila nga i-install ang sertipiko, ug kaduha. Ok, ibutang nato kini sa Trusted Root Certification Authority ug Trusted Publishers.

Sunod, kinahanglan nimo nga ibutang ang operating system sa test mode. Gihimo kini sa usa ka team

bcdedit.exe /set TESTSIGNING ON

Wala ko molampos sa unang higayon, nakababag ko luwas boot. Aron ma-disable kini, kinahanglan nimo nga i-reboot ang UEFI ug itakda ang luwas nga boot aron ma-disable. Ang ubang mga modelo sa laptop mahimong magkinahanglan og pagbutang og superbisor password.

Pagkahuman niana, pag-boot sa Windows ug buhata bcdedit.exe /set TESTSIGNING ON
Miingon si Winda nga ok ra ang tanan. Nag-reboot kami pag-usab, ug nakita namon sa ubos nga tuo nga suok ang mga pulong nga Test Mode, bersyon ug numero sa pagtukod sa OS.

Para sa unsa kining tanan nga mga manipulasyon? Aron ma-install ang usa ka wala pirma nga drayber USB/IP VHCI. Gisugyot nga buhaton kini pinaagi sa pag-download sa mga file usbip.exe, usbip_vhci.sys, usbip_vhci.inf, usbip_vhci.cer, usbip_vhci.cat, ug pagdagan gamit ang mga katungod sa tagdumala.

usbip.exe install

o ang ikaduhang pamaagi, ang pag-install sa Legacy Hardware nga mano-mano. Gipili nako ang ikaduha nga kapilian, nakadawat usa ka pasidaan bahin sa pag-install sa usa ka wala pirma nga drayber ug miuyon niini.

Sunod, among gisusi nga kami adunay abilidad sa pagkonektar sa usa ka hilit nga USB device pinaagi sa pagpadagan sa sugo:

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

nakakuha kami usa ka lista sa mga aparato:

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)

alang sa usa ka sayop usbip: sayop: napakyas sa pag-abli sa usb id database Wala kami magtagad, dili kini makaapekto sa trabaho.

Karon gihigot namon ang aparato:

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

Mao kana, ang Windows nakamatikod sa usa ka bag-ong device, karon mahimo nimo kini nga pagtrabaho ingon nga kini pisikal nga konektado sa laptop.

Kinahanglan kong mag-antus og gamay sa Chinese engraver, tungod kay sa dihang gisulayan nako ang pag-instalar sa CH341SER nga drayber pinaagi sa installer nga kauban sa engraver (oo, usa ka Arduino engraver), ang USB/IP VHCI naghulog sa Windows ngadto sa BSOD. Bisan pa, ang pag-install sa drayber sa CH341SER sa Ang pagkonektar sa device pinaagi sa usbip.exe nakasulbad sa problema.

Ubos nga linya: ang tigkulit naghimog kasaba ug manigarilyo sa kusina nga ang bintana bukas ug ang pultahan sirado, akong gitan-aw ang proseso sa pagsunog gikan sa laing kwarto pinaagi sa akong kaugalingon nga software, nga dili makamatikod sa usa ka catch.

Gigamit nga mga tinubdan:

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

Source: www.habr.com

Idugang sa usa ka comment