Már szántunk időt arra, hogy áttekintsük, hogyan lehet hozzáférni a COM-portokhoz egy virtuális gépben (a cikket itt találja.) Bár a Serial to Ethernet Connector nagyszerű megoldás a Hyper-V soros port passthrough esetén a COM-portokhoz, érdemes megnézni néhány másik lehetőséget is a COM-port Hyper-V soros porthoz való hozzáadására—ezeket alább ismertetjük.
Hogyan férhet hozzá a soros porthoz a Hyper-V-ben
Ha egy virtuális gép soros portjához kell csatlakoznia, szüksége lesz a Soros Port Átirányítóra. Kövesse az alábbi lépéseket, hogy megtudja, hogyan használhatja ezt az eszközt, és hogyan érheti el vele a virtuális portot:
1. Szerezze be a Serial to Ethernet Connectort mind a virtuális gépen, mind a gazda operációs rendszeren.
2. Kezdje azzal, hogy megnyitja az alkalmazást a VM-ben. Nyissa meg a „Kapcsolatok” menüt, és válassza az „Új szerverkapcsolat” lehetőséget.
3. Töltse ki a megosztani kívánt portról a szükséges információkat, beleértve a port számát és a csatlakozáshoz használt TCP-portot.
Megjegyzés: jelölje be a jelölőnégyzetet, hogy a port virtuális legyen.
4. Nyomja meg a „Létrehozás” gombot.
5. Most váltson a gazdagépen a Serial to Ethernet módra. Nyissa meg a „Remote Connections” elemet.
6. Ha minden megfelelően lett beállítva, a virtuális gép portjának meg kell jelennie a listában. Válassza ki.
7. Állítsa be a klienskapcsolat beállításait, például azt a portot, amelyet az adatok fogadására használ.
8. Nyomja meg ismét a „Létrehozás” gombot, és kész is van.
Videó oktatóanyag:
Hogyan csatlakoztassunk soros hardvert egy virtuális géphez a PipeDream segítségével
A virtuálisgép-felhasználók számára, akik COM-portot szeretnének hozzáadni a Hyper-V soros portjaihoz, a PipeDream ideális választás. Ez a Hyper-V-ben futó sorosport-eszköz ugyanazon a kiszolgálón fut, amely a Hyper-V-t hosztolja (ami egy virtualizációs gazdagép), áthidalva a virtuális gépek és a soros portok közötti szakadékot.
PipeDream úgy működik, hogy továbbítja a soros hardverről (bármiről, ami a COM-porthoz van csatlakoztatva) beérkező adatokat, és segít a virtuális gépnek felismerni és elérni azokat (és fordítva).
Ezenkívül a PipeDreamnek nincs szüksége kliensoldali összetevőre ahhoz, hogy kiszolgálón fusson, ami még kényelmesebbé teszi a Hyper-V soros támogatású passthrough használatát. A PipeDream nem igényel semmilyen telepítést (eszközt, szoftvert vagy bármi mást) a részt vevő virtuális gép(ek)en — így maximalizálja a régi operációs rendszerek/szoftverek kompatibilitását, valamint megbízható támogatást nyújt az XP (és régebbi) operációs rendszerekhez.
A PipeDream lehetővé teszi a vendég virtuális gépek számára, hogy a virtualizációs gazdagépen (vagy más gépeken) található soros portokat vezéreljék. Ez az eszköz a Hyper-V elnevezett cső (named pipe) támogatásának köszönhetően működik, ami azt jelenti, hogy a kommunikációhoz nincs szükség hálózati kapcsolatra. Csak hozzon létre egy csőnevet a Hyper-V-ben, és a PipeDream csatlakozni fog a vendég VM soros eszközéhez, miután elindítja a PipeDream programot.
Jogi nyilatkozat: A PipeDream soros port a Hyper-V szoftverben kompatibilis a Microsoft Hyper-V-vel, de egy harmadik féltől származó eszköz, amelynek nincs kapcsolata a Microsofttal. A „Hyper-V” kifejezés használata nem Microsoft Corporation általi jóváhagyást vagy vele való társulást hivatott jelezni.
Azok számára, akik Gen 1 Hyper-V virtuális géppel rendelkeznek
Kövesse az alábbi lépésről lépésre útmutatót, hogy megtudja, hogyan adhat hozzá COM portot a Hyper-V-hez.
1. Futtassa a Hyper-V Managert, és nyissa meg a vendéggép beállításait (azt a virtuális gépet, amelyet létre szeretne hozni);
2. Válassza ki a COM1-et vagy a COM2-t az új ablakból (a bal oldali hardverlistában található);
3. Ez az a soros port, amely lehetővé teszi a virtuális gép számára, hogy hozzáférjen az Ön által választott soros eszközhöz (más néven a VM-ben megjelenő port eltérhet a gazdagép fizikai soros portjától);
4. Csatlakoztassa a „PipeDream” nevű csövet a vendég soros portjához (ezt úgy teheti meg, hogy a Named pipe-ra kattint, és „PipeDream”-et írja be a cső neveként—lásd az alábbi képet referenciaként);
5. Azok számára, akiknek soros eszközük van egy távoli számítógépen, győződjön meg róla, hogy a „Távoli számítógép” jelölőnégyzet be van jelölve, és adja meg a gép nevét;
6. Kattintson az OK gombra;
Hogyan kell konfigurálni a Gen-2 virtuális gépekhez
A Gen-2 virtuális gépeket futtatók számára a fent megjelenített csővezeték-beállítások nem konfigurálhatók a GUI használatával, ezért a felhasználóknak PowerShell-parancsokat kell végrehajtaniuk.
1. Nyisson meg egy Powershell-munkamenetet;
2. Hajtsa végre a Get-VM parancsot;
3. Másolja ki a kívánt soros porttal rendelkező virtuális gép nevét;
4. Futtassa a Set-VMComPort parancsot -Number < 1 vagy 2, a COM1 vagy COM2 soros porthoz > -Path \.pipePipeDream
5. Használja a Get-VMComPort parancsot a cső létrehozásának megerősítéséhez (lásd az alább megjelenített képernyőképet, példaként a „SillyRabbit” nevű virtuális géppel).
De a 2. generációs virtuális gépekhez nincsenek COM portok, ugye…?
Őszintén szólva, a válasz a „igen” és a „nem” keveréke (a „nem” főként a Hyper-V alapértelmezett soros port-átadásának képességeire összpontosul). Az izgalmas hír az, hogy ez állítható!
Az alábbi képernyőképek egy Windows 8 virtuális gépről származnak (konkrétan az előző szakaszban létrehozott adathordozót használva, ahol hozzá lett adva a szoftveralapú billentyűzet illesztőprogramja).
Az alábbi példában látni fogod, hogy egy alap gen-2 virtuális gép beállításaiból hiányoznak a COM port beállítási lehetőségei.
Ennek az az oka, hogy attól függetlenül, hogy a soros portok elérhetők-e vagy sem, a Gen-2 Hyper-V Manager soha nem jeleníti meg a COM portokat.
Az alábbiakban betekintünk abba, mit mond erről a PowerShell:
Vedd észre, hogy a PowerShell két elérhető COM portot jelenít meg? Ha azonban megnyitod a vendéggép Eszközkezelőjét, a VM-hez nem lesznek felsorolva COM portok.
Nézd meg az alábbi példát (COM1 használatával) egy csővezeték elérési útjának beállításához a COM portokhoz, miközben egy virtuális gép fut:
Ahogy korábban említettük, a vendég gép Eszközkezelőjének ellenőrzésekor a COM1 nem jelenik meg – de miután a virtuális gépet leállítjuk és újraindítjuk, a kívánt COM port már elérhető lesz a listából (lásd alább).
Azok számára, akik jártasak a kernel hibakeresésében, a fennmaradó folyamat meglehetősen egyszerű és egyenes—mindössze egy kisebb kivétellel, amely a Gen-2 VM-ekre (még pontosabban a Secure Bootot használó UEFI-alapú számítógépekre) jellemző.
Az msconfig segítségével engedélyeztük a kernelhibakeresést a virtuális géphez a COM1-en. Azonban miután a OK gombra kattintottunk, a következő hibaüzenet jelenik meg:
Miért? Mert a Windows szabályzata szerint a Biztonságos rendszerindítás és a kernelhibakeresés nem kompatibilisek. Ez azt jelenti, hogy a felhasználóknak ki kell kapcsolniuk a virtuális gépet, majd le kell tiltaniuk a Biztonságos rendszerindítást a firmware beállításain belül.
- Használd ismét az msconfigot a kernelhibakeresés engedélyezéséhez (ezúttal sikerülni fog);
- Indítsd újra a virtuális gépet;
- Csatlakozz a csővezetékre a szülő partíció windbg-jén keresztül;
Következtetés
Összefoglalva, bár a Hyper-V nem biztosít közvetlen fizikai COM-port átadást a virtuális gépek számára, a soros kommunikáció továbbra is megvalósítható névvel ellátott csövek (named pipe-ok), PowerShell-konfiguráció és speciális átirányító eszközök használatával. Ezek a módszerek lehetővé teszik, hogy mind az 1. generációs, mind a 2. generációs virtuális gépekkel dolgozzunk olyan feladatokhoz, mint az örökölt szoftverek támogatása, hardverintegráció vagy hibakeresés.
Olyan esetekben, amikor a közvetlen soros hozzáférés nem praktikus, a Serial to Ethernet Connector hatékony alternatíva lehet. A soros adatok hálózati forgalommá alakításával az ilyen eszközök lehetővé teszik, hogy a COM-alapú berendezések TCP/IP-n keresztül elérhetők legyenek, és könnyen megoszthatók virtuális gépekkel. Soros port átirányító szoftverrel kombinálva ez a megközelítés nagyobb rugalmasságot kínál, és leegyszerűsíti a fizikai soros eszközökhöz való hozzáférést virtualizált Hyper-V környezetekben.