Prosljeđivanje USB uređaja preko mreže pomoću USB mrežnih vrata.

💖 Sviđa vam se? Podijelite vezu sa svojim prijateljima

Dobar dan, prijatelji, drago mi je da ste pogledali moju stranicu, danas ćemo razmotriti pitanje kako organizirati usb preko mreže i kako ga koristiti u virtualizaciji. Tema je vrlo relevantna, a takav zadatak se pojavljuje sve češće.

usb preko mreže

Kao što već znate, virtualizacija je odavno ušla u naše živote. Kapaciteti poslužitelja rastu, a prirodno su se pojavile i tehnologije za njihovo racionalno korištenje, što podrazumijeva izolaciju i normalno korištenje resursa, što je dovelo do virtualnih strojeva koji se već koriste u hostingu i podatkovnim centrima. O svemu tome sam već govorio, ako vas zanima pogledajte linkove lijevo i gore.

Kao što znate ponekad licencirani programi, trebam za radni usb ključ. Ranije, u klasičnoj verziji, kada su postojali samo fizički poslužitelji, nije bilo problema s radom takve sheme, ali dolaskom virtualizacije izašlo je na vidjelo.

Nažalost, neki hipervizori nemaju mogućnost prosljeđivanja izravno s poslužitelja USB uređaji A. Primjer je Hyper-V iz Microsoft, koji od 208 još uvijek ne nosi takvu mogućnost, za razliku od vMvarea, koji to omogućuje, a već sam vam rekao kako proslijediti USB modem na vmware esxi.

Ne žurite se uzrujavati, pristaše diva iz Redmonda, tehnologija vam dolazi u pomoć USB priključak IP ili bilo gdje USB. USB preko IP-a omogućuje vam povezivanje usb preko mreže.

AnywhereUSB je malen mreža usb središte Ispod su primjeri modela na tržištu.

  • AnywhereUSB /2 - 2 USB priključka


  • AnywhereUSB/ 5 - 5 USB priključaka


  • AnywhereUSB /14 - 14 USB priključaka



Postavljanje AnywhereUSB

Pogledajmo kako je komad željeza konfiguriran za usb pristup preko mreže.

Evo kako će to izgledati.


Postoji nekoliko sučelja za konfiguriranje i upravljanje uređajem:
• Web sučelje za konfiguraciju, nadzor i administraciju;
• AnywhereUSB konfiguracijski uslužni program;
• Telnet sučelje naredbenog retka;
• Jednostavni mrežni protokol za upravljanje (SNMP).

Da biste konfigurirali uređaj, razmotrite web sučelje - kao najprikladniju i najjednostavniju opciju.

Upravljanje IP adresama

Postoji nekoliko opcija za dodjelu AnywhereUSB IP adrese:
• Statički IP;
• Dodjela dinamičkog IP-a - korištenje protokola dinamičke konfiguracije glavnog računala (DHCP);
• Automatsko privatno IP adresiranje (APIPA), najpoznatije kao Auto-IP;

Kako najviše razumiješ Pravi put ovo je statična ip adresa. Postavlja se u stavci Konfiguracija mreže.


U istom izborniku vrlo je zgodno postaviti mrežne usluge dostupne na njemu.



Na kartici Upravljanje vezama možete vidjeti trenutne veze.



E sad, što dalje treba napraviti na virtualnom stroju, ovdje je sve bezobrazno logično, tamo trebate instalirati drivere s AnywhereUSB-a i postaviti ip adresu uređaja. Kao što vidite, već sam ga povezao i ima internu IP adresu.


Pomoću posebna korisnost, Anywhere View može provjeriti dostupnost i zauzetost svih uređaja. Možda je ovo najlakši i najpouzdaniji način prosljeđivanja tokena, flash pogona i raznih modema na vaše virtualne strojeve, sami uređaji koštaju drugačije, ali ako ste već potrošili novac na softver i hipervizore, mislim da možete kupiti ovo ako je potrebno : ).


Ove upute su točne od verzije 2.

Čini se da zašto pisati nešto drugo kada postoji službena uputa? Međutim, ovdje postoji nešto čega nema.

Postoje dvije mogućnosti za prijenos USB uređaja sustav za goste:

  • prenijeti određeni uređaj "gostu";
  • prenijeti USB priključak na koji je ovaj uređaj spojen.

