이미 가상 머신에서 COM에 액세스하는 방법에 대해 시간을 들여 살펴보았습니다(여기에서 해당 글을 확인할 수 있습니다). Serial to Ethernet Connector는 Hyper-V에서 COM 시리얼 포트 패스스루를 위한 훌륭한 솔루션이지만, Hyper-V 시리얼 포트에 COM 포트를 추가할 수 있는 몇 가지 다른 옵션도 확인해볼 가치가 있으며, 아래에서 이를 다루겠습니다.
Hyper-V에서 직렬 포트에 액세스하는 방법
가상 머신의 직렬 포트에 연결해야 하는 경우 Serial Port Redirector가 필요합니다. 다음 단계에 따라 이 도구를 사용하는 방법을 알아보고 이를 사용하여 가상 포트에 액세스하세요:
1. 가상 머신과 호스트 운영 체제 모두에서 Serial to Ethernet Connector를 받으세요 .
2. VM에서 앱을 여는 것부터 시작하세요. “Connections” 메뉴를 열고 “New Server Connection”을 선택하세요.
3. 공유할 포트에 대한 필요한 정보를 입력하세요. 여기에는 포트 번호와 연결에 사용되는 TCP 포트가 포함됩니다.
참고: 포트를 가상으로 만들려면 체크박스를 선택하세요.
4. “생성”을 누르세요.
5. 이제 호스트 머신에서 Serial to Ethernet으로 전환합니다. “원격 연결”을 여십시오.
6. 모든 것이 올바르게 설정되었다면 가상 머신 포트가 목록에 표시되어야 합니다. 이를 선택하세요.
7. 데이터를 수신하는 데 사용될 포트와 같은 클라이언트 연결 옵션을 설정합니다.
8. “생성”을 다시 한 번 누르면 완료입니다.
비디오 튜토리얼:
PipeDream로 직렬 하드웨어를 가상 머신에 연결하는 방법
Hyper-V 직렬 포트에 COM 포트를 추가하려는 가상 머신 사용자에게 PipeDream은 이상적인 선택입니다. Hyper-V용 이 직렬 포트 도구는 Hyper-V(가상화 호스트)를 호스팅하는 동일한 서버에서 실행되며, 가상 머신과 직렬 포트 간의 간극을 메워줍니다.
PipeDream 은(는) 직렬 하드웨어(COM 포트에 연결된 어떤 장치든)에서 수신한 데이터를 전송하고, 가상 머신이 이를 인식하고 액세스하도록(또는 그 반대로) 돕는 방식으로 작동합니다.
또한 PipeDream은 서버에서 실행하기 위해 클라이언트 측 요소가 필요하지 않으므로 Hyper-V 직렬 지원 패스스루를 더욱 편리하게 해줍니다. PipeDream은 참여하는 가상 머신에 어떤 설치(장치, 소프트웨어 등도 포함)를 요구하지 않으며, 그 결과 레거시 OS/소프트웨어 호환성을 극대화하고 XP(및 그 이전) 운영 체제에 대한 안정적인 지원을 제공합니다.
PipeDream을 사용하면 게스트 가상 머신이 가상화 호스트(또는 다른 머신)의 직렬 포트를 제어할 수 있습니다. 이 도구는 Hyper-V의 명명된 파이프 지원 덕분에 작동하므로, 통신에 네트워크 연결이 필요하지 않습니다. Hyper-V에서 파이프 이름을 만들기만 하면, PipeDream 프로그램을 시작했을 때 PipeDream이 게스트 VM의 직렬 장치에 연결됩니다.
면책 조항: Hyper-V용 PipeDream 직렬 포트 소프트웨어는 Microsoft의 Hyper-V와 호환되지만, Microsoft와 아무런 제휴가 없는 타사 도구입니다. “Hyper-V”라는 용어의 사용은 Microsoft Corporation을 보증하거나 제휴하려는 의도가 아닙니다.
Gen 1 Hyper-V 가상 머신을 사용하는 사용자용
아래 단계별 가이드를 따라 Hyper-V에 COM 포트를 추가하는 방법을 알아보세요.
1. Hyper-V 관리자를 실행하고 게스트 머신의 설정(구성하려는 VM)을 엽니다;
2. 새 창(왼쪽 하드웨어 목록에 있음)에서 COM1 또는 COM2를 선택하십시오;
3. 이는 가상 머신이 선택한 직렬 장치에 접근할 수 있도록 하는 직렬 포트입니다(즉, VM에 표시되는 포트는 호스트의 물리적 직렬 포트와 다를 수 있음);
4. “PipeDream”이라는 이름의 파이프를 게스트의 시리얼 포트에 연결합니다(이를 위해 Named pipe를 클릭하고, 파이프 이름으로 “PipeDream”을 입력하세요—참고를 위해 아래 이미지를 확인하세요);
5. 원격 컴퓨터에 직렬 장치가 있는 경우 “원격 컴퓨터” 확인란이 선택되어 있는지 확인하고, 해당 컴퓨터의 이름을 입력하십시오;
6. 확인을 클릭하십시오;
Gen-2 가상 머신용으로 구성하는 방법
Gen-2 가상 머신을 실행하는 경우, 위에 표시된 파이프 설정은 GUI를 사용하여 구성할 수 없으므로 사용자는 PowerShell 명령을 구현해야 합니다.
1. Powershell 세션을 여십시오;
2. Get-VM을 실행합니다;
3. 원하는 직렬 포트가 있는 가상 머신의 이름을 복사합니다;
4. Set-VMComPort -Number < 직렬 포트 COM1 또는 COM2에 대해 1 또는 2 > -Path \.pipePipeDream 실행
5. Get-VMComPort를 사용하여 파이프 생성이 되었는지 확인합니다(예시로 “SillyRabbit”이라는 이름의 VM을 사용하여 아래에 표시된 스크린샷을 참조하십시오).
하지만 2세대 VM에는 COM 포트가 없죠…?
솔직히 말해, 답은 예와 아니오가 섞여 있습니다(“아니오”는 주로 기본 Hyper-V 직렬 포트 패스스루 기능에 초점이 맞춰져 있습니다.) 반가운 소식은, 이것은 조정할 수 있다는 점입니다!
아래 스크린샷은 Windows 8 VM에서 가져온 것입니다(특히 소프트웨어 기반 키보드용 드라이버가 추가된, 이전 섹션에서 생성한 미디어를 사용합니다.)
아래 예시에서는 기본 gen-2 가상 머신의 설정에 COM 포트 옵션이 없다는 것을 확인할 수 있습니다.

