Domitura USB/IP

Negotium ligandi USB fabrica ad PC remotam per network locali regulariter oritur. Sub inciso historia inquisitionum mearum hac in parte exposita est, et via ad solutionem promptae solutionis in fonte aperto fundatam. USB/IP in hac via a variis impedimenta diligenter descripta, nec non vias praeterire.

Pars prima, historica

Si apparatus virtualis est - haec omnia facile sunt. Munus USB ab hospite ad virtualem machinam transmittuntur in VMWare 4.1. At in casu meo, clavis securitatis, WIBU-KEY cognoscibilis, diversis temporibus diversis machinis connecti debuit, et non solum virtuales.
Primus circumitus inquisitionis in distans 2009 me plumbum ad ferrum vocavit TrendNet TU2-NU4
pros,

  • interdum etiam operatur

cons:

  • non semper operatur. Pone tutelam tutelae Furtim II clavem per eam non incipere, iurans per errorem "machinam inchoari non posse".
  • Procuratio procuratio (legi - ascendens et ineffabilis USB machinas) pathicus ad extremum est. Mandata lineae virgas, automationes, non audiverunt. Omnia per manus iusta sunt. Somnum exterreri.
  • moderamen programmatum perquirit ipsum ferrum in retis diffundendo, ergo hoc solum operatur intra unum segmentum retis iaci. Inscriptio IP ferri manu non potes. Ferrum in aliis subnet? Habes igitur quaestionem.
  • tincidunt in fabrica notatos, supervacuum est cimex nuntia mittere.

Secunda rotunditas temporibus non ita distantibus accidit, et me ad articulum perduxit. USB/IP project. Allicit perspicue, praesertim cum latinae e WikiChristian aurigam pro Fenestra signaverunt, ita nunc omnia opera etiam in x64 sine ullis fustibus sicut modus experimentalis. Pro quibus multis gratias ReactOS equos! Omnia pulchra sonant, sentimus sentire, itane est? Proh dolor, etiam consilium deseritur et in auxilio numerare non potes - sed ubi nostri non evanuerunt, fons ibi est, nos viderimus!

Pars duarum, server-linux

A USB/IP servo qui USB cogitationes per retis communicat solum in Linux fundato OS erigi potest. Bene, Linux est Linux, Debian 8 instituimus in virtuali machina in minima configuratione, vexillum manus motum;

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

Habitavit. Praeterea, Penitus suggerit necesse esse ut moduli usbiporum comprehendantur, sed - salve, primum rastrum. Nulla ut volutpat augue. Et quia plerique manuales in retiacula referunt ad ramum vetustiorem 0.1.x, et in novissima 0.2.0 modulorum usbiporum diversa nomina habent.

Ille est cur:

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

Bene, lineas sequentes ad /etc/modus addamus, ut eos automatice ad systema startup oneratis:

usbip-core
usbip-host
vhci-hcd

Sit scriptor satus servo usbip:

sudo usbipd -D

Praeterea, mens universalis docet nos usbip venire cum scriptis quae permittit nos ministrare administrare - ostende quam fabricam communicet super retiaculum, statum, et cetera. Hic aliud instrumentum hortum nos manet - haec scripta in 0.2.x ramo iterum nominata sunt. Potes ut indices mandatorum

sudo usbip

Post descriptionem mandatorum perlectis, manifestum fit ut USB artificium communicare possit, usbip cognoscere velle suum Bus ID. Carissimi spectatores, numerus ternarius in arena est: Bus ID qui nobis dabit lsusb * (videatur manifestissima via) - non convenit. Ita est quod usbip hardware quasi USB modioli ignorat. Utemur ergo in structo mandato;

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

Nota: in sequentibus in schedulis omnia describam utens exemplo mei clavis specificae USB. Ferramenta nomen tuum et VID:PID par possunt et differre possunt. Meus appellatur Wibu-Systems AG: BOX/U, VID 064F, PID 0BD7.

Nunc consilium nostrum communicare possumus:

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

Eia, socii!

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)

Tres clamores, socii! Servus frustum ferreum super retiaculum communicavit et eam coniungere possumus! Reliquum est, ut autostart daemonis usbip ad /etc/rc.local addere

usbipd -D

Pars tertia, clientelam et confundens

Conatus sum connectere machinam communem super reticulum machinae Debian statim ab eodem servo, et omnia denique connexa;

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

Ad Fenestra transeamus. In casu meo erat Windows Servo 2008R2 Latin Edition. Dux officialis te rogat ut rectorem primum instituas. Ratio perfecte describitur in clientelam readme adnexam fenestras, omnia facimus sicut scriptum est, omnia operatur. In XP etiam sine ullis quaestionibus laborat.

Post clientem fasciculum, clavem nostram conscendere conamur:

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. Aliquid abiit iniuriam. Arte Google utimur. In fragmentis commemoratis constantibus aliquid falsum esse, in parte server, tincidunt versionem protocolli mutaverunt cum in versionem 0.2.0 mutaverunt, sed hoc facere obliti sunt in cliente Vincere. Proposita solutio est constantem in fonte codicem mutare et clientem reficere.

Sed vere non vis huius agendi causa de Studio Visuali download. Sed vetus Hiew. In codice fons, perpetuus ut duplici verbo declaratur. Inspiciamus in tabella pro 0x00000106, reposuit cum 0x00000111. Memento, byte ordo praeposterus. Ex duobus par, commissuram:

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

Eeeee... sic!

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

Hoc finire potuit, sed musica non diu canebat. Post reboing servo, inveni machinam in cliente non ascendi!

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

Id et est. Etiam omnes scientes Google hoc mihi respondere non potuit. Eodem tempore mandatum est ut machinas quae praesto sunt servo exhibeant satis recte ostendit β€” hic est, clavis, conscendere potes. Conor ascendere ab Linux sub - laborat! Et si nunc de sub Windows tendo? Oh shit - it works!

Ultimus moechus: aliquid in servo codice non additur. Cum figmentum communicat, numerum USB descriptorum ex eo non legit. Et cum sub Linux machinam escendens, campus iste repletur. Infeliciter, nota mihi cum progressione sub Linux in gradu "facias && instituo". Solvitur ergo quaestio cum hack sordido addito ad /etc/rc.local

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

Pars finalis

Post aliquot fiddling, operatur. Optatum effectum consecutum est, nunc clavis ad PC (insuperatae, utique etiam), ad quasvis retis iacientes segmentum adscendi potest. Si vis, concha scriptione uti potes. Quod est delicatus - voluptas absolute libera est.
Spero experientiam meam adiuvabit habrazhiteli ut circumcirca rastellam quae in fronte impressa est. Gratias tibi ago pro attente!

Source: www.habr.com