Am dedicat deja timp pentru a trece în revistă modalitățile prin care se poate accesa porturile COM într-o mașină virtuală (puteți găsi articolul aici.) Deși Serial to Ethernet Connector este o soluție excelentă pentru COM în passthrough-ul portului serial Hyper-V, merită să verificați și câteva alte opțiuni pentru a adăuga un port COM la portul serial Hyper-V — pe care le vom prezenta mai jos.
Cum să accesezi portul serial în Hyper-V
Dacă trebuie să vă conectați la portul serial al unei mașini virtuale, veți avea nevoie de Redirectorul de port serial. Urmați acești pași pentru a afla cum să utilizați acest instrument și să îl folosiți pentru a accesa portul virtual:
1. Obțineți Conectorul Serial către Ethernet atât pe mașina virtuală, cât și pe sistemul de operare gazdă.
2. Începeți prin a deschide aplicația în mașina virtuală. Deschideți meniul „Conexiuni” și selectați „Conexiune nouă la server”.
3. Completează informațiile necesare despre portul pe care urmează să îl partajezi, inclusiv numărul acestuia și portul TCP folosit pentru conectare.
Notă: bifează caseta de selectare pentru a face portul virtual.
4. Apăsați „Creați”.
5. Acum, treceți la Serial to Ethernet pe mașina gazdă. Deschideți „Remote Connections”.
6. Dacă totul a fost setat corect, portul mașinii virtuale ar trebui să apară în listă. Selectează-l.
7. Setați opțiunile de conexiune ale clientului, cum ar fi portul care va fi utilizat pentru a primi datele.
8. Apăsați din nou pe „Creați” și ați terminat.
Tutorial video:
Cum să conectați hardware serial la o mașină virtuală cu PipeDream
Pentru utilizatorii de Mașini Virtuale care doresc să adauge un port COM la porturile seriale Hyper-V, PipeDream este o opțiune ideală. Acest instrument pentru porturi seriale în Hyper-V rulează pe același server care găzduiește Hyper-V (care este o gazdă de virtualizare), reducând distanța dintre mașinile virtuale și porturile seriale.
PipeDream funcționează prin transmiterea datelor primite de la hardware-ul serial (orice este conectat la portul COM) și ajută Mașina Virtuală să îl recunoască și să îl acceseze (și invers).
În plus, PipeDream nu are nevoie de un element pe partea de client pentru a rula pe un server, ceea ce face ca passthrough-ul pentru suportul serial Hyper-V să fie și mai convenabil. PipeDream nu necesită nicio instalare (dispozitiv, software sau altceva) pe mașina(mașinile) virtuală(e) participantă(e)—maximizând astfel compatibilitatea cu sistemele de operare/software moștenite și oferind suport fiabil pentru sistemele de operare XP (și mai vechi).
PipeDream permite mașinilor virtuale guest să controleze porturile seriale de pe gazda de virtualizare (sau de pe alte mașini). Acest instrument funcționează datorită suportului Hyper-V pentru pipe-uri denumite, ceea ce înseamnă că nu este necesară o conexiune de rețea pentru comunicare. Trebuie doar să creați un nume de pipe în Hyper-V, iar PipeDream se va conecta la dispozitivul serial al VM-ului guest odată ce porniți programul PipeDream.
Declinare a responsabilității: Software-ul PipeDream pentru porturi seriale în Hyper-V este compatibil cu Hyper-V de la Microsoft, dar este un instrument terț, fără nicio afiliere cu Microsoft. Utilizarea de către noi a termenului „Hyper-V” nu are scopul de a aproba sau de a ne afilia cu Microsoft Corporation.
Pentru cei cu o mașină virtuală Hyper-V Gen 1
Urmați ghidul pas cu pas de mai jos pentru a afla cum să adăugați portul COM în Hyper-V.
1. Rulați Managerul Hyper-V și deschideți Setările mașinii guest (VM-ul pe care doriți să îl configurați);
2. Alegeți COM1 sau COM2 din fereastra nouă (situată în lista de hardware din stânga);
3. Acesta este portul serial care permite mașinii virtuale să acceseze dispozitivul serial ales de dvs. (cunoscut și ca portul care apare în VM poate diferi de portul serial fizic al gazdei);
4. Conectați conducta denumită „PipeDream” la portul serial al oaspetelui (faceți acest lucru făcând clic pe Conductă denumită și tastați „PipeDream” ca nume al conductei—consultați imaginea de mai jos pentru referință);
5. Pentru cei cu un dispozitiv serial pe un computer la distanță, asigurați-vă că este bifată caseta de selectare „Computer la distanță” și introduceți numele mașinii;
6. Faceți clic pe OK;
Cum se configurează pentru mașinile virtuale Gen-2
Pentru cei care rulează mașini virtuale Gen-2, setările de conductă afișate mai sus nu sunt configurabile folosind interfața GUI, astfel, utilizatorii trebuie să implementeze comenzi Powershell.
1. Deschideți o sesiune Powershell;
2. Executați Get-VM;
3. Copiați numele mașinii virtuale cu portul serial dorit;
4. Executați Set-VMComPort -Number < 1 sau 2, pentru portul serial COM1 sau COM2 > -Path \.pipePipeDream
5. Utilizați Get-VMComPort pentru a confirma crearea conductei (consultați captura de ecran afișată mai jos, folosind o mașină virtuală numită „SillyRabbit” în scopuri de exemplu).
Dar nu există porturi COM pentru VM-urile Gen 2, nu-i așa…?
Franc vorbind, răspunsul este un amestec de da și nu (iar „nu”-ul este centrat în principal pe capacitățile implicite de passthrough ale portului serial Hyper-V.) Vestea interesantă este că acest lucru poate fi ajustat!
Capturile de ecran de mai jos sunt dintr-un VM Windows 8 (utilizând în mod specific mediul creat în secțiunea anterioară, unde a fost adăugat driverul pentru tastatura bazată pe software.)
În exemplul de mai jos, vei vedea că setările pentru o mașină virtuală de bază gen-2 nu au opțiuni pentru portul COM.
Motivul fiind că, indiferent dacă porturile seriale sunt disponibile sau nu, Gen-2 Hyper-V Manager nu afișează niciodată porturile COM.
Mai jos vom arunca o privire asupra a ceea ce are de spus PowerShell:
Observați cum PowerShell afișează două porturi COM disponibile? Totuși, dacă deschideți Managerul de dispozitive al mașinii invitate, nu vor fi listate niciun port COM pentru VM.
Consultați exemplul de mai jos (folosind COM1) pentru a configura o cale de tip pipe pentru porturile COM în timp ce o mașină virtuală rulează:
Așa cum s-a menționat anterior, atunci când se verifică Managerul de dispozitive al mașinii invitate, COM1 nu este afișat — dar odată ce VM-ul este oprit și repornit, portul COM dorit va fi acum disponibil din listă (vedeți mai jos.)
Pentru cei cu experiență în depanarea nucleului, procesul rămas este destul de simplu și direct—cu doar o mică excepție specifică VM-urilor Gen-2 (mai exact, calculatoare bazate pe UEFI care utilizează Secure Boot.)
Prin msconfig, am activat depanarea kernelului pentru VM pe COM1. Totuși, după ce am făcut clic pe OK, apare următorul mesaj de eroare:
De ce? Deoarece politica Windows precizează că Secure Boot și depanarea kernelului nu sunt compatibile. Aceasta înseamnă că utilizatorii ar trebui să oprească mașina virtuală, apoi să dezactiveze Secure Boot din setările firmware-ului.
- Utilizați din nou msconfig pentru a activa depanarea kernelului (de această dată va reuși);
- Reporniți VM-ul;
- Conectați-vă la pipe prin windbg din partiția părinte;
Concluzie
În concluzie, deși Hyper-V nu oferă passthrough direct al portului COM fizic către mașinile virtuale, comunicarea serială poate fi realizată în continuare folosind conducte denumite, configurare PowerShell și instrumente specializate de redirecționare. Aceste metode fac posibilă lucrul atât cu mașini virtuale Gen 1, cât și Gen 2 pentru sarcini precum suport pentru software legacy, integrare hardware sau depanare.
În scenariile în care accesul serial direct nu este practic, Serial to Ethernet Connector poate fi o alternativă eficientă. Prin convertirea datelor seriale în trafic de rețea, astfel de dispozitive permit ca echipamentele bazate pe COM să fie accesate prin TCP/IP și partajate cu ușurință cu mașinile virtuale. Combinate cu software de redirecționare a portului serial, această abordare oferă o flexibilitate mai mare și simplifică accesul la dispozitivele seriale fizice în medii Hyper-V virtualizate.