그 이유는 직렬 포트가 사용 가능하든 아니든 관계없이 Gen-2 Hyper-V 관리자는 COM 포트를 절대 표시하지 않기 때문입니다.
아래에서 PowerShell이 무엇이라고 말하는지 들여다보겠습니다:

PowerShell이 사용 가능한 COM 포트 두 개를 어떻게 표시하는지 확인하세요. 하지만 게스트 머신의 장치 관리자를 열어 보면 VM에 대해 나열된 COM 포트가 하나도 없을 것입니다.
아래 예제(COM1 사용)를 확인하여 가상 머신이 실행 중인 동안 COM 포트에 대한 파이프 경로를 구성하세요:

앞서 언급했듯이, 게스트 머신의 장치 관리자를 확인하면 COM1이 표시되지 않지만, VM을 종료한 후 다시 시작하면 원하는 COM 포트가 이제 목록에서 사용할 수 있습니다(아래 참조).

커널 디버깅에 익숙한 사용자라면, 남은 과정은 상당히 간단하고 직관적입니다—단, Gen-2 VM(더 구체적으로는 Secure Boot를 사용하는 UEFI 기반 컴퓨터)에만 해당하는 사소한 예외가 하나 있습니다.
msconfig를 통해 COM1에서 VM에 대한 커널 디버깅을 활성화했습니다. 하지만 OK를 클릭하자마자 다음과 같은 오류 메시지가 표시됩니다:

왜? Windows의 정책에 따르면 Secure Boot와 커널 디버깅은 호환되지 않기 때문입니다. 이는 사용자가 가상 머신을 종료한 다음, 펌웨어 설정에서 Secure Boot를 비활성화해야 한다는 것을 의미합니다.

- msconfig를 다시 한 번 사용하여 커널 디버깅을 활성화합니다(이번에는 성공할 것입니다);
- VM을 다시 시작합니다;
- 부모 파티션의 windbg를 통해 파이프에 연결합니다;

결론
요약하면, Hyper-V는 가상 머신에 대한 직접적인 물리 COM 포트 패스스루를 제공하지 않지만, 명명된 파이프, PowerShell 구성, 그리고 특수 리디렉션 도구를 사용하면 여전히 직렬 통신을 구현할 수 있습니다. 이러한 방법을 통해 레거시 소프트웨어 지원, 하드웨어 통합, 또는 디버깅과 같은 작업을 위해 Gen 1 및 Gen 2 VM 모두에서 작업할 수 있습니다.
직접적인 직렬 액세스가 실용적이지 않은 시나리오에서는 Serial to Ethernet Connector가 효과적인 대안이 될 수 있습니다. 직렬 데이터를 네트워크 트래픽으로 변환함으로써 이러한 장치는 COM 기반 장비를 TCP/IP를 통해 액세스할 수 있게 하고 가상 머신과 쉽게 공유할 수 있게 합니다. 직렬 포트 리디렉션 소프트웨어와 결합하면, 이 접근 방식은 더 큰 유연성을 제공하고 가상화된 Hyper-V 환경에서 물리적 직렬 장치에 대한 액세스를 단순화합니다.
