Vi har redan tagit oss tid att gå igenom sätten att få åtkomst till COM-portar i en virtuell maskin (du hittar artikeln här.) Även om Serial to Ethernet Connector är en utmärkt lösning för COM i Hyper-V med passthrough av seriell port, är det värt att titta på några andra alternativ för att lägga till en COM-port till Hyper-V:s seriella port—vilket vi går igenom nedan.
Hur man får åtkomst till seriell port i Hyper-V
Om du behöver ansluta till den seriella porten på en virtuell dator behöver du Serial Port Redirector. Följ dessa steg för att lära dig hur du använder det här verktyget och använder det för att komma åt den virtuella porten:
1. Hämta Serial to Ethernet Connector på både den virtuella maskinen och värdoperativsystemet.
2. Börja med att öppna appen i den virtuella maskinen. Öppna menyn ”Anslutningar” och välj ”Ny serveranslutning”.
3. Fyll i nödvändig information om porten du ska dela, inklusive dess nummer och den TCP-port som används för att ansluta till den.
Obs: markera kryssrutan för att göra porten virtuell.
4. Tryck på ”Skapa”.
5. Byt nu till Seriell till Ethernet på värddatorn. Öppna ”Fjärranslutningar”.
6. Om allt ställdes in korrekt ska den virtuella maskinens port visas i listan. Välj den.
7. Ställ in klientanslutningsalternativen, till exempel den port som ska användas för att ta emot data.
8. Tryck på ”Skapa” en gång till, och du är klar.
Videohandledning:
Hur du ansluter seriell hårdvara till en virtuell maskin med PipeDream
För användare av virtuella maskiner som vill lägga till en COM-port till Hyper-V:s serieportar är PipeDream ett idealiskt alternativ. Detta serieportsverktyg i Hyper-V körs via samma server som är värd för Hyper-V (som är en virtualiseringsvärd), och överbryggar gapet mellan virtuella maskiner och serieportar.
PipeDream fungerar genom att överföra data som tas emot från seriehårdvaran (vad som än är anslutet till COM-porten) och hjälper den virtuella maskinen att känna igen och få åtkomst till den (och vice versa).
Dessutom behöver PipeDream ingen klientsideskomponent för att köras på en server, vilket gör Hyper-V:s serieportsstöd med passthrough ännu mer bekvämt. PipeDream kräver ingen installation (enhet, programvara eller annat) på den/de deltagande virtuella maskinen/maskinerna – vilket maximerar kompatibiliteten med äldre operativsystem/programvara och ger tillförlitligt stöd för XP (och äldre) operativsystem.
PipeDream låter virtuella gästmaskiner styra seriella portar på virtualiseringsvärden (eller andra maskiner). Det här verktyget fungerar tack vare Hyper-V:s stöd för namngivna rör, vilket innebär att en nätverksanslutning inte är nödvändig för kommunikation. Skapa bara ett rörnamn i Hyper-V, så ansluter PipeDream till gäst-VM:ens seriella enhet när du startar PipeDream-programmet.
Ansvarsfriskrivning: PipeDream-programvara för seriella portar i Hyper-V är kompatibel med Microsofts Hyper-V, men är ett tredjepartsverktyg utan koppling till Microsoft. Vår användning av termen ”Hyper-V” är inte avsedd att utgöra ett godkännande av eller en anknytning till Microsoft Corporation.
För de som har en Gen 1 Hyper-V virtuell maskin
Följ steg-för-steg-guiden nedan för att lära dig hur du lägger till en COM-port i Hyper-V.
1. Kör Hyper-V Manager och öppna gästmaskinens inställningar (den VM du vill etablera);
2. Välj COM1 eller COM2 i det nya fönstret (finns i hårdvarulistan till vänster);
3. Detta är den seriella porten som gör att den virtuella maskinen kan komma åt den seriella enheten du väljer (dvs. porten som visas i VM:n kan skilja sig från värdens fysiska seriella port);
4. Anslut röret med namnet “PipeDream” till gästens seriella port (gör detta genom att klicka på Namngivet rör och skriva “PipeDream” som rörets namn—se bilden nedan som referens);
5. För dem som har en seriell enhet på en fjärrdator, se till att kryssrutan ”Fjärrdator” är markerad och ange datorns namn;
6. Klicka på OK;
Hur man konfigurerar för virtuella Gen-2-datorer
För de som kör Gen-2-virtuella datorer går rörinställningarna som visas ovan inte att konfigurera via GUI:t, därför måste användarna implementera Powershell-kommandon.
1. Öppna en Powershell-session;
2. Kör Get-VM;
3. Kopiera namnet på den virtuella maskinen med önskad serieport;
4. Kör Set-VMComPort -Number < 1 eller 2, för seriell port COM1 eller COM2 > -Path \.pipePipeDream
5. Använd Get-VMComPort för att bekräfta skapandet av pipen (se skärmbilden som visas nedan med en VM med namnet ”SillyRabbit” som exempel).
Men det finns väl inga COM-portar för Gen 2-VM:ar, eller hur…?
Ärligt talat är svaret en blandning av ja och nej (där ”nej” främst kretsar kring standardfunktionerna för Hyper-V:s vidarebefordran av seriell port.) Den spännande nyheten är att detta går att justera!
Skärmbilderna nedan är från en Windows 8-VM (som specifikt använder media som skapades i föregående avsnitt där drivrutinen för det programvarubaserade tangentbordet lades till.)
I exemplet nedan ser du att inställningarna för en grundläggande gen-2-virtuell dator saknar alternativ för COM-portar.
Anledningen är att, oavsett om seriella portar är tillgängliga eller inte, visar Gen-2 Hyper-V Manager aldrig COM-portar.
Nedan tar vi en titt på vad PowerShell har att säga:
Lägg märke till hur PowerShell visar två tillgängliga COM-portar? Men om du öppnar gästdatorns Enhetshanterare kommer det inte att finnas några COM-portar listade för den virtuella maskinen.
Kolla in exemplet nedan (med COM1) för att konfigurera en rörsökväg för COM-portar medan en virtuell maskin körs:
Som nämnt tidigare visas inte COM1 när du kontrollerar gästdatorns Enhetshanterare – men när VM:en har stängts av och startats om kommer den önskade COM-porten nu att vara tillgänglig i listan (se nedan.)
För de som har erfarenhet av kärndebuggning är den återstående processen ganska enkel och okomplicerad – med bara ett mindre undantag som är specifikt för Gen-2-VM:ar (ännu mer specifikt UEFI-baserade datorer som använder Secure Boot.)
Via msconfig har vi aktiverat kernel-felsökning för den virtuella maskinen på COM1. Men när vi klickade på OK visas följande felmeddelande:
Varför? Eftersom Windows policy anger att Secure Boot och kernel debugging inte är kompatibla. Det innebär att användare ska stänga av den virtuella maskinen och sedan inaktivera Secure Boot i firmwareinställningarna.
- Använd msconfig igen för att aktivera kernel-felsökning (den här gången kommer det att lyckas);
- Starta om VM:n;
- Anslut till pipen via föräldrapartitionens windbg;
Slutsats
Sammanfattningsvis, även om Hyper-V inte erbjuder direkt passthrough av fysiska COM-portar till virtuella maskiner, kan seriell kommunikation fortfarande uppnås med hjälp av namngivna pipes, PowerShell-konfiguration och specialiserade omdirigeringsverktyg. Dessa metoder gör det möjligt att arbeta med både Gen 1- och Gen 2-VM:ar för uppgifter som stöd för äldre programvara, hårdvaruintegration eller felsökning.
I scenarier där direkt seriell åtkomst inte är praktisk kan Serial to Ethernet Connector vara ett effektivt alternativ. Genom att omvandla seriell data till nätverkstrafik gör sådana enheter att COM-baserad utrustning kan nås över TCP/IP och enkelt delas med virtuella maskiner. I kombination med programvara för omdirigering av serieportar erbjuder detta tillvägagångssätt större flexibilitet och förenklar åtkomst till fysiska seriella enheter i virtualiserade Hyper-V-miljöer.