Ukulawula i-USB/IP

Umsebenzi wokuxhuma idivayisi ye-USB ku-PC ekude ngenethiwekhi yendawo uvela njalo. Ngaphansi kokusikwa, umlando wokusesha kwami ​​​​ngalokhu ubekiwe, kanye nendlela eya kwisixazululo esenziwe ngomumo ngokusekelwe kuphrojekthi yomthombo ovulekile. I-USB/IP ngencazelo yezithiyo ezibekwe ngokucophelela abantu abahlukahlukene kule ndlela, kanye nezindlela zokuzidlula.

Ingxenye yokuqala, ezomlando

Uma umshini ungokoqobo - konke lokhu kulula. Ukusebenza kokudlulisela phambili i-USB kusuka kumsingathi kuya emshinini obonakalayo kuvele ku-VMWare 4.1. Kodwa esimweni sami, ukhiye wokuphepha, owaziwa ngokuthi i-WIBU-KEY, kwakudingeka uxhunywe ngezikhathi ezahlukene emishinini ehlukene, hhayi kuphela ebonakalayo.
Umzuliswano wokuqala wokusesha ngo-2009 wangiholela ocezwini lwensimbi olubizwa I-TrendNet TU2-NU4
Izinzuzo:

  • ngezinye izikhathi iyasebenza

Umthengi:

  • ayisebenzi njalo. Ake sithi ukhiye wokuvikela we-Guardant Stealth II awuqali ngawo, ufunga ngephutha "idivayisi ayikwazi ukuqaliswa".
  • Isoftware yokuphatha (funda - ukukhweza nokwehlisa amadivaysi e-USB) idabukisa ngokwedlulele. Ukushintshwa komugqa womyalo, i-automation - cha, akezwanga. Konke kwenziwa ngesandla. Iphupho elibi.
  • isofthiwe yokulawula isesha ingxenye yensimbi ngokwayo kunethiwekhi ngokusakaza, ngakho lokhu kusebenza kuphela ngaphakathi kwesegimenti yenethiwekhi yokusakaza eyodwa. Awukwazi ukucacisa ikheli le-IP locezu lwensimbi ngesandla. Ucezu lwensimbi kwelinye i-subnet? Bese unenkinga.
  • onjiniyela bathole amaphuzu kudivayisi, akusizi ukuthumela imibiko yeziphazamisi.

Umzuliswano wesibili wenzeka ngezikhathi ezingekude kangako, futhi wangiholela esihlokweni sendatshana - Iphrojekthi ye-USB/IP. Iheha ngokuvuleleka, ikakhulukazi kusukela abafana abavela Phendula i -OS basayine umshayeli weWindows, ngakho-ke manje yonke into isebenza ngisho naku-x64 ngaphandle kwezinduku ezifana nemodi yokuhlola. Okungabongwa kakhulu eqenjini le-ReactOS! Konke kuzwakala kumnandi, ake sizame ukukuzwa, ingabe kunjalo ngempela? Ngeshwa, iphrojekthi ngokwayo nayo ilahliwe, futhi awukwazi ukuthembela ekusekelweni - kodwa lapho okwethu kungazange kunyamalale, umthombo ukhona, sizokuthola!

Ingxenye yesibili, iseva-linux

Iseva ye-USB/IP eyabelana ngamadivayisi e-USB kunethiwekhi ingasethwa kuphela ku-OS esekelwe ku-Linux. Yebo, i-Linux yi-Linux, ngakho-ke faka emshinini we-Debian 8 ekucushweni okuncane, ukunyakaza okujwayelekile kwezandla:

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

Ixazululiwe. Ngaphezu kwalokho, i-inthanethi iphakamisa ukuthi uzodinga ukulanda imojula ye-usbip, kodwa - sawubona, ireki yokuqala. Ayikho imojula enjalo. Futhi konke ngenxa yokuthi amamanyuwali amaningi kunethiwekhi abhekisela egatsheni elidala elingu-0.1.x, futhi ku-0.2.0 yakamuva amamojula we-usbip anamagama ahlukene.

Ngakho-ke:

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

Hhayi-ke, ake sengeze imigqa elandelayo ku-/etc/modules ukuze ilayishe ngokuzenzakalelayo ekuqaleni kwesistimu:

usbip-core
usbip-host
vhci-hcd

Ake siqale iseva ye-usbip:

sudo usbipd -D

Ngaphezu kwalokho, ingqondo yendawo yonke isitshela ukuthi i-usbip iza nemibhalo esivumela ukuthi siphathe iseva - bonisa ukuthi iyiphi idivayisi ezokwabelana ngayo kunethiwekhi, bona isimo, njalo njalo. Lapha elinye ithuluzi lasengadini lisilindile - le mibhalo esegatsheni le-0.2.x, futhi, iqanjwe kabusha. Ungathola uhlu lwemiyalo nge

sudo usbip