Prosljeđivanje USB uređaja

Ako imate USB ključ, ili vanjski disk, prikladnije je sam uređaj prenijeti u sustav za goste, bez obzira na koji je USB priključak ovaj uređaj fizički spojen. Uostalom, tijekom održavanja, sljedeći put se možemo spojiti na drugi konektor.

# lsusb Bus 002 Uređaj 002: ID 8087:8000 Intel Corp. Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 8087:8008 Intel Corp. Bus 001 UREĐAJI 001: ID 1D6B: 0002 Linux Foundation 2.0 BUSA ROOT HUB 004 UREĐAJI 001: ID 1D6B: 0003 Linux Foundation 3.0 Root Hub Bus 004: ID 051D: 0002 Američka konverzija Power NeimumriphipItble Awards Fundie 003: ID uređaja 003: :0002 American Power Conversion sabirnica za neprekidno napajanje 003 uređaj 002: ID 046d:c00c Logitech, Inc. Optical Wheel Mouse Bus 003 Uređaj 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Pronalazimo uređaj koji nam treba i uzimamo njegov ID koji ćemo koristiti.

Imao sam zadatak proslijediti UPS-ove.
(Situacija, zapravo, nije tipična, prije iz niza kako ne bi smjelo biti: Do servera i mrežni hardver Isporučena su 2 najjednostavnija besprekidna napajanja za radne stanice. Ispostavilo se da su UPS-ovi bili nježni i počeli su zavijati s razlogom ili bez njega. Kako bi brzo smanjili njihov glas i još se ne bavili upravljanjem UPS-om iz Debiana, odlučeno je spojiti dva besprekidna napajanja gostima Windowsa.)

U ovoj fazi otkrio sam da oba uređaja koja trebam imaju isti ID ... Ali pokušajmo.

Proslijeđeni uređaji registrirani su u konfiguracijska datoteka odgovarajući virtualni stroj.

# nano /etc/pve/qemu-server/101.conf usb0: host=051d:0002

Ponovno pokretanje. Uređaj je spojen, čini se da je sve u redu. Ali ovdje se sjećamo da je drugi uređaj s istim identifikatorom. Kako ih razlikovati? Doista, iskustvo je pokazalo da ako se dvama virtualnim strojevima dodijeli isti identifikator, tada će, kada se uključe, uzeti isti uređaj jedan od drugoga. Unatoč činjenici da postoji nekoliko USB uređaja s ovim identifikatorom u glavnom sustavu.

Ovdje se sjećamo da postoji još jedan način za prosljeđivanje.

Prosljeđivanje USB priključka

Potrebno je odrediti na koji priključak je spojen uređaj koji nam je potreban.

Prvi način:

# lsusb -t /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/15p, 480M |__ Port 4: Dev 2, Ako je 0, Class=HID, Driver=usbhid, 1.5M |__ Port 7: Dev 3, If 0, Class=HID, Driver=usbfs, 12M |__ Port 8: Dev 4, If 0, Class=HID, Driver=usbfs, 12M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/3p, 480M |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/ 8p, 480M /: Bus 01. Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/3p, 480M |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M

Kako se kasnije pokazalo, uređaji koji su mi potrebni nalaze se na sabirnici 3, priključcima 7 i 8. Ali za sada nam to nije očito, a evo druge opcije:

Qm monitor qm> info usbhost Bus 3, Addr 4, Port 8, Speed ​​​​12 Mb/s Class 00: USB uređaj 051d:0002, Back-UPS XS 650CI FW:892.R2.I USB FW:R2 Bus 3, Addr 3 , Port 7, Brzina 12 Mb/s Klasa 00: USB uređaj 051d:0002, Back-UPS XS 650CI FW:892.R2.I USB FW:R2 Bus 3, Addr 2, Port 4, Brzina 1,5 Mb /s Klasa 00: USB uređaj 046d:c00c, USB optički miš

Ovdje se jasno vidi tko je tko. A sad hrabro:

# nano /etc/pve/qemu-server/101.conf usb0: host=3-7

Za potpunu sliku dopunit ću upute primjerom iz službene dokumentacije.

Ova opcija je moguća:

Qm monitor qm> info usbhost Bus 3, Addr 2, Port 1.2, Speed ​​​​1.5 Mb/s Specifično za dobavljača: USB uređaj 0529:0001, HASP 2.17

