Famoahana USB/IP

Mipoitra matetika ny asa fampifandraisana fitaovana USB amin'ny PC lavitra amin'ny alΓ lan'ny tambajotra eo an-toerana. Eo ambanin'ny fanapahana dia ny tantaran'ny fikarohana nataoko amin'io lalana io, ary ny lalana mankany amin'ny vahaolana efa vita mifototra amin'ny tetikasa open-source. USB/IP miaraka amin'ny famaritana ireo sakana napetraky ny olona isan-karazany amin'ity lalana ity, ary koa ny fomba hialana azy ireo.

Fizarana voalohany, ara-tantara

Raha virtoaly ny milina dia mora izany rehetra izany. Ny fiasan'ny fandefasana USB avy amin'ny mpampiantrano mankany amin'ny milina virtoaly dia niseho tao amin'ny VMWare 4.1. Fa raha ny amiko, ny fanalahidin'ny fiarovana, fantatra amin'ny anarana hoe WIBU-KEY, dia tsy maintsy mifandray amin'ny milina samihafa amin'ny fotoana samihafa, fa tsy amin'ny virtoaly ihany.
Ny fihodinana voalohany tamin'ny fikarohana tamin'ny taona 2009 dia nitondra ahy tany amin'ny fitaovana iray antsoina hoe TrendNet TU2-NU4
matihanina:

  • indraindray aza miasa

maharatsy ny mifampiresaka:

  • tsy mandeha foana. Andao atao hoe ny fanalahidy fiarovana Guardant Stealth II dia tsy manomboka amin'izany, mianiana amin'ny fahadisoana "tsy azo atomboka ny fitaovana."
  • Ny rindrambaiko fitantanana (vakio: mametaka sy manala ny fitaovana USB) dia tena ratsy. Fiovan'ny baiko, automatique - tsia, tsy mbola naheno izahay. Atao amin'ny tananao ny zava-drehetra. Nofy ratsy.
  • Ny rindrambaiko fanaraha-maso dia mikaroka ny fitaovana ao amin'ny tambajotra amin'ny alΓ lan'ny fampielezam-peo, noho izany dia miasa ao anatin'ny ampahany iray amin'ny tambajotra ihany izy io. Tsy azonao atao ny mamaritra ny adiresy IP an'ny fitaovana amin'ny tanana. Ao amin'ny subnet hafa ve ilay fitaovana? Dia manana olana ianao.
  • Namoy ny fitaovana ireo mpamorona, tsy misy ilana azy ny fandefasana tatitra momba ny bug.

Ny fihodinana faharoa dia nitranga tao anatin'ny fotoana tsy dia lavitra, ary nitarika ahy ho amin'ny lohahevitry ny lahatsoratra - tetikasa USB/IP. Manintona ny fisokafany, indrindra fa ny bandy avy ReactOS Nanasonia mpamily ho an'ny Windows izy ireo, ka na dia amin'ny x64 aza dia mandeha daholo ny zava-drehetra tsy misy tehina toy ny fomba fitsapana. Misaotra betsaka amin'ny ekipa ReactOS! Toa mahafinaritra ny zava-drehetra, andao hiezaka hahatsapa izany, tena izany ve? Indrisy anefa fa nilaozana ihany koa ilay tetikasa, ary tsy afaka miantehitra amin'ny fanohanana ianao - fa any amin'izay tsy nanjavona ny anay dia eo ny kaody loharano, ho fantatray izany!

Fizarana faharoa, server-Linux

Ny mpizara USB/IP izay mizara fitaovana USB amin'ny tambajotra iray dia tsy azo apetraka amin'ny OS miorina amin'ny Linux ihany. Eny, Linux dia Linux, apetraho amin'ny milina virtoaly Debian 8 amin'ny fanamafisana kely indrindra, hetsika tanana mahazatra:

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

Naorina. Avy eo dia manoro hevitra ny Internet fa mila misintona ny module usbip ianao, fa - Salama, rake voalohany. Tsy misy modely toy izany. Izany dia satria ny ankamaroan'ny boky torolalana ao amin'ny tambajotra dia manondro ny sampana tranainy 0.1.x, ary amin'ny 0.2.0 farany dia manana anarana samihafa ny maody usbip.

Noho izany:

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

Eny ary, andao ampidirina amin'ny /etc/modules ireto andalana manaraka ireto mba hampidirana azy ireo ho azy rehefa manomboka ny rafitra:

usbip-core
usbip-host
vhci-hcd

Andao hanomboka ny mpizara usbip:

sudo usbipd -D

Fanampin'izany, ny fahendren'izao tontolo izao dia milaza amintsika fa ny usbip dia miaraka amin'ny script izay ahafahantsika mitantana ny server - asehoy izay fitaovana hozarainy amin'ny tambajotra, jereo ny sata, sns. Eto dia misy fitaovana zaridaina iray hafa miandry antsika - ireo script ao amin'ny sampana 0.2.x ireo dia novana anarana indray. Azonao atao ny mahazo lisitry ny baiko mampiasa

sudo usbip

