Ukulawula i-USB/IP

Umsebenzi wokudibanisa isixhobo se-USB kwi-PC ekude ngenethiwekhi yendawo rhoqo ivela. Ezantsi kokusikwa yimbali yophendlo lwam kweli cala, kunye nendlela eya kwisisombululo esenziwe ngokusekwe kwiprojekthi yomthombo ovulekileyo. USB/IP ngenkcazo yemiqobo efakwe ngononophelo ngabantu abahlukeneyo kule ndlela, kunye neendlela zokuyiphepha.

Icandelo lokuqala, imbali

Ukuba umatshini unyanisekile, konke oku kulula. Ukusebenza kokuhanjiswa kwe-USB ukusuka kumamkeli ukuya kumatshini obonakalayo kuvele kwi-VMWare 4.1. Kodwa kwimeko yam, isitshixo sokhuseleko, esichongiweyo njenge-WIBU-KEY, kwafuneka siqhagamshelwe koomatshini abahlukeneyo ngamaxesha ahlukeneyo, kwaye kungekhona nje kuphela.
Umjikelo wokuqala wokukhangela emva ngo-2009 wandikhokelela kwisiqwenga se-hardware ebizwa I-TrendNet TU2-NU4
Iinkonzo:

  • ngamanye amaxesha ide isebenze

Umgcini:

  • ayisoloko isebenza. Masithi iqhosha lokhuseleko le-Guardant Stealth II aliqalisi ngalo, lifunga ngempazamo "isixhobo asinakuqalwa."
  • Isoftware yokulawula (funda: ukunyuswa nokuhlisa izixhobo ze-USB) imbi kakhulu. Ukutshintsha komgca womyalelo, i-automation - hayi, khange sive. Yonke into yenziwa ngezandla zakho. Iphupha elibi.
  • I-software yolawulo ikhangela i-hardware ngokwayo kwinethiwekhi ngokusasaza, ngoko isebenza kuphela ngaphakathi kwecandelo elinye losasazo lwenethiwekhi. Awukwazi ukukhankanya idilesi ye-IP yeqhekeza le hardware ngesandla. Ngaba iqhekeza le hardware kwi subnet eyahlukileyo? Emva koko unengxaki.
  • Abaphuhlisi banikezele kwisixhobo, ukuthumela iingxelo ze-bug akunamsebenzi.

Umjikelo wesibini wenzeke ngexesha elingekude kangako, kwaye wandikhokelela kwisihloko senqaku - Iprojekthi ye-USB/IP. Umtsalane ngokuvuleka kwayo, ngakumbi kuba abafana abavela Phendula iOS Batyikitye umqhubi weWindows, ke ngoku nakwi x64 yonke into isebenza ngaphandle kweentonga ezifana nemowudi yovavanyo. Yeyiphi imibulelo emininzi kwiqela leReactOS! Yonke into ivakala intle, makhe sizame ukuyiva, ngaba kunjalo ngokwenene? Ngelishwa, iprojekthi ngokwayo ishiywe, kwaye awukwazi ukuthembela kwinkxaso - kodwa apho eyethu ingazange ilahleke, ikhowudi yomthombo ikhona, siya kuyifumana!

Icandelo lesibini, iseva-Linux

Iseva ye-USB/IP eyabelana ngezixhobo ze-USB kwinethiwekhi inokufakwa kuphela kwi-OS esekwe kwi-Linux. Ewe, iLinux yiLinux, faka iDebian 8 kumatshini obonakalayo kubumbeko obuncinci, intshukumo eqhelekileyo yesandla:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install usbip

Isekiwe. Emva koko i-Intanethi icebisa ukuba kufuneka ukhuphele imodyuli ye-usbip, kodwa - molo, kuqala iraki. Ayikho imodyuli enjalo. Oku kungenxa yokuba uninzi lweemanyuwali kuthungelwano zibhekisa kwisebe elidala 0.1.x, kwaye kokugqibela 0.2.0 iimodyuli zeusbip zinamagama ahlukeneyo.

Ke ngoko:

sudo modprobe usbip-core
sudo modprobe usbip-host
sudo lsmod | grep usbip

Ewe, masiyongeze le migca ilandelayo kwi/etc/modules ukuyilayisha ngokuzenzekelayo xa inkqubo iqala:

usbip-core
usbip-host
vhci-hcd

Masiqale iseva ye-usbip:

sudo usbipd -D

Ngaphaya koko, ubulumko bendalo iphela busixelela ukuba i-usbip iza nezikripthi ezisivumela ukuba silawule umncedisi-bonisa ukuba yeyiphi isixhobo esiya kusabela ngayo kwinethiwekhi, jonga ubume, njalo njalo. Apha esinye isixhobo segadi sisilindele - ezi zikripthi kwisebe le-0.2.x, kwakhona, zinikwe elinye igama. Unokufumana uluhlu lwemiyalelo usebenzisa

sudo usbip

Emva kokufunda inkcazo yemiyalelo, kuyacaca ukuba ukuze wabelane ngesixhobo se-USB esifunekayo, i-usbip ifuna ukufumana i-ID yebhasi. Ababukeli abathandekayo, iraki inombolo yesithathu kwibala: i-ID yebhasi eya kusinika lsusb (ingathi yeyona ndlela icacileyo) - ayimfanelanga! Inyani kukuba i-usbip iyayihoya i-hardware efana ne-USB hubs. Ke ngoko, siya kusebenzisa umyalelo owakhelwe-ngaphakathi:

user@usb-server:~$ sudo usbip list -l
 - busid 1-1 (064f:0bd7)
   WIBU-Systems AG : BOX/U (064f:0bd7)

