- Strona główna
- Blog
- Konfiguracja portu szeregowego Hyper-V: instrukcje krok po kroku
Konfiguracja portu szeregowego Hyper-V: instrukcje krok po kroku
Omówiliśmy już sposoby uzyskania dostępu do portów COM w maszynie wirtualnej (artykuł znajdziesz tutaj.) Chociaż Serial to Ethernet Connector to świetne rozwiązanie dla przekazywania portu szeregowego COM w Hyper-V, warto sprawdzić też kilka innych opcji dodania portu COM do portu szeregowego Hyper-V — które omówimy poniżej.
Jak uzyskać dostęp do portu szeregowego w Hyper-V
Jeśli musisz połączyć się z portem szeregowym maszyny wirtualnej, będziesz potrzebować narzędzia Serial Port Redirector. Wykonaj poniższe kroki, aby dowiedzieć się, jak korzystać z tego narzędzia i użyć go do uzyskania dostępu do portu wirtualnego:
1. Pobierz Serial to Ethernet Connector zarówno na maszynie wirtualnej, jak i w systemie operacyjnym hosta.
2. Zacznij od otwarcia aplikacji w maszynie wirtualnej. Otwórz menu „Połączenia” i wybierz „Nowe połączenie z serwerem”.
3. Wprowadź niezbędne informacje o porcie, który zamierzasz udostępnić, w tym jego numer oraz port TCP używany do połączenia.
Uwaga: zaznacz pole wyboru, aby port był wirtualny.
4. Naciśnij „Utwórz”.
5. Teraz przełącz na Serial do Ethernet na maszynie hosta. Otwórz „Zdalne połączenia”.
6. Jeśli wszystko zostało ustawione prawidłowo, port maszyny wirtualnej powinien pojawić się na liście. Wybierz go.
7. Ustaw opcje połączenia klienta, takie jak port, który będzie używany do odbierania danych.
8. Naciśnij ponownie „Utwórz” i gotowe.
Samouczek wideo:
Jak podłączyć sprzęt szeregowy do maszyny wirtualnej za pomocą PipeDream
Dla użytkowników maszyn wirtualnych, którzy chcą dodać port COM do portów szeregowych Hyper-V, PipeDream jest idealną opcją. To narzędzie portu szeregowego w Hyper-V działa za pośrednictwem tego samego serwera hostującego Hyper-V (który jest hostem wirtualizacji), wypełniając lukę między maszynami wirtualnymi a portami szeregowymi.
PipeDream działa poprzez przesyłanie danych odebranych z urządzenia szeregowego (czegokolwiek, co jest podłączone do portu COM) i pomaga maszynie wirtualnej je rozpoznać oraz uzyskać do nich dostęp (i odwrotnie).
Dodatkowo PipeDream nie potrzebuje elementu po stronie klienta do działania na serwerze, co sprawia, że przekazywanie obsługi portów szeregowych Hyper-V jest jeszcze wygodniejsze. PipeDream nie wymaga żadnej instalacji (urządzenia, oprogramowania ani niczego innego) na uczestniczącej maszynie(maszynach) wirtualnej(wirtualnych) — maksymalizując tym samym kompatybilność ze starszymi systemami operacyjnymi/oprogramowaniem oraz niezawodne wsparcie dla systemów operacyjnych XP (i starszych).
PipeDream umożliwia gościnnym maszynom wirtualnym kontrolowanie portów szeregowych na hoście wirtualizacji (lub innych maszynach). To narzędzie działa dzięki obsłudze potoków nazwanych w Hyper-V, co oznacza, że do komunikacji nie jest potrzebne połączenie sieciowe. Wystarczy utworzyć nazwę potoku w Hyper-V, a PipeDream połączy się z urządzeniem szeregowym gościnnej maszyny wirtualnej po uruchomieniu programu PipeDream.
Zastrzeżenie: Oprogramowanie PipeDream dla portu szeregowego w Hyper-V jest kompatybilne z Microsoft Hyper-V, ale jest narzędziem firmy trzeciej i nie jest powiązane z firmą Microsoft. Użycie przez nas terminu „Hyper-V” nie ma na celu popierania ani wskazywania powiązania z Microsoft Corporation.
Dla osób posiadających maszynę wirtualną Hyper‑V generacji 1
Postępuj zgodnie z poniższym przewodnikiem krok po kroku, aby dowiedzieć się, jak dodać port COM do Hyper-V.
1. Uruchom Menedżera Hyper-V i otwórz ustawienia maszyny gościa (maszyny wirtualnej, którą chcesz utworzyć);
2. Wybierz COM1 lub COM2 w nowym oknie (znajdującym się na liście sprzętu po lewej stronie);
3. Jest to port szeregowy umożliwiający maszynie wirtualnej dostęp do wybranego przez Ciebie urządzenia szeregowego (znanego również jako port, który pojawia się w maszynie wirtualnej, może różnić się od fizycznego portu szeregowego hosta);
4. Podłącz potok o nazwie „PipeDream” do portu szeregowego gościa (zrób to, klikając Named pipe i wpisując „PipeDream” jako nazwę potoku — zobacz poniższy obraz jako odniesienie);
5. W przypadku urządzenia szeregowego na komputerze zdalnym upewnij się, że pole wyboru „Komputer zdalny” jest zaznaczone, i wprowadź nazwę maszyny;
6. Kliknij OK;
Jak skonfigurować dla maszyn wirtualnych Gen-2
Dla osób korzystających z maszyn wirtualnych Gen-2 ustawienia potoków wyświetlane powyżej nie są konfigurowalne za pomocą GUI, dlatego użytkownicy muszą zastosować polecenia Powershell.
1. Otwórz sesję Powershell;
2. Wykonaj Get-VM;
3. Skopiuj nazwę maszyny wirtualnej z wybranym portem szeregowym;
4. Wykonaj Set-VMComPort -Number < 1 lub 2, dla portu szeregowego COM1 lub COM2 > -Path \.pipePipeDream
5. Użyj polecenia Get-VMComPort, aby potwierdzić utworzenie potoku (zobacz zrzut ekranu wyświetlony poniżej, używając maszyny wirtualnej o nazwie „SillyRabbit” jako przykładu).
Ale nie ma portów COM dla maszyn wirtualnych Gen 2, prawda…?
Szczerze mówiąc, odpowiedź to mieszanka „tak” i „nie” (przy czym „nie” koncentruje się głównie na domyślnych możliwościach przekazywania portu szeregowego w Hyper-V). Dobra wiadomość jest taka, że można to dostosować!
Poniższe zrzuty ekranu pochodzą z maszyny wirtualnej z Windows 8 (konkretnie z wykorzystaniem nośnika utworzonego w poprzedniej sekcji, w której dodano sterownik dla programowej klawiatury).
W poniższym przykładzie zobaczysz, że ustawienia podstawowej maszyny wirtualnej generacji 2 nie zawierają opcji portu COM.
Powodem jest to, że niezależnie od tego, czy porty szeregowe są dostępne, czy nie, Menedżer Hyper-V Gen-2 nigdy nie wyświetla portów COM.
Poniżej zajrzymy, co PowerShell ma do powiedzenia:
Zauważ, że PowerShell pokazuje dwa dostępne porty COM? Jednak jeśli otworzysz Menedżera urządzeń maszyny gościa, nie będzie tam żadnych portów COM wyświetlonych dla maszyny wirtualnej.
Sprawdź poniższy przykład (używając COM1), aby skonfigurować ścieżkę potoku dla portów COM podczas działania maszyny wirtualnej:
Jak wspomniano wcześniej, podczas sprawdzania Menedżera urządzeń na maszynie gościa COM1 nie jest wyświetlany — ale po wyłączeniu i ponownym uruchomieniu maszyny wirtualnej żądany port COM będzie teraz dostępny na liście (zobacz poniżej).
Dla osób mających doświadczenie z debugowaniem kernela pozostały proces jest dość prosty i nieskomplikowany — z tylko jednym drobnym wyjątkiem specyficznym dla maszyn wirtualnych Gen-2 (jeszcze bardziej konkretnie komputerów opartych na UEFI korzystających z funkcji Secure Boot).
Za pomocą msconfig włączyliśmy debugowanie jądra dla maszyny wirtualnej na porcie COM1. Jednak po kliknięciu OK pojawia się następujący komunikat o błędzie:
Dlaczego? Ponieważ zasady Window mówią, że funkcje Secure Boot i debugowanie jądra nie są kompatybilne. Oznacza to, że użytkownicy powinni wyłączyć maszynę wirtualną, a następnie wyłączyć Secure Boot w ustawieniach oprogramowania układowego.
- Użyj ponownie msconfig, aby włączyć debugowanie jądra (tym razem zakończy się powodzeniem);
- Uruchom ponownie maszynę wirtualną;
- Połącz się z potokiem za pomocą windbg w partycji nadrzędnej;
Wniosek
Podsumowując, chociaż Hyper-V nie zapewnia bezpośredniego przekazywania fizycznego portu COM do maszyn wirtualnych, komunikację szeregową nadal można zrealizować za pomocą nazwanych potoków, konfiguracji PowerShell oraz wyspecjalizowanych narzędzi do przekierowania. Metody te umożliwiają pracę zarówno z maszynami wirtualnymi Gen 1, jak i Gen 2 w przypadku zadań takich jak obsługa starszego oprogramowania, integracja sprzętowa lub debugowanie.
W scenariuszach, w których bezpośredni dostęp szeregowy nie jest praktyczny, skuteczną alternatywą może być Serial to Ethernet Connector. Konwertując dane szeregowe na ruch sieciowy, takie urządzenia umożliwiają dostęp do sprzętu opartego na COM przez TCP/IP i łatwe współdzielenie go z maszynami wirtualnymi. W połączeniu z oprogramowaniem do przekierowania portów szeregowych podejście to oferuje większą elastyczność i upraszcza dostęp do fizycznych urządzeń szeregowych w zwirtualizowanych środowiskach Hyper-V.