Jedan od čitatelja bloga, Vovets666, isprobao je besplatni softver USBIP i ponudio se napisati članak o njemu.

Odricanje:
sve dolje opisano je moje osobno viđenje problema i načina rješavanja, što nije istina na posljednjem mjestu. Sasvim je moguće da postoje i druge opcije, rado ću čuti za njih. Kao upute za rad sa softverom koristio sam materijale pronađene na Internetu, ne sjećam se više gdje... Osim toga, kao Windows administrator, dosta sam površno upoznat s Linuxom, radio sam po rokovima i tu bilo je puno vremena za proučavanje materijala/plesova s ​​tamburama nisam, pa opisujem kako sam to radio, a siguran sam da ima i drugih načina.

Dakle, imamo virtualne strojeve - 1C poslužitelje, podignute na MSWindowsServer 2008R2. Softver zahtijeva HASP ključeve poslužitelja koji su povezani s njima za rad. Kao što znate, ne možete ih izravno povezati s VM-om na Hyper-V. Zadatak: nekako proslijediti HASP ključeve virtualnim strojevima, po mogućnosti uz minimalne dodatne troškove hardvera i licence.

(Offtopic: na 1C in U zadnje vrijeme pojavila se mogućnost softverskog licenciranja softvera, bez korištenja HASP ključeva (nešto poput aktivacije pomoću pin kodova). Ali postoje nijanse: zamjena za licencu s aktivacijom softvera nije besplatna, pri promjeni konfiguracije stroja potrebna je ponovna aktivacija, nakon određenog ograničenja, dopuštenje za aktivaciju ostaje prema nahođenju tehničke podrške, što nije led uopće. Stoga je odlučeno koristiti stari način s HASP ključevima).

Razmotrene opcije:

- metoda koju pruža Microsoft (iako za druge svrhe):
RemoteFX+RDP7.1. Nije mi se svidjelo iz razloga: potrebna vam je oprema s podrškom za RemoteFX, dodatne usluge (usluga pristupa udaljenoj radnoj površini) moraju se podići na 1C poslužitelju, RDP sesija mora stalno visjeti od glavnog računala do virtualnog stroja, preko kojeg ključ je proslijeđen, potrebna je klijentska licenca za pristup RDS-u. Možda griješim u bilo kojoj od stavki na ovom popisu, ali njihov ukupan broj hakira metodu u korijenu.

- hardverski uređaji trećih strana. Nedostaci: koštaju, osim toga, neki uređaji su imali problema s kompatibilnošću s korištenim operativnim sustavima (primjerice, Ubox 4100 koji mi imamo) i koje proizvođač nije namjeravao riješiti. Sada se čini da su problemi riješeni (kod drugih modela), ali talog ostaje.

- Softver treće strane. Nedostaci: Zahtijeva poseban stroj koji djeluje kao poslužitelj USB uređaja i obično se plaća. Nakon traženja
prihvatljivog softvera, pokazalo se da je od svih otkrivenih softvera jedino USBIP paket besplatan za komercijalnu upotrebu. Na njemu se zaustavilo.

Sama po sebi instalacija i konfiguracija softvera nije izazvala velike probleme, paket je uključivao kratki priručnik, plus internet.

USBIP () paket zahtijeva 2 konfigurirana stroja za rad: poslužitelj (ključ je izravno povezan s njim) i klijent (ovaj ključ se prosljeđuje njemu). poslužitelj
USBIP dio postoji samo pod Linuxom, klijentski dio postoji pod Linuxom i Windowsima (uključujući 7 i 2008R2).

1) Instaliranje poslužitelja (stroj na koji je spojen USB uređaj).

Koristimo stroj kao poslužitelj instaliran Linux. Koristio sam linux ubuntu v.11.04 (sastavljanje Lubuntua, koji je deklariran kao najmanje zahtjevan za resurse) kao najjednostavniji (za mene) sustav: instaliran bez ikakvih problema, automatski spaja nove spojene USB uređaje, nakon instalacije instaliraju se potrebne komponente zadano, osim toga, USBIP prisutan u spremištu. Kako bi se uštedjelo na hardveru, ovaj stroj je kreiran kao virtualni, podignut na postojećem ESXi 4.1 hostu, a zauzvrat je HASP ključ proslijeđen s hosta na standardni ESXi način.