Rehefa avy namaky ny famaritana ny baiko, dia lasa mazava fa mba hizara ny ilaina USB fitaovana, usbip te-hahafantatra ny Bus ID. Ry mpijery hajaina, mitadiava laharana telo eo amin'ny kianja: ny ID Bus izay hanome antsika lsusb (toa ny fomba mazava indrindra) - tsy mety aminy! Ny zava-misy dia ny usbip dia tsy miraharaha ny fitaovana toy ny USB hubs. Noho izany, hampiasa ny baiko natsangana izahay:

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

Fanamarihana: eto ary amin'ny lisitra dia hamaritra ny zava-drehetra aho amin'ny alΓ lan'ny ohatra amin'ny lakile USB manokana. Ny anaran'ny fitaovanao sy ny VID:PID mpivady dia mety ary ho hafa. Ny ahy dia antsoina hoe Wibu-Systems AG: BOX/U, VID 064F, PID 0BD7.

Afaka mizara ny fitaovanay izahay izao:

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

Hira, ry namana!

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)

Mihoby telo, ry namana! Nizara ny fitaovana tamin'ny tambajotra ny mpizara, ary afaka mampifandray izany izahay! Ny hany sisa tavela dia ny manampy autostart amin'ny daemon usbip ao amin'ny /etc/rc.local

usbipd -D

Fizarana fahatelo, lafiny mpanjifa ary mampisafotofoto

Avy hatrany dia nanandrana nampifandray ny fitaovana nozaraina tamin'ny tambajotra aho tamin'ny milina iray mandeha amin'ny Debian amin'ny lohamilina iray ihany, ary mifandray tsara ny zava-drehetra:

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

Andao hiroso amin'ny Windows. Raha ny ahy dia Windows Server 2008R2 Standard Edition. Ny boky ofisialy dia mangataka anao hametraka ny mpamily aloha. Ny fomba fiasa dia voafaritra tsara ao amin'ny readme miaraka amin'ny mpanjifa Windows, manao ny zava-drehetra araka ny voasoratra izahay, mandeha ny zava-drehetra. Izy io koa dia miasa amin'ny XP tsy misy fahasarotana.

Rehefa voavaha ny mpanjifa dia miezaka mametraka ny fanalahidinay izahay:

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. Nisy zavatra tsy nety. Andao hampiasa ny fahaizana Google. Misy sombintsombiny milaza fa misy zavatra tsy mety amin'ny ampahany amin'ny mpizara, ny mpamorona dia nanova ny dikan'ny protocol rehefa nifindra tany amin'ny version 0.2.0, fa ao amin'ny mpanjifa Win dia hadinony ny manao izany. Ny vahaolana atolotra dia ny manova ny tsy tapaka ao amin'ny kaody loharano ary manangana indray ny mpanjifa.

Saingy tsy te-hisintona Visual Studio aho amin'ity fomba ity. Saingy manana ny Hiew taloha tsara aho. Ao amin'ny kaody loharano, ny tsy miova dia ambara ho teny roa. Andeha hojerentsika ny 0x00000106 ao amin'ny rakitra, soloina amin'ny 0x00000111. Aza adino fa mivadika ny baikon'ny byte. Ny vokatra dia lalao roa, apetaho:

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

Aaaand... eny!

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

Mety ho nifarana teo ny tantara, saingy tsy nandeha ela ny mozika. Rehefa avy namerina ny mpizara aho dia hitako fa tsy tafapetraka ny fitaovana amin'ny mpanjifa!

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

Izay ihany. Na ny Google mahalala ny zava-drehetra aza dia tsy afaka namaly izany ho ahy. Ary amin'izany fotoana izany, ny baiko hanehoana ireo fitaovana misy eo amin'ny mpizara dia mampiseho tsara - eto izany, ny fanalahidy, azonao atao ny mametraka azy. Miezaka mi-mount avy amin'ny Linux aho - miasa izany! Ahoana raha manandrana amin'ny Windows isika izao? Oh horohoro - miasa izany!

Ny rake farany: misy zavatra tsy voasoratra ao amin'ny code server. Rehefa mizara fitaovana, dia tsy mamaky ny isan'ny USB descriptors avy aminy. Ary rehefa mametraka fitaovana avy amin'ny Linux dia feno io saha io. Indrisy anefa fa mahazatra ahy ny fivoaran'ny Linux amin'ny ambaratonga "make && make install". Noho izany, voavaha ny olana tamin'ny fampiasana hack somary maloto - manampy amin'ny /etc/rc.local

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

Fizarana farany

Taorian'ny fitsapana sasany dia miasa izany. Tratra ny tiana, ankehitriny dia azo apetraka amin'ny PC rehetra ny lakile (ary tsy voafehy, mazava ho azy, koa), anisan'izany ny ivelan'ny fizarana fampielezam-peo amin'ny tambajotra. Raha tianao dia azonao atao izany amin'ny alΓ lan'ny script shell command. Ny mahafinaritra dia maimaim-poana tanteraka ny fahafinaretana.
Manantena aho fa ny traikefako dia hanampy ireo mpijirika hivezivezy amin'ny rake izay mipetaka eo amin'ny handriko. Misaotra anao noho ny fifantohanao!

Source: www.habr.com

Add a comment