Qaphela: apha nangaphezulu kuluhlu ndiya kuchaza yonke into usebenzisa umzekelo wesitshixo sam se-USB. Igama lakho lehardware kunye neVID:Iperi yePID inako kwaye iya kwahluka. Imayini ibizwa ngokuba yiWibu-Systems AG: BOX/U, VID 064F, PID 0BD7.

Ngoku sinokubelana ngesixhobo sethu:

user@usb-server:~$ sudo usbip bind --busid=1-1
usbip: info: bind device on busid 1-1: complete

Molo, maqabane!

user@usb-server:~$ sudo usbip list -r localhost
Exportable USB devices
======================
 - localhost
        1-1: WIBU-Systems AG : BOX/U (064f:0bd7)
           : /sys/devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb1/1-1
           : Vendor Specific Class / unknown subclass / unknown protocol (ff/00/ff)

Imihlali emithathu, maqabane! Umncedisi wabelane nge-hardware phezu kwenethiwekhi, kwaye sinokuyidibanisa! Konke okuseleyo kukongeza i-autostart ye-usbip daemon kwi /etc/rc.local

usbipd -D

Icandelo lesithathu, icala lomxhasi kwaye liyabhidisa

Ngokukhawuleza ndazama ukudibanisa isixhobo ekwabelwana ngaso kwinethiwekhi kumatshini osebenzisa iDebian kwiseva efanayo, kwaye yonke into iqhagamshelwe ngokugqibeleleyo:

sudo usbip attach --remote=localhost --busid=1-1

Masidlulele kwiWindows. Kwimeko yam yayiyiWindows Server 2008R2 Standard Edition. Incwadi esemthethweni ikucela ukuba ufake umqhubi kuqala. Inkqubo ichazwe ngokugqibeleleyo kwi-readme efakwe kunye nomxhasi weWindows, senza yonke into njengoko ibhaliwe, yonke into iyasebenza. Ikwasebenza kwi XP ngaphandle kobunzima.

Emva kokuba sikhuphe umxhasi, sizama ukunyusela isitshixo sethu:

C:Program FilesUSB-IP>usbip -a %server-ip% 1-1
usbip err: usbip_network.c: 121 (usbip_recv_op_common) recv op_common, -1
usbip err: usbip_windows.c: 756 (query_interface0) recv op_common
usbip err: usbip_windows.c: 829 (attach_device) cannot find device

Owu oh. Into ayihamba kakuhle. Masisebenzise isakhono sikaGoogle. Kukho izinto ezikhankanyiweyo ukuba kukho into engalunganga kunye neendawo ezihlala zihleli; Isisombululo esicetywayo kukutshintsha rhoqo kwikhowudi yomthombo kwaye uphinde wakhe umxhasi.

Kodwa andifuni kukhuphela iVisual Studio kule nkqubo. Kodwa ndineHiew endala elungileyo. Kwikhowudi yomthombo, isigxina sibhengezwa njengegama eliphindwe kabini. Makhe sijonge i-0x00000106 kwifayile, siyitshintshe nge-0x00000111. Ungalibali, i-byte order ibuyela umva. Isiphumo yimidlalo emibini, sibopha:

[usbip.exe]
00000CBC: 06 11
00000E0A: 06 11

Ewe... ewe!

C:Program FilesUSB-IP>usbip -a %server-ip% 1-1
new usb device attached to usbvbus port 1

Oku kwakunokuba sisiphelo sebali, kodwa umculo awuzange udlale ixesha elide. Emva kokuphinda ndiqalise umncedisi, ndiye ndafumanisa ukuba isixhobo kumxhasi asixhonywanga!

C:Program FilesUSB-IP>usbip -a %server-ip% 1-1
usbip err: usbip_windows.c: 829 (attach_device) cannot find device

Kuko konke. Nditsho noGoogle owazi konke akakwazanga ukundiphendulela oku. Kwaye kwangaxeshanye, umyalelo wokubonisa izixhobo ezikhoyo kumncedisi ubonisa ngokuchanekileyo - nantsi, isitshixo, ungasifaka. Ndizama ukunyuka ukusuka kwiLinux - iyasebenza! Kuthekani ukuba sizama ngoku kwiWindows? Hayi ukoyikeka - kuyasebenza!

Ireki yokugqibela: kukho into engabhalwanga kwikhowudi yomncedisi. Xa wabelana ngesixhobo, ayifundi inani leenkcazo ze-USB ukusuka kuyo. Kwaye xa unyusela isixhobo kwiLinux, le ndawo igcwaliswa. Ngelishwa, ndiqhelene nophuhliso lweLinux kwinqanaba β€œlokwenza && nokwenza ufakelo”. Ke ngoko, ingxaki yasonjululwa kusetyenziswa i-hack emdaka-ukongeza kwi-/etc/rc.local

usbip attach --remote=localhost --busid=1-1
usbip port
usbip detach --port=00

Inxalenye yokugqibela

Emva kobunzima obuthile, iyasebenza. Okufunwayo kuphunyeziwe, ngoku isitshixo sinokuxhonywa kuyo nayiphi na i-PC (kwaye ihlanjululwe, ngokuqinisekileyo, nayo), kubandakanywa ngaphandle kwecandelo losasazo lwenethiwekhi. Ukuba uyafuna, ungenza oku usebenzisa iqokobhe lomyalelo. Into emnandi kukuba ulonwabo lukhululekile ngokupheleleyo.
Ndiyathemba ukuba amava am aya kunceda abahlaseli ukuba bajikeleze iraki ebhalwe ebunzini lam. Enkosi ngosinaka kwakho!

umthombo: www.habr.com

Yongeza izimvo