USB juu ya IP nyumbani

Wakati mwingine unataka kufanya kazi na kifaa kilichounganishwa kupitia USB bila kuiweka kwenye meza karibu na kompyuta yako ndogo. Kifaa changu ni mchongaji wa Kichina na leza ya 500 mW, ambayo haipendezi kabisa inapowasiliana kwa karibu. Mbali na hatari ya haraka kwa macho, bidhaa za mwako wa sumu hutolewa wakati wa operesheni ya laser, hivyo kifaa kinapaswa kuwa iko katika eneo lenye hewa nzuri, na ikiwezekana kutengwa na watu. Unawezaje kudhibiti kifaa kama hicho? Kwa bahati mbaya nilipata jibu la swali hili wakati nikivinjari hazina ya OpenWRT kwa matumaini ya kupata matumizi yanayofaa kwa kipanga njia cha zamani cha D-Link DIR-320 A2. Ili kuungana, niliamua kutumia ile iliyoelezwa hapo awali kwenye Habre. USB juu ya handaki ya IP, hata hivyo, maagizo yote ya kusakinisha yamepoteza umuhimu wao, kwa hivyo ninaandika yangu mwenyewe.

OpenWRT ni mfumo wa uendeshaji ambao hauhitaji utangulizi, kwa hivyo sitaelezea usakinishaji wake. Kwa kipanga njia changu, nilichukua toleo la hivi punde la OpenWrt 19.07.3, na kuunganishwa na kituo kikuu cha ufikiaji cha Wi-Fi kama mteja, nikichagua modi. lan, ili sio kutesa firewall.

Sehemu ya seva

Tunatenda kulingana na maagizo rasmi. Baada ya kuunganishwa kupitia ssh, sasisha vifurushi muhimu.

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

Ifuatayo, tunaunganisha kifaa chetu kwenye bandari ya USB ya router (kwa upande wangu, vifaa: kitovu cha USB, gari la flash ambalo mfumo wa faili wa router umewekwa (kwa sababu ya ukosefu wa nafasi kwenye hifadhi ya ndani), na, moja kwa moja, mchongaji).

Hebu tujaribu kuonyesha orodha ya vifaa vilivyounganishwa:

root@OpenWrt:~# usbip list -l

Tupu.

Kwa googling mhalifu alipatikana, ikawa maktaba libudev-fbsd.
Tunatoa toleo la hivi karibuni la kufanya kazi kutoka kwa ghala kwa mkono libudev_3.2-1 kutoka kwa OpenWRT 17.01.7 kutolewa kwa usanifu wako, kwa upande wangu ni libudev_3.2-1_mipsel_mips32.ipk. Kwa kutumia wget/scp, pakua kwenye kumbukumbu ya kipanga njia na uisakinishe tena

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

Tunaangalia:

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)

Mwanamume Mchina aliyeunganishwa kwenye kitovu cha USB alipokea bsuid 1-1.4. Kumbuka.

Sasa wacha tuanze daemon:

root@OpenWrt:~# usbipd -D

na kuwafunga Wachina

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

Wacha tuangalie ikiwa kila kitu kinafanya kazi:

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

Ili kukifunga kifaa kiotomatiki zaidi, hebu tuhariri /etc/rc.localkwa kuongeza kabla toka 0 zifuatazo:

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

Upande wa mteja

Hebu tujaribu kuunganisha kifaa kwenye Windows 10 kwa kutumia maagizo hapo juu kutoka openwrt.org. Nitasema mara moja: wazo hilo limepotea. Kwanza, Windows 7 x64 pekee inazingatiwa. Pili, kiunga hupewa uzi kwenye sourceforge.net, ambayo inapendekeza kupakua kiendesha kilichowekwa mnamo 2014 kutoka kwa Dropbox. Tunapojaribu kuiendesha chini ya Windows 10 na kuunganisha kwenye kifaa chetu, tunapata hitilafu ifuatayo:

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

*** ERROR: cannot find device

Hii ni kutokana na ukweli kwamba mteja haifanyi kazi na seva iliyojengwa kwa kernel ya zamani kuliko toleo la 3.14.
Seva ya usbip ya OpenWRT 19.07.3 imejengwa kwenye kernel 4.14.180.

Nikiendelea na utaftaji wangu, ninapata maendeleo ya sasa ya mteja wa Windows kwa github. Sawa, usaidizi wa Windows 10 x64 umeelezwa, lakini mteja ni mteja wa mtihani tu, kwa hiyo kuna idadi ya mapungufu.

Kwa hiyo, kwanza wanaomba kufunga cheti, na mara mbili. Sawa, tuiweke katika Mamlaka ya Uthibitishaji wa Mizizi Unaoaminika na Wachapishaji Wanaoaminika.

Ifuatayo, unahitaji kuweka mfumo wa uendeshaji katika hali ya mtihani. Hii inafanywa na timu

bcdedit.exe /set TESTSIGNING ON

Sikufanikiwa mara ya kwanza, niliingia njiani salama buti. Ili kuizima, unahitaji kuanzisha upya UEFI na kuweka boot salama ili kuzima. Baadhi ya miundo ya kompyuta ya mkononi inaweza kuhitaji kuweka nenosiri la msimamizi.

Baada ya hayo, fungua Windows na ufanye bcdedit.exe /weka TESTSIGNING ON
Winda anasema kila kitu ni sawa. Tunaanzisha upya tena, na tunaona kwenye kona ya chini ya kulia maneno Mode ya Mtihani, toleo na nambari ya kujenga OS.

Udanganyifu huu wote ni wa nini? Ili kusakinisha kiendeshi kisicho na saini USB/IP VHCI. Inapendekezwa kufanya hivi kwa kupakua faili usbip.exe, usbip_vhci.sys, usbip_vhci.inf, usbip_vhci.cer, usbip_vhci.cat, na kuendesha na haki za msimamizi

usbip.exe install

au njia ya pili, kusakinisha Legacy Hardware manually. Nilichagua chaguo la pili, nilipokea onyo kuhusu kufunga dereva asiyesajiliwa na kukubaliana nayo.

Ifuatayo, tunaangalia kuwa tuna uwezo wa kuunganisha kwenye kifaa cha mbali cha USB kwa kuendesha amri:

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

tunapata orodha ya vifaa:

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)

kwa kosa usbip: kosa: imeshindwa kufungua hifadhidata ya kitambulisho cha usb Hatuzingatii, haiathiri kazi.

Sasa tunafunga kifaa:

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

Hiyo ni, Windows imegundua kifaa kipya, sasa unaweza kufanya kazi nayo kana kwamba imeunganishwa kwenye kompyuta ndogo.

Ilinibidi kuteseka kidogo na mchongaji wa Kichina, kwa sababu nilipojaribu kusakinisha kiendeshaji chake cha CH341SER kupitia kisakinishi kilichokuja na mchongaji (ndio, mchongaji wa Arduino), USB/IP VHCI ilidondosha Windows kwenye BSOD. Walakini, kusakinisha kiendeshi cha CH341SER kwa kuunganisha kifaa kupitia usbip.exe kulitatua tatizo.

Mstari wa chini: mchongaji hufanya kelele na kuvuta sigara jikoni na dirisha lililofunguliwa na mlango umefungwa, ninatazama mchakato wa kuchoma kutoka kwenye chumba kingine kupitia programu yangu mwenyewe, ambayo haina maana ya kukamata.

Vyanzo vilivyotumika:

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

Chanzo: mapenzi.com

Kuongeza maoni