Instalacija nije izazvala probleme: instaliramo sustav, spajamo ga na mrežu, izdajemo IP, instaliramo USBIP i komponente potrebne za rad preko paket managera. Osim toga, instalirani su VMware alati (budući da je ovaj stroj VM na ESXi).

Za svaki slučaj da vas podsjetim kako se to radi:

Iz VMware snap-ina povezujemo disk sa softverom (Inventory -> Virtual Machine -> Guest -> Install / Upgrade VMware Tools). S ovog diska raspakirajte arhivu sa softverom na radnu površinu. Pokrećemo terminal i u njega upisujemo:

<имя пользователя>@<имя машины>:~$ sudo<путь до файла>\vmware-install.pl --zadano

2) Podešavanje poslužiteljaUSBključevi.

Pokrećemo terminal. Daljnje akcije- iz naredbenog retka.

· Učitajte sljedeće module.

<имя пользователя>@<имя машины>:~$ sudo modprobe usbip

<имя пользователя>@<имя машины>:~$ sudo modprobe usbip_common_mod

Pokrenite usbip kao sistemski demon:

<имя пользователя>@<имя машины>:~$ sudo usbipd D

dobivamo:

Povežite usbip.ko s usb uređajem kako bi se mogao izvoziti!

<имя пользователя>@<имя машины>:~$

Pažnja! Prvo morate pokrenuti daemon, a tek onda spojiti uređaje, inače se mogu pojaviti greške na klijentu prilikom povezivanja. (vidi bilješke)

Za pregled povezanih USB uređaja izvršite naredbu

<имя пользователя>@<имя машины>:~$ lsusb

dobivamo popis povezanih USB uređaja s njihovim identifikatorima u obliku:

Autobus XXX Uređaj YYY: ID VendorID: DeviceID< Ime uređaja>

nešto kao:

Bus 002 uređaj 004: ID 0529:0001 Aladdin Knowledge Systems HASP v0.06

Sabirnica 002 Uređaj 003: ID 0e0f:0002 VMware, Inc. Virtualni USB Hub

Sabirnica 001 Uređaj 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Zapamtite kombinaciju VendorID:DeviceID

Izvršite naredbu:

<имя пользователя>@<имя машины>:~$ sudo usbip_bind_driver --popis

USBIP provjerava popis povezane opreme i ispisuje ga s njihovim ID-ovima sabirnice ovako:

busid 2-1 (0529:0001)

2-1:1,0 -> ništa

busid 2-2 (0e0f:0002)

2-2:1,0 -> glavčina

……..

U ovom slučaju, ID sabirnice koji označava USB uređaj koji nam je potreban je "2-1".

· Sada povezujemo uređaj s poslužiteljem. Upisujemo:

<имя пользователя>@<имя машины>::~$ sudo usbip_bind_driver --usbip 2-1

dobivamo:

** (proces:1483): DEBUG: 2-1:1.0 -> ništa

** (process:1483): DEBUG: napišite "add 2-1" u /sys/bus/usb/drivers/usbip/match_busid

** Poruka: povežite 2-1 s usbipom, dovršeno!

Uređaj je spojen na USBIP, pristup njemu s lokalnog poslužitelja je izgubljen.

Također možete vidjeti koji su uređaji povezani na USBIP ovaj trenutak. Da bismo to učinili, upisujemo:

<имя пользователя>@<имя машины>:~$ sudo usbip_bind_driver --popis

Dobivamo:

busid 2-1 (0529:0001)

2-1:1.0 -> usbip

busid 2-2 (0e0f:0002)

2-2:1,0 -> glavčina

Uređaj s bus-ID 2-1 spojen je na USBIP. Sustav može prenijeti podatke o ovom USB uređaju s vašeg sustava na udaljene klijente.

Postavljanje poslužitelja je dovršeno. Po potrebi možete dodavati i uklanjati.
izvezeni uređaji.

Mogućnostiusbip - linuxposlužitelji Upotreba: usbip_bind_driver

-?, --Pomozite poziv
reference
--usbip busid učiniti uređaj izvoznim
-ostali poslovi koristiti uređaj lokalnog
vozač
--popis print usb uređaji i njihovi
vozači
--popis2 print usb uređaji i njihovi
upravljački programi u raščlanjivom načinu rada
— alusbip učiniti sve uređaje izvoznim

