Taming USB/IP

Iṣẹ-ṣiṣe ti sisopọ ẹrọ USB kan si PC latọna jijin nipasẹ nẹtiwọki agbegbe nigbagbogbo dide. Labẹ gige, itan-akọọlẹ ti awọn wiwa mi ni itọsọna yii ti ṣeto, ati ọna si ojutu ti a ti ṣetan ti o da lori iṣẹ akanṣe-ìmọ USB/IP pẹlu apejuwe awọn idiwo farabalẹ ṣeto nipasẹ ọpọlọpọ awọn eniyan lori ọna yii, ati awọn ọna lati fori wọn.

Apakan, itan

Ti ẹrọ ba jẹ foju - gbogbo eyi rọrun. Iṣẹ ṣiṣe ti ifiranšẹ USB lati ọdọ ogun si ẹrọ foju kan han ni VMWare 4.1. Ṣugbọn ninu ọran mi, bọtini aabo, ti a mọ bi WIBU-KEY, ni lati sopọ ni awọn akoko oriṣiriṣi si awọn ẹrọ oriṣiriṣi, kii ṣe awọn foju nikan.
Iyika wiwa akọkọ ni ọdun 2009 ti o jinna mu mi lọ si nkan irin ti a pe TrendNet TU2-NU4
Aleebu:

  • nigbami o paapaa ṣiṣẹ

Konsi:

  • ko nigbagbogbo ṣiṣẹ. Ṣebi pe bọtini aabo Guardant Stealth II ko bẹrẹ nipasẹ rẹ, bura pẹlu aṣiṣe “Ẹrọ ko le bẹrẹ”.
  • Sọfitiwia iṣakoso (ka - iṣagbesori ati awọn ẹrọ USB ṣiṣi silẹ) jẹ alaanu si iwọn. Awọn iyipada laini aṣẹ, adaṣe - rara, ko ti gbọ. Ohun gbogbo jẹ nipasẹ ọwọ nikan. Alaburuku.
  • sọfitiwia iṣakoso n wa nkan ti irin funrararẹ ni nẹtiwọọki nipasẹ igbohunsafefe, nitorinaa eyi nikan ṣiṣẹ laarin apakan nẹtiwọọki igbohunsafefe kan. O ko le pato awọn IP adirẹsi ti awọn nkan ti irin nipa ọwọ. A nkan ti irin ni miiran subnet? Lẹhinna o ni iṣoro kan.
  • Difelopa gba wọle lori ẹrọ, o jẹ asan lati fi awọn ijabọ kokoro ranṣẹ.

Iyika keji ṣẹlẹ ni awọn akoko ti ko jinna, o mu mi lọ si koko-ọrọ ti nkan naa - USB/IP ise agbese. Fa pẹlu ìmọ, paapa niwon awọn enia buruku lati Atunṣe wọn fowo si awakọ kan fun Windows, nitorinaa ohun gbogbo n ṣiṣẹ paapaa lori x64 laisi awọn crutches eyikeyi bi ipo idanwo kan. Fun eyiti ọpọlọpọ ọpẹ si ẹgbẹ ReactOS! Ohun gbogbo dun lẹwa, jẹ ki a gbiyanju lati lero rẹ, ṣe o jẹ bẹ gaan bi? Laisi ani, iṣẹ akanṣe funrararẹ tun kọ silẹ, ati pe o ko le gbẹkẹle atilẹyin - ṣugbọn nibiti tiwa ko parẹ, orisun wa nibẹ, a yoo rii!

Apa keji, olupin-linux

Olupin USB/IP ti o pin awọn ẹrọ USB lori nẹtiwọọki kan le ṣee ṣeto sori OS ti o da lori Linux nikan. O dara, Lainos jẹ Lainos, a fi Debian 8 sori ẹrọ foju kan ni iṣeto ti o kere ju, gbigbe ọwọ boṣewa:

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

Ti yanju. Siwaju sii, Intanẹẹti daba pe iwọ yoo nilo lati ṣe igbasilẹ module usbip, ṣugbọn - hello, rake akọkọ. Nibẹ ni ko si iru module. Ati gbogbo nitori ọpọlọpọ awọn itọnisọna lori nẹtiwọọki n tọka si ẹka 0.1.x agbalagba, ati ni 0.2.0 tuntun ti awọn modulu usbip ni awọn orukọ oriṣiriṣi.

Nitorina:

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

O dara, jẹ ki a ṣafikun awọn laini wọnyi si /etc/modules lati gbe wọn laifọwọyi ni ibẹrẹ eto:

usbip-core
usbip-host
vhci-hcd

Jẹ ki a bẹrẹ olupin usbip:

sudo usbipd -D

Siwaju sii, ọkan gbogbo agbaye sọ fun wa pe usbip wa pẹlu awọn iwe afọwọkọ ti o gba wa laaye lati ṣakoso olupin naa - ṣafihan iru ẹrọ ti yoo pin lori nẹtiwọọki, wo ipo, ati bẹbẹ lọ. Nibi ọpa ọgba miiran n duro de wa - awọn iwe afọwọkọ wọnyi ni ẹka 0.2.x, lẹẹkansi, ti tun lorukọ. O le gba atokọ ti awọn aṣẹ pẹlu

sudo usbip

