- Startpagina
- Blog
- Hyper-V Seriële Poortconfiguratie: Stapsgewijze instructies
Hyper-V Seriële Poortconfiguratie: Stapsgewijze instructies
We hebben al de tijd genomen om de manieren door te nemen waarop je toegang krijgt tot COM-poorten in een virtuele machine (je kunt het artikel hier vinden.) Hoewel Serial to Ethernet Connector een uitstekende oplossing is voor COM in Hyper-V serial port passthrough, is het de moeite waard om een paar andere opties te bekijken om een COM-poort aan de Hyper-V seriële poort toe te voegen—die we hieronder zullen behandelen.
Hoe toegang te krijgen tot de seriële poort in Hyper-V
Als u verbinding moet maken met de seriële poort van een virtuele machine, hebt u de Serial Port Redirector nodig. Volg deze stappen om te leren hoe u deze tool gebruikt en om deze te gebruiken om toegang te krijgen tot de virtuele poort:
1. Download de Serial to Ethernet Connector op zowel de virtuele machine als het hostbesturingssysteem.
2. Begin met het openen van de app in de VM. Open het menu “Verbindingen” en selecteer “Nieuwe serververbinding”.
3. Vul de benodigde informatie in over de poort die je gaat delen, inclusief het nummer en de TCP-poort die wordt gebruikt om ermee te verbinden.
Opmerking: vink het selectievakje aan om de poort virtueel te maken.
4. Druk op “Aanmaken”.
5. Schakel nu op de hostmachine over naar Serieel naar Ethernet. Open “Externe verbindingen”.
6. Als alles correct is ingesteld, zou de poort van de virtuele machine in de lijst moeten verschijnen. Selecteer deze.
7. Stel de opties voor de clientverbinding in, zoals de poort die zal worden gebruikt om de gegevens te ontvangen.
8. Druk nogmaals op “Aanmaken” en je bent helemaal klaar.
Videohandleiding:
Hoe seriële hardware aan te sluiten op een virtuele machine met PipeDream
Voor gebruikers van virtuele machines die een COM-poort willen toevoegen aan Hyper-V-seriële poorten, is PipeDream een ideale optie. Deze seriële poort in de Hyper-V-tool draait via dezelfde server die Hyper-V host (wat een virtualisatiehost is), en overbrugt de kloof tussen virtuele machines en seriële poorten.
PipeDream werkt door gegevens te verzenden die van de seriële hardware worden ontvangen (wat er ook in de COM-poort is aangesloten), en helpt de virtuele machine om deze te herkennen en te benaderen (en omgekeerd).
Bovendien heeft PipeDream geen client-side element nodig om op een server te draaien, wat Hyper-V-seriële ondersteuning via passthrough nog handiger maakt. PipeDream vereist geen installatie (apparaat, software of anderszins) op de deelnemende virtuele machine(s)—waardoor de compatibiliteit met legacy OS/software wordt gemaximaliseerd en betrouwbare ondersteuning voor XP (en oudere) besturingssystemen wordt geboden.
PipeDream stelt gast-virtuele machines in staat om seriële poorten op de virtualisatiehost (of andere machines) te beheren. Deze tool werkt dankzij de ondersteuning van Hyper-V voor named pipes, wat betekent dat een netwerkverbinding niet nodig is voor communicatie. Maak simpelweg een pipenaam aan in Hyper-V, en PipeDream zal verbinding maken met het seriële apparaat van de gast-VM zodra u het PipeDream-programma start.
Disclaimer: PipeDream-seriële-poortsoftware in Hyper-V is compatibel met Microsofts Hyper-V, maar is een tool van derden zonder enige band met Microsoft. Ons gebruik van de term “Hyper-V” is niet bedoeld om een goedkeuring te impliceren of een affiliatie met Microsoft Corporation te suggereren.
Voor degenen met een Gen 1 Hyper-V virtuele machine
Volg de onderstaande stapsgewijze handleiding om te leren hoe je een COM-poort toevoegt aan Hyper-V.
1. Start Hyper-V Manager en open de instellingen van de gastmachine (de VM die u wilt opzetten);
2. Kies COM1 of COM2 in het nieuwe venster (te vinden in de hardwarelijst aan de linkerkant);
3. Dit is de seriële poort waarmee de virtuele machine toegang krijgt tot het seriële apparaat van uw keuze (oftewel: de poort die in de VM verschijnt kan verschillen van de fysieke seriële poort van de host);
4. Verbind de pijp met de naam “PipeDream” met de seriële poort van de gast (doe dit door op Named pipe te klikken en “PipeDream” als naam van de pijp in te voeren—zie de afbeelding hieronder ter referentie);
5. Voor degenen met een serieel apparaat op een externe computer: zorg ervoor dat het selectievakje “Externe computer” is aangevinkt en voer de naam van de machine in;
6. Klik op OK;
Hoe te configureren voor Gen-2 virtuele machines
Voor degenen die Gen-2 virtuele machines gebruiken, zijn de hierboven weergegeven pipe-instellingen niet configureerbaar via de GUI; daarom moeten gebruikers PowerShell-opdrachten implementeren.
1. Open een Powershell-sessie;
2. Voer Get-VM uit;
3. Kopieer de naam van de virtuele machine met de gewenste seriële poort;
4. Voer Set-VMComPort -Number < 1 of 2, voor seriële poort COM1 of COM2 > -Path \.pipePipeDream uit
5. Gebruik Get-VMComPort om de aanmaak van de pipe te bevestigen (zie de hieronder weergegeven schermafbeelding met een VM met de naam “SillyRabbit” als voorbeeld).
Maar er zijn toch geen COM-poorten voor Gen 2-VM's, toch…?
Eerlijk gezegd is het antwoord een mix van ja en nee (waarbij de “nee” vooral draait om de standaardmogelijkheden van Hyper-V voor het doorgeven van seriële poorten.) Het goede nieuws is dat dit aanpasbaar is!
De onderstaande schermafbeeldingen zijn van een Windows 8-VM (waarbij specifiek gebruik wordt gemaakt van media die in de vorige sectie zijn gemaakt, waarbij het stuurprogramma voor het op software gebaseerde toetsenbord is toegevoegd.)
In het onderstaande voorbeeld zie je dat de instellingen voor een eenvoudige gen-2 virtuele machine geen COM-poortopties hebben.
De reden hiervoor is dat, ongeacht of seriële poorten beschikbaar zijn of niet, Gen-2 Hyper-V Manager nooit COM-poorten weergeeft.
Hieronder kijken we even naar wat PowerShell te zeggen heeft:
Merk op hoe PowerShell twee beschikbare COM-poorten weergeeft? Als je echter Apparaatbeheer van de gastmachine opent, worden er geen COM-poorten weergegeven voor de VM.
Bekijk het onderstaande voorbeeld (met COM1) om een pipe-pad voor COM-poorten te configureren terwijl een virtuele machine wordt uitgevoerd:
Zoals eerder vermeld, wordt COM1 niet weergegeven wanneer u het Apparaatbeheer van de gastmachine controleert, maar zodra de VM is afgesloten en opnieuw is opgestart, is de gewenste COM-poort nu beschikbaar in de lijst (zie hieronder).
Voor degenen die ervaring hebben met kernal-debugging is het resterende proces vrij eenvoudig en rechttoe rechtaan—met slechts één kleine uitzondering die specifiek is voor Gen-2 VM’s (nog specifieker UEFI-gebaseerde computers die Secure Boot gebruiken.)
Via msconfig hebben we kernel-debugging voor de VM op COM1 ingeschakeld. Zodra we echter op OK klikten, verschijnt de volgende foutmelding:
Waarom? Omdat het beleid van Windows stelt dat Secure Boot en kerneldebugging niet compatibel zijn. Dit betekent dat gebruikers de virtuele machine moeten uitschakelen en vervolgens Secure Boot moeten uitschakelen in de firmware-instellingen.
- Gebruik msconfig opnieuw om kerneldebugging in te schakelen (dit keer zal het succesvol zijn);
- Herstart de VM;
- Maak verbinding met de pipe via de windbg van de bovenliggende partitie;
Conclusie
Samenvattend: hoewel Hyper-V geen directe fysieke COM-poort-passthrough naar virtuele machines biedt, kan seriële communicatie nog steeds worden gerealiseerd met behulp van named pipes, PowerShell-configuratie en gespecialiseerde redirection-tools. Deze methoden maken het mogelijk om met zowel Gen 1- als Gen 2-VM’s te werken voor taken zoals ondersteuning van legacy-software, hardware-integratie of debugging.
In scenario’s waarin directe seriële toegang niet praktisch is, kan een Serial to Ethernet Connector een effectief alternatief zijn. Door seriële data om te zetten in netwerkverkeer, maken dergelijke apparaten het mogelijk om COM-gebaseerde apparatuur via TCP/IP te benaderen en eenvoudig te delen met virtuele machines. In combinatie met software voor seriële poortredirection biedt deze aanpak meer flexibiliteit en vereenvoudigt het de toegang tot fysieke seriële apparaten in gevirtualiseerde Hyper-V-omgevingen.