Hyper-V 2세대 VM을 사용하여 Linux에서 UART/COM 구성

Hyper-V 2세대 VM을 사용하여 Linux에서 UART/COM 구성

Windows 10 데스크탑에서 Hyper-V의 Linux Mint x64를 2세대 가상 머신으로 설정했습니다. 임베디드 하드웨어를 프로그래밍하고 디버깅할 수 있도록 USB->직렬 변환기(FT232RL)를 VM에 연결하고 싶습니다. Windows에서는 FT232RL이 "USB 직렬 포트(COMx)"로 표시되고 제대로 작동합니다. VirtualBox를 사용할 때 VM에서 COM 포트를 연결하거나 분리하기만 하면 모든 것이 잘 작동합니다.

Hyper-V의 2세대 VM에는 1세대 VM과 달리 해당 설정에 COM 포트/명명된 파이프가 표시되지 않으므로 적절한 설정에 액세스하는 방법을 잘 모르겠습니다. 기사가 있어요여기(자세한 내용은) 이는 게스트 OS로 Windows 대신 Linux를 사용한다는 점을 제외하고 내가 달성하고 싶은 것을 보여줍니다.

그렇다면 이것을 어떻게 설정해야 할까요? 나는 이미 Linux에서 seterial을 살펴봤지만 아직까지 해결책을 찾지 못했습니다.

답변1

따라서 이 작업을 수행하는 데는 최소한 세 가지 방법이 있는 것으로 보이며 시간이 지남에 따라 이를 알아냈습니다.

첫 번째는 Hyper-V 실행기 대신 원격 데스크톱을 사용하여 가상 머신에 액세스하는 매우 간단합니다. 물론 이를 위해서는 게스트 OS에 원격 데스크톱 서버와 방화벽이 열려 있어야 하고 IP 주소가 호스트 범위 내에 있어야 합니다. RDP를 사용하면 옵션 표시 -> 로컬 리소스/로컬 장치 및 리소스 -> 자세히 -> '포트' 선택으로 이동할 수 있습니다. 그런 다음 정상적으로 연결하십시오.

이 솔루션은 호스트 OS에 명명된 파이프 자체를 생성하지 않으므로 1세대 VM에만 적합합니다. 1세대 VM을 사용하면 사용자는 VM 설정 메뉴를 통해 명명된 파이프를 생성할 수 있습니다. 두 번째 해결책은 다음과 같습니다.COM파이프. 여기에는 Hyper-V 설정을 사용하여 COM 포트 중 하나에 명명된 파이프(예: COM1의 MySerialPort)를 설정하는 작업이 포함됩니다( 명명된 파이프 경로 생성: \.\pipe\MySerialPort). 그런 다음 호스트 OS에서 관리 PS를 실행하고 다음과 같은 명령을 실행합니다. COMpipe.exe -b 115200 -c \\.\COM5 -p \\.\pipe\MySerialPort여기서 COM5는 사용하려는 호스트 OS의 COM 포트입니다. 모든 것이 제대로 작동한다면 게스트 OS에서 COM1을 사용할 수 있고 호스트의 COM5에 직접 매핑할 수 있어야 합니다. 경험상 GLE=5 오류는 명명된 파이프가 게스트 OS에서 생성되지 않았음을 의미합니다.

세 번째 솔루션은 훨씬 더 복잡하며 다음과 같이 설명됩니다.여기(백업 링크). 여기에는 게스트 및 호스트 OS 모두에서 허브4com을 구축하고 com0com(관리자 권한으로도) 및 몇 가지 기타 스크립트를 허브4com 프로젝트와 함께 실행하는 작업이 포함됩니다.

여담으로, 다음을 사용하여 COM 포트를 명명된 파이프(일부 앱에서 생성해야 함)에 매핑할 수 있습니다.세트-VMComPort다음을 사용하여 매핑을 봅니다.Get-VMComPort. COM 포트는 Gen 2 Hyper-V VM에 필요합니다.보이지 않는(Gen 2 VM을 구성할 때 설정에서 2세대 FAQ 참고 사항 참조)

관련 정보