Lẹhin kika apejuwe ti awọn aṣẹ, o han gbangba pe lati le pin ẹrọ USB ti o nilo, usbip fẹ lati mọ ID Bus rẹ. Eyin oluwo, rake nomba meta wa ni gbagede: ID Bus ti yoo fun wa lsusb (yoo dabi ọna ti o han julọ) - ko baamu fun u! Otitọ ni pe usbip kọju si ohun elo bii awọn ibudo USB. Nitorinaa, a yoo lo aṣẹ ti a ṣe sinu:

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

Akiyesi: lẹhinna ninu awọn atokọ Emi yoo ṣe apejuwe ohun gbogbo ni lilo apẹẹrẹ ti bọtini USB pato mi. Orukọ hardware rẹ ati VID:PID bata le ati pe yoo yatọ. Mi ni a npe ni Wibu-Systems AG: BOX/U, VID 064F, PID 0BD7.

Bayi a le pin ẹrọ wa:

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

Hurrah, awọn ẹlẹgbẹ!

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)

Ẹdun mẹta, awọn ẹlẹgbẹ! Awọn olupin pín awọn nkan ti irin lori awọn nẹtiwọki, ati awọn ti a le so o! O ku nikan lati ṣafikun autostart ti usbip daemon si /etc/rc.local

usbipd -D

Apakan mẹta, ẹgbẹ alabara ati iruju

Mo gbiyanju sisopọ ẹrọ ti o pin lori nẹtiwọọki si ẹrọ Debian lẹsẹkẹsẹ lori olupin kanna, ati pe ohun gbogbo ti sopọ dara:

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

Jẹ ki a lọ si Windows. Ninu ọran mi o jẹ Windows Server 2008R2 Standard Edition. Itọsọna osise n beere lọwọ rẹ lati fi awakọ sii ni akọkọ. Ilana naa jẹ apejuwe ni pipe ninu readme ti o so mọ alabara windows, a ṣe ohun gbogbo bi o ti kọ, ohun gbogbo ṣiṣẹ. Lori XP o tun ṣiṣẹ laisi awọn iṣoro eyikeyi.

Lẹhin ṣiṣi silẹ alabara, a gbiyanju lati gbe bọtini wa:

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. Nnkan o lo daadaa. A lo ọgbọn ti Google. Awọn mẹnuba aibikita wa pe nkan kan jẹ aṣiṣe pẹlu awọn iduro; ni apakan olupin, awọn olupilẹṣẹ yipada ẹya ilana nigbati wọn yipada si ẹya 0.2.0, ṣugbọn wọn gbagbe lati ṣe eyi ni alabara Win. Ojutu ti a dabaa ni lati yi igbagbogbo pada ninu koodu orisun ati tun alabara kọ.

Ṣugbọn Emi ko fẹ lati ṣe igbasilẹ Studio wiwo fun nitori ilana yii. Sugbon mo ni kan ti o dara atijọ Hiew. Ninu koodu orisun, igbagbogbo jẹ ikede bi ọrọ ilọpo meji. Jẹ ki a wo faili naa fun 0x00000106, rọpo rẹ pẹlu 0x00000111. Ranti, aṣẹ baiti ti yipada. Abajade jẹ ibaamu meji, alemo:

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

Eeee... Bẹẹni!

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

Eyi le ti pari igbejade, ṣugbọn orin ko ṣiṣẹ fun pipẹ. Lẹhin atunbere olupin naa, Mo rii pe ẹrọ lori alabara ko gbe!

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

Ati awọn ti o ni gbogbo. Paapaa Google ti o mọ gbogbo ko le dahun eyi fun mi. Ati ni akoko kanna, aṣẹ lati ṣafihan awọn ẹrọ ti o wa lori olupin fihan ni deede - nibi o wa, bọtini, o le gbe e. Mo gbiyanju lati gbe lati labẹ Linux - o ṣiṣẹ! Ati ti o ba bayi gbiyanju lati labẹ Windows? Oh nik - o ṣiṣẹ!

Awọn ti o kẹhin àwárí: nkankan ti wa ni ko fi kun ni olupin koodu. Nigbati o ba n pin ẹrọ kan, ko ka nọmba awọn apejuwe USB lati inu rẹ. Ati nigbati o ba n gbe ẹrọ lati labẹ Linux, aaye yii ti kun. Laanu, Mo faramọ idagbasoke labẹ Linux ni ipele “ṣe && ṣe fifi sori ẹrọ”. Nitorinaa, iṣoro naa ni ipinnu pẹlu gige idọti kuku - fifi kun si /etc/rc.local

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

Apá ipari

Lẹhin ti diẹ ninu awọn fiddling, o ṣiṣẹ. Abajade ti o fẹ ni a ti gba, ni bayi bọtini le ti gbe sori PC eyikeyi (ati ṣiṣi silẹ, nitorinaa, paapaa), pẹlu ita apakan nẹtiwọki igbohunsafefe. Ti o ba fẹ, o le ṣe pẹlu lilo iwe afọwọkọ ikarahun kan. Ohun ti o dara - idunnu jẹ ọfẹ ọfẹ.
Mo nireti pe iriri mi yoo ṣe iranlọwọ habrazhiteli lati wa ni ayika rake ti o tẹ si iwaju mi. Mo dupe fun ifetisile re!

orisun: www.habr.com

Fi ọrọìwòye kun