Vi har allerede taget os tid til at gennemgå måderne, hvorpå man kan få adgang til COM-porte i en virtuel maskine (du kan finde artiklen her.) Selvom Serial to Ethernet Connector er en fremragende løsning til COM i Hyper-V passthrough af seriel port, er det værd at se nærmere på et par andre muligheder for at tilføje COM-port til Hyper-V seriel port—som vi vil gennemgå nedenfor.
Sådan får du adgang til seriel port i Hyper-V
Hvis du har brug for at oprette forbindelse til en virtuel maskines serielle port, skal du bruge Serial Port Redirector. Følg disse trin for at lære, hvordan du bruger dette værktøj og bruger det til at få adgang til den virtuelle port:
1. Hent Serial to Ethernet Connector på både den virtuelle maskine og værtsoperativsystemet.
2. Start med at åbne appen i VM’en. Åbn menuen “Forbindelser”, og vælg “Ny serverforbindelse”.
3. Udfyld de nødvendige oplysninger om den port, du vil dele, herunder dens nummer og den TCP-port, der bruges til at oprette forbindelse til den.
Bemærk: Sæt kryds i afkrydsningsfeltet for at gøre porten virtuel.
4. Tryk på “Opret”.
5. Skift nu til Serial to Ethernet på værtsmaskinen. Åbn “Fjernforbindelser”.
6. Hvis alt blev indstillet korrekt, bør den virtuelle maskines port vises på listen. Vælg den.
7. Indstil klientforbindelsesindstillingerne, såsom den port, der vil blive brugt til at modtage dataene.
8. Tryk på “Opret” igen, og så er du færdig.
Videovejledning:
Hvordan du forbinder seriel hardware til en virtuel maskine med PipeDream
For brugere af virtuelle maskiner, der ønsker at tilføje en COM-port til Hyper-V’s serielle porte, er PipeDream en ideel mulighed. Dette værktøj til seriel port i Hyper-V kører via den samme server, der hoster Hyper-V (som er en virtualiseringsvært), og bygger bro mellem virtuelle maskiner og serielle porte.
PipeDream fungerer ved at transmittere data, der modtages fra den serielle hardware (uanset hvad der er tilsluttet COM-porten), og hjælper den virtuelle maskine med at genkende og få adgang til den (og omvendt).
Derudover behøver PipeDream ikke et klient-side element for at køre på en server, hvilket gør Hyper-V seriel support passthrough endnu mere praktisk. PipeDream kræver ingen installation (enhed, software eller andet) på den/de deltagende virtuelle maskine(r)—hvilket maksimerer kompatibiliteten med ældre OS/software samt pålidelig understøttelse af XP (og ældre) operativsystemer.
PipeDream giver gæste-virtuelle maskiner mulighed for at styre serielle porte på virtualiseringsværten (eller andre maskiner). Dette værktøj fungerer takket være Hyper-V’s understøttelse af navngivne pipes, hvilket betyder, at en netværksforbindelse ikke er nødvendig for kommunikation. Opret blot et pipe-navn i Hyper-V, og PipeDream vil oprette forbindelse til gæste-VM’ens serielle enhed, når du starter PipeDream-programmet.
Ansvarsfraskrivelse: PipeDream-software til seriel port i Hyper-V er kompatibel med Microsofts Hyper-V, men er et tredjepartsværktøj uden nogen tilknytning til Microsoft. Vores brug af termen “Hyper-V” er ikke ment som en godkendelse af eller tilknytning til Microsoft Corporation.
For dem med en Gen 1 Hyper-V-virtuel maskine
Følg den trin-for-trin-guide nedenfor for at lære, hvordan du tilføjer COM-port til Hyper-V.
1. Kør Hyper-V Manager og åbn gæstemaskinens indstillinger (den VM, du vil etablere);
2. Vælg COM1 eller COM2 i det nye vindue (placeret i hardwarelisten til venstre);
3. Dette er den serielle port, der giver den virtuelle maskine adgang til den serielle enhed efter dit valg (også kendt som den port, der vises i VM’en, kan afvige fra værtens fysiske serielle port);
4. Tilslut pipen med navnet “PipeDream” til gæstens serielle port (gør dette ved at klikke på Named pipe og indtaste “PipeDream” som pipens navn—se billedet nedenfor som reference);
5. For dem med en seriel enhed på en fjerncomputer skal du sørge for, at afkrydsningsfeltet “Fjerncomputer” er markeret, og indtaste maskinens navn;
6. Klik på OK;
Sådan konfigurerer du til Gen-2 virtuelle maskiner
For dem, der kører Gen-2 virtuelle maskiner, kan de ovenfor viste pipe-indstillinger ikke konfigureres via GUI’en, og derfor skal brugere implementere Powershell-kommandoer.
1. Åbn en Powershell-session;
2. Udfør Get-VM;
3. Kopiér navnet på den virtuelle maskine med den ønskede serielle port;
4. Udfør Set-VMComPort -Number < 1 eller 2, for seriel port COM1 eller COM2 > -Path \.pipePipeDream
5. Brug Get-VMComPort til at bekræfte oprettelsen af pipen (se skærmbilledet vist nedenfor, hvor en VM med navnet “SillyRabbit” bruges som eksempel).
Men der er ikke COM-porte til Gen 2-VM'er, vel…?
Ærligt talt er svaret en blanding af ja og nej (hvor “nej” primært drejer sig om Hyper-V’s standardmuligheder for passthrough af seriel port.) Den spændende nyhed er, at dette kan justeres!
Skærmbillederne nedenfor er fra en Windows 8 VM (som specifikt bruger medie oprettet i det forrige afsnit, hvor driveren til det softwarebaserede tastatur blev tilføjet.)
I eksemplet nedenfor kan du se, at indstillingerne for en grundlæggende gen-2 virtuel maskine mangler COM-portmuligheder.
Årsagen er, at uanset om serielle porte er tilgængelige eller ej, viser Gen-2 Hyper-V Manager aldrig COM-porte.
Nedenfor vil vi tage et kig på, hvad PowerShell har at sige:
Bemærk, hvordan PowerShell viser to tilgængelige COM-porte? Hvis du derimod åbner gæstemaskinens Enhedshåndtering, vil der ikke være nogen COM-porte angivet for VM’en.
Se eksemplet nedenfor (med COM1) for at konfigurere en pipe-sti til COM-porte, mens en virtuel maskine kører:
Som nævnt tidligere vises COM1 ikke, når du kontrollerer gæstemaskinens Enhedshåndtering — men når VM’en lukkes ned og genstartes, vil den ønskede COM-port nu være tilgængelig på listen (se nedenfor).
For dem, der har erfaring med kernal debugging, er den resterende proces ret enkel og ligetil—med blot én mindre undtagelse, der er specifik for Gen-2 VM’er (endnu mere specifikt UEFI-baserede computere, der bruger Secure Boot.)
Via msconfig har vi aktiveret kernefejlfinding for VM’en på COM1. Men da vi klikkede på OK, vises følgende fejlmeddelelse:
Hvorfor? Fordi Windows’ politik angiver, at Secure Boot og kernel debugging ikke er kompatible. Det betyder, at brugere bør slukke den virtuelle maskine og derefter deaktivere Secure Boot i firmwareindstillingerne.
- Brug msconfig igen for at aktivere kernel-fejlfinding (denne gang vil det lykkes);
- Genstart VM’en;
- Opret forbindelse til pipen via den overordnede partitions windbg;
Konklusion
Sammenfattende kan seriel kommunikation, selvom Hyper-V ikke tilbyder direkte passthrough af fysiske COM-porte til virtuelle maskiner, stadig opnås ved hjælp af navngivne pipes, PowerShell-konfiguration og specialiserede omdirigeringsværktøjer. Disse metoder gør det muligt at arbejde med både Gen 1- og Gen 2-VM’er til opgaver som understøttelse af ældre software, hardwareintegration eller fejlfinding.
I scenarier, hvor direkte seriel adgang ikke er praktisk, kan Serial to Ethernet Connector være et effektivt alternativ. Ved at konvertere serielle data til netværkstrafik gør sådanne enheder det muligt at få adgang til COM-baseret udstyr via TCP/IP og nemt dele det med virtuelle maskiner. Kombineret med software til omdirigering af serielle porte giver denne tilgang større fleksibilitet og forenkler adgangen til fysiske serielle enheder i virtualiserede Hyper-V-miljøer.