3) Postavke MS Windows klijenta

· Preuzmite distribuciju. Trebat će nam obje verzije - 0.1 i 0.2.

· Instalirajte USB/IPEnumentator. Instalira se kao proizvoljni sistemski uređaj s upravljačkim programima na disku. Uzimamo upravljačke programe iz distribucijskog kompleta verzije 0.2:

Za Windows XP:

1. Raspakirajte datoteke u lokalnu mapu.

2. Na upravljačkoj ploči kliknite "Instalacija hardvera", u prozoru dobrodošlice čarobnjaka koji se otvori kliknite "Dalje".

3. Odaberite "Da, uređaj je već povezan" -> "Dalje".

4. Odaberite "Dodavanje novog uređaja" -> "Dalje".

5. Odaberite "Instaliraj hardver ručno odabran s popisa" -> "Dalje".

7. Odaberite "Instaliraj s diska", -> "Prikaz", odaberite mapu s raspakiranim upravljačkim programom -> "OK".

9. "Čarobnjak je spreman za instalaciju novog hardvera" -> Odaberite "Dalje" -> Gotovo".

Za Windows 7 (i 2008r2):

1. Da biste dopustili instalaciju nepotpisanih upravljačkih programa: pokrenite cmd iz
administrator i izvršite "bcdedit /settestsigningon".

2. Raspakirajte datoteke u lokalnu mapu..

3. Otvorite "Upravitelj uređaja".

4. Desnom tipkom miša kliknite na "naziv računala" -. "Instaliraj stari uređaj" (ili odaberite "Akcija" iz izbornika).

5. U prozoru dobrodošlice čarobnjaka koji se otvori kliknite Dalje.

6. Odaberite "Instaliraj hardver ručno odabran s popisa" -> "Dalje".

8. Odaberite "Instaliraj s diska", -> "Prikaz", odaberite mapu s raspakiranim upravljačkim programom -> "OK".

10. "Čarobnjak je spreman za instalaciju novog hardvera" -> Odaberite "Dalje" -> "Završi".

Sve te radnje također su opisane u datoteci "usage" koja dolazi uz USBIP paket na engleskom jeziku.

· USB uređaje označene kao izvozne povezujemo na server koji nam je potreban. Za povezivanje koristimo USBIP iz verzije distribucije 0.1

Pokrećemo cmd. Pogledajte koji su uređaji spremni za povezivanje:

put do usbipa :> usbip.exe -l

(server-ip - IP adresa poslužitelja USB uređaja iz točke 2.)

C:\ usbip> usbip l 192.168.1.13

usbip dbg: usbip_network.c: 229 (tcp_connect) pokušava 192.168.1.13 port 3240

usbip dbg: usbip_network.c: 249 (tcp_connect) spojen na 192.168.1.13:3240

— 192.168.1.13

usbip dbg: usbip.c: 423 (query_exported_devices) 2 uređaja za izvoz

2-1: nepoznati dobavljač: nepoznat proizvod (0529:0001)

: /sys/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb2/2-1

: nepoznata klasa / nepoznata podklasa / nepoznati protokol (ff/00/00)

: 0 - nepoznata klasa / nepoznata podklasa / nepoznati protokol (ff/00/00)

Kao rezultat toga, vidimo da je na poslužitelju 192.168.1.13 uređaj s ID-om sabirnice 2-1 spreman za povezivanje - onaj koji smo konfigurirali u koraku 2. Možda postoji više uređaja.

stazadousbip:> usbip . egz a < poslužitelj ip > USB iskaznica

USB-ID u našem slučaju 2-1.

Dobivamo više slova (popis parametara) i na kraju:

novi usb uređaj priključen na usbvbus priključak 2

USB uređaj trebao bi se pojaviti na klijentskom sustavu. Preporučljivo je ne zatvarati prozor terminala.

Mogućnostiusbip-prozoriklijent Upotreba: usbip

a, --priložiti Priključite daljinski USB uređaj
-x, --priložiti Priključite sav daljinski USB
uređaja na određenom hostu
-d, --odvojiti Odvojite uvezeni USB
uređaj
-l, --popis Popis izvezenih USB uređaja
p, --port Navedite status virtualnog USB priključka
-D, --debug ispis informacija o otklanjanju pogrešaka
-v, --verzija pokazati verziju
-?, -h, --pomoć ispišite ovu pomoć