Ngemva kokufunda incazelo yemiyalelo, kuyacaca ukuthi ukuze wabelane ngedivayisi ye-USB edingekayo, i-usbip ifuna ukwazi i-ID yebhasi. Babukeli abathandekayo, inombolo ye-rake yesithathu isenkundleni: I-ID Yebhasi ezosinika lsusb (kungabonakala kuyindlela esobala kakhulu) - ayihambisani naye! Iqiniso liwukuthi i-usbip ayinaki i-hardware efana namahabhu e-USB. Ngakho-ke, sizosebenzisa umyalo owakhelwe ngaphakathi:

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

Qaphela: ngemva kwalokhu ohlwini ngizochaza yonke into ngisebenzisa isibonelo sokhiye wami othize we-USB. Igama lakho lezingxenyekazi zekhompuyutha kanye ne-VID:PID ipheya ingahluka futhi izohluka. Eyami ibizwa nge-Wibu-Systems AG: BOX/U, VID 064F, PID 0BD7.

Manje singabelana ngedivayisi yethu:

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

Hawu, bakwethu!

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)

Injabulo emithathu, maqabane! Iseva yabelane ngocezu lwensimbi kunethiwekhi, futhi singakwazi ukuyixhuma! Kusele kuphela ukwengeza i-autostart ye-daemon ye-usbip ku-/etc/rc.local

usbipd -D

Ingxenye yesithathu, ohlangothini lweklayenti futhi iyadida

Ngizamile ukuxhuma idivayisi eyabiwe ngenethiwekhi emshinini we-Debian ngaso leso sikhathi kuseva efanayo, futhi konke kuxhumeke kahle:

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

Asidlulele ku-Windows. Endabeni yami kwakuyi-Windows Server 2008R2 Standard Edition. Umhlahlandlela osemthethweni ukucela ukuthi ufake umshayeli kuqala. Inqubo ichazwe ngokuphelele ku-readme enamathiselwe kuklayenti lewindi, senza konke njengoba kubhaliwe, konke kuyasebenza. Ku-XP futhi isebenza ngaphandle kwezinkinga.

Ngemva kokuqaqa iklayenti, sizama ukukhweza ukhiye wethu:

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

Oh oh. Kukhona into engahambanga kahle. Sisebenzisa ikhono le-Google. Kunokushiwo okuyizicucu kokuthi kukhona okungahambi kahle ngama-constants; engxenyeni yeseva, abathuthukisi bashintshe inguqulo yephrothokholi lapho beshintshela kunguqulo 0.2.0, kodwa bakhohlwe ukwenza lokhu kuklayenti le-Win. Isixazululo esihlongozwayo wukushintsha okungaguquki kukhodi yomthombo futhi wakhe kabusha iklayenti.

Kepha angifuni ngempela ukulanda i-Visual Studio ngenxa yale nqubo. Kodwa nginoHiew omdala omuhle. Kukhodi yomthombo, okungaguquki kumenyezelwa njengegama eliphindwe kabili. Ake sibheke ifayela elithi 0x00000106, silisuse ngo-0x00000111. Khumbula, i-byte order ihlehlisiwe. Umphumela uyimidlalo emibili, ipheshana:

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

Eeeee... yebo!

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

Lokhu bekungayiqeda isethulo, kodwa umculo awudlalanga isikhathi eside. Ngemva kokuqalisa kabusha iseva, ngithole ukuthi idivayisi ekwiklayenti ayifakiwe!

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

Futhi yilokho. Ngisho no-Google owazi konke akakwazanga ukungiphendulela lokhu. Futhi ngesikhathi esifanayo, umyalo wokubonisa amadivayisi atholakalayo kuseva ubonisa kahle - nansi, ukhiye, ungawukhweza. Ngizama ukukhweza kusuka ngaphansi kweLinux - iyasebenza! Futhi uma manje zama kusukela ngaphansi Windows? Oh shit - kuyasebenza!

Ireki yokugcina: okuthile akungeziwe kukhodi yeseva. Uma wabelana ngedivayisi, ayifundi inombolo yezichazi ze-USB ezivela kuyo. Futhi uma ukhweza idivayisi ngaphansi kwe-Linux, le nkambu iyagcwaliswa. Ngeshwa, ngijwayelene nentuthuko ngaphansi kwe-Linux ezingeni elithi “yenza && make install”. Ngakho-ke, inkinga ixazululwa ngokugebenga okungcolile - okungeza ku-/etc/rc.local

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

Ingxenye yokugcina

Ngemva kokudlala okuthile, kuyasebenza. Umphumela ofisa utholakele, manje ukhiye ungafakwa kunoma iyiphi i-PC (futhi yehliswe, yebo, futhi), kuhlanganise nalabo abangaphandle kwengxenye yenethiwekhi yokusakaza. Uma ufuna, ungakwenza usebenzisa iskripthi segobolondo. Yini enhle - injabulo imahhala.
Ngethemba ukuthi ulwazi lwami luzosiza i-habrazhiteli ukuthi ihambe eduze kwereki ebhalwe ebunzini lami. Ngiyabonga ukulalela kwenu!

Source: www.habr.com

Engeza amazwana