Napomene: Problemi na koje ste naišli i rješenja:

1. Koristio sam verziju sustava 11.04 na kernelu 2.6. Nakon nadogradnje sustava na verziju 11.10 (kernel 3.0.4), usbip je prestao raditi - davao je grešku da komponenta nije pronađena. Morao sam vratiti auto i odbiti ažuriranja. S druge strane, budući da se radi o servisnom visoko specijaliziranom stroju i pristup mu je ograničen, to se nije smatralo kritičnim.

2. Isprva su se hasp ključevi odbijali povezati s klijentom, dajući pogrešku. Tijekom eksperimenata utvrđeno je da prvo morate pokrenuti usbip daemon, a tek onda spojiti ključeve na stroj. Nakon toga su pogreške nestale, ključevi su se počeli povezivati ​​bilo kojim redoslijedom, pogreške nije bilo moguće ponoviti. Ovo je samo jedna od onih neobičnosti koje sam spomenuo.

3. Nakon ponovnog pokretanja klijentskog VM - 1C poslužitelja, ponekad nije moguće spojiti neke od ključeva na njega - daje pogreške. Možda je to zbog sesija razmjene s USB uređajima koji vise na HASP poslužitelju. Liječi se ponovnim pokretanjem HASP poslužitelja i ponovnim prosljeđivanjem ključeva klijentu.

Danas postoji dosta načina za prosljeđivanje USB uređaja na drugo računalo ili virtualni stroj putem mreže.
Od najpopularnijih - hardvera kao što je AnywhereUSB i čisto softverskih proizvoda, od onih koje sam sam isprobao: USB Redirector i USB / IP.
Želio bih vam reći još jednu stvar zanimljiv način, koji radi izravno s QEMU emulatorom.
Također je dio projekta začina, koji službeno održava RedHat.

UsbRedir je otvoreni protokol za prosljeđivanje USB uređaja preko tcp-a na daljinski virtualni poslužitelj, razvijen uz podršku RedHat-a u sklopu projekta spice. Ali kako se pokazalo, mogu se vrlo uspješno koristiti i bez začina. Uloga poslužitelja je usbredirserver, koji petlja usb uređaj na određenom portu, a klijent je sam QEMU, koji emulira vezu eksportiranog usb uređaja na određeni usb kontroler vašeg virtualnog stroja. Zahvaljujući ovom pristupu, apsolutno svaki OS može se koristiti kao gostujući sustav, budući da on čak i ne zna da je uređaj daljinski proslijeđen, a sva logika pada na QEMU.

Prvo, nekoliko riječi o gore navedenim rješenjima

  • AnywhereUSB je prilično dobro rješenje, ali skupo, i ima neugodnih kvarova, na primjer, događa se ako zajednički flash disk otpadne, a zatim ga možete ponovno spojiti samo fizičkim uklanjanjem i umetanjem.
  • USB/IP - OpenSource projekt. Izgleda da je napušteno. Zapravo, prilično je bugovit. Kada se veza prekine, stroj se često potpuno zamrzne, a Windows prikazuje BSOD
  • USB Redirector - prekrasan softver. Dijeljenje uređaja s linuxa na linux je besplatno, u svim ostalim slučajevima već košta, ne toliko kao AnywhereUSB, ali nije besplatno kako bismo htjeli :)
Kao što vidite, postoji mnogo toga za izabrati, ali hajde da konačno isprobamo drugi način - UsbRedir?

Postavljanje virtualnog stroja

Kako biste imali mjesto za spajanje izvezenih uređaja, morate kreirati potrebne usb kontrolere na virtualnom računalu:

  • uhci - za USB1.0
  • ehci - za USB2.0
  • xhci - za USB3.0
Za qemu (bez libvirta)

Dodajte opcije naredbi za pokretanje VM-a:
-uređaj ich9-usb-ehci1,id=ehci,addr=1d.7,multifunction=on -uređaj ich9-usb-uhci1,id=uhci-1,addr=1d.0,multifunction=on,masterbus=ehci.0 ,firstport=0 -uređaj ich9-usb-uhci2,id=uhci-2,addr=1d.1,multifunction=on,masterbus=ehci.0,firstport=2 -uređaj ich9-usb-uhci3,id=uhci-3 ,addr=1d.2,multifunction=on,masterbus=ehci.0,firstport=4

Za libvirt
U izvornoj konfiguracijskoj datoteci virtualnog stroja u hostu <uređaji> uklonite sve USB kontrolere i dodajte sljedeći blok:

Usput, ako koristite spice, onda dodavanjem još 3 posebna uređaja na kontrolere, bit će moguće prenijeti usb uređaje sa spice klijenta na poslužitelj.

Primjer ispod spojlera

Za qemu
Dodajemo sljedeće opcije naredbi za pokretanje virtualnog stroja, uz kontrolere koje smo definirali ranije:
-chardev spicevmc,name=usbredir,id=usbredirchardev1 -uređaj usb-redir,chardev=usbredirchardev1,id=usbredirdev1,debug=3 -chardev spicevmc,name=usbredir,id=usbredirchardev2 -uređaj usb-redir,chardev=usbredirchardev2,id =usbredirdev2,debug=3 -chardev spicevmc,name=usbredir,id=usbredirchardev3 -usb-redir uređaja,chardev=usbredirchardev3,id=usbredirdev3,debug=3
Za libvirt
U početnoj konfiguracijskoj datoteci virtualnog stroja u čvoru <devices> dodajte sljedeće opcije, uz kontrolere koje smo definirali ranije:

Sada je sve spremno za prosljeđivanje.

Pokretanje poslužitelja

Paket usbredirserver može se pronaći u standardnim spremištima gotovo svih popularnih distribucija Linuxa.

Umetnemo USB flash pogon u računalo, pogledamo izlaz USB uređaja:
$ lsusb ... Bus 003 uređaj 011: ID 125f:c82a A-DATA Technology Co., Ltd. ...

Vidimo da je par vendorid:prodid jednak 125f:c82a, a kernel je odredio flash pogon 003-001 usbbus-usbaddr.

Sada ga podijelimo na portu 4000:

# Korištenje para vendorid:prodid $ usbredirserver -p 4000 125f:c82a # Korištenje para usbbus-usbaddr $ usbredirserver -p 4000 003-011

Povezivanje uređaja s virtualnim strojem

Preko opcija pri pokretanju VM-a

Uređaj za povezivanje s VM-om može se odrediti pri pokretanju dodavanjem sljedećih opcija naredbi za pokretanje

Za qemu
-chardev utičnica,id=usbredirchardev1,port=4000,host=192.168.1.123 -uređaj usb-redir,chardev=usbredirchardev1,id=usbredirdev1,bus=ehci.0,debug=4
Za libvirt
Ovaj blok se postavlja ispred oznake </uređaji>, pored kontrolera koje smo ranije definirali:
Može se izvršiti i naredbom virsh pričvrsni uređaj

Ili putem qemu-monitora

Idemo u hipervizor i u qemu-monitoru našeg stroja izvršavamo sljedeće naredbe:
# Dodajte naš uređaj chardev-add socket,id=usbredirchardev1,port=4000,host=192.168.1.123 # Spojite ga na ehci kontroler (USB-2.0) device_add usb-redir,chardev=usbredirchardev1,id=usbredirdev1,bus=ehci. 0,debug=4
Za isključivanje flash pogona dovoljna je sljedeća naredba:
uređaj_del usbredirdev1

To je sve, nakon ovih koraka, vaš VM će vidjeti vaš flash pogon i moći će raditi s njim izvorno.

Ako postoji mnogo uređaja i svi su isti

Ovdje se pojavio zanimljiv problem, kako proslijediti nekoliko identičnih uređaja različitim VM-ovima?
Pritom vrijedi napomenuti da svi uređaji imaju isti par vendorid:prodid, a par usbbus-usbaddr nije nimalo konstantan, samo trebate izvaditi i umetnuti uređaj, pa će on odmah promijeniti svoj usbaddr.

Riješio sam to s udevom.
Usput, ako ne razumijete sasvim kako udev radi, Debian Wiki ima sjajan

I zato počnimo

Prvo, moramo saznati serijski broj našeg uređaja, po kojem ćemo ga identificirati u udev:

Pokrenimo udev monitor:
$ udevadm monitor --okoliš --udev
I umetnemo naš uređaj, nakon toga ćemo odmah vidjeti popis varijabli za ovaj uređaj koje je udev ljubazno inicijalizirao za nas:
... UDEV add /devices/virtual/bdi/8:16 (bdi) ACTION=dodaj DEVPATH=/devices/virtual/bdi/8:16 ID_SERIAL_SHORT=11C130317234004B SEQNUM=4352 SUBSYSTEM=bdi USEC_INITIALIZED=189056149826 ...
Informacije o serijskom broju i ostalim atributima mogu se dobiti i na drugi način, ali treba imati na umu da ćemo za pisanje pravila koristiti varijable iz gornje naredbe, a ne atribute iz donje naredbe. U suprotnom, okidač za uklanjanje neće se aktivirati kada se uređaj odspoji.
$ udevadm info -a -n /dev/bus/usb/003/011 | grep "(serijski)"

Kreirajmo sada datoteku /etc/udev/rules.d/99-usb-serial.rules i u nju upišimo sljedeća pravila:
ACTION=="dodaj", ENV(ID_SERIAL_SHORT)="11C130317234004B", RUN+="/usr/bin/usbredirserver -p 4000 $attr(busnum)-$attr(devnum)" ACTION=="ukloni", ENV(ID_SERIAL_SHORT )="11C130317234004B", RUN+="/usr/bin/fuser -k 4000/tcp"

Ponovno učitaj udev pravila:
$ udevadm kontrola --reload-rules
Gotovo, sada kada je naš uređaj spojen, automatski će se prokopati do porta koji nam treba, a kada se odspoji, usbredirserver će prestati raditi.
Po analogiji dodajemo i druge uređaje.

To je sve. Hvala vam na vašem interesu:)

USB Network Gate je program koji korisnicima omogućuje spajanje USB uređaja spojenih na druga računala putem IP kanala.

Na tržištu postoje različite izvedbe daljinskog upravljanja. USB veze uređaja, hardvera i softvera. Neki od njih zahtijevaju određena znanja i vještine od korisnika, u nekim slučajevima postavljanje može potrajati dugo. USB Network Gate me iznenadio svojom jednostavnošću. Skinuo sam program, instalirao ga, kliknuo na gumb Share i uređaj je odmah dostupan za povezivanje na udaljenom računalu s instaliranim klijentom.

USB mrežna vrata mogu biti nezamjenjiva, na primjer, pri korištenju USB tokeni na RDP poslužitelju program vam omogućuje konfiguriranje ekskluzivnog pristupa uređajima za zasebnog korisnika udaljene radne površine, izolirajući ga od ostalih korisnika. Program se također može koristiti u virtualnom okruženju, ako se iz nekog razloga uređaj ne može izravno spojiti. Postoje verzije za Windows, Linux (RPM i Deb paketi), Apple OS X i, što je najzanimljivije, za Android. Sada o tome kako to radi.

poslužitelj

Program je i poslužitelj i klijent. Prilikom pokretanja prikazuje sve USB uređaje spojene na računalo prema zadanim postavkama. Ali možete prikazati i prilagoditi opći pristup u sve luke.

Moguće je zasebno konfigurirati vezu za svaki uređaj ili priključak, dopustiti vezu samo za određena adresa. Za zaštitu veze omogućena je autorizacija i enkripcija.


Klijent

Kada koristite USB Network Gate kao klijenta, aplikacija skenira lokalna mreža za prisutnost poslužitelja prikazuje sve uređaje dostupne za povezivanje. Ako se poslužitelj nalazi na drugoj podmreži, na primjer kada je povezan putem VPN-a, možete ga dodati pomoću gumba "Dodaj poslužitelj". Nakon što sam podijelio pisač, pojavio se na popisu dostupnih za povezivanje na mom MacBooku. Osim printera, spojio sam USB HDD s HFS + particijama se također spojio, ali su particije bile montirane oko tri minute, očito zbog velikog volumena.

Sažetak

Probna verzija omogućuje vam da otvorite pristup samo jednom uređaju, registriranom - ovisno o razini licenci, od jedne do $89, 95 do neograničeno $699,95 . Ako trebate brzo spojiti uređaj preko mreže, USB Network Gate je ono što vam treba, pogotovo ako nemate dobro znanje o hardveru računala.



reci prijateljima