Hyper-V USB-串行电缆映射到虚拟机

Hyper-V USB-串行电缆映射到虚拟机

运行 Hyper-V 的 Windows Server 2012r2 和 WinXP 32 位 VM。有一个特定的应用程序只能在 WinXP 上运行,它使用串行连接器与旧柴油机调速器连接。

我已经研究过如何在客户机和主机之间传输 COM 端口,但我要么做错了,要么我不了解其功能。

其他资源包括:

https://social.technet.microsoft.com/Forums/windowsserver/en-US/171143f5-716b-4c4b-8f2b-ad05bf7fd147/attaching-serial-ports-to-hyperv-?forum=winserverhyperv

https://charbelnemnom.com/2014/10/hyper-v-enhanced-session-mode-show-options-issue-hyperv/

https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/learn-more/use-local-resources-on-hyper-v-virtual-machine-with-vmconnect

安装了集成工具,为机器和用户启用了增强模式

在主机上的 powershell 中输入:

[System.IO.Directory]::GetFiles("\\.\\pipe\\")

然后它返回了\\.\pipe\\COM3我的 USB 转串行适配器。在 XP 客户机上的 Hyper-V 中,我通过选择命名管道编辑了 COM1 串行端口设置,并在管道名称字段中输入此信息,\COM3这导致显示命名管道路径:字段\\.\pipe\\COM3

然后我将串行电缆连接到端口,以管理员身份在客户机上运行 Putty,但什么也没显示,没有任何交互。我在主机上以管理员身份运行 Putty,然后就可以连接了。

我确信问题出在两个接口的“管道”中,但不知道如何进一步排除故障。我不确定主机连接是 USB 转串行,这会导致与客户机集成的问题。任何帮助都将不胜感激。我将密切关注此线程,以便能够及时提供其他所需信息。

先感谢您!

答案1

Hyper-V 将命名管道中的数据作为 COM 端口提供给 VM。它不会将该命名管道连接到主机的 COM 端口,而这正是将数据传递到 VM 所需的。

我编写了一个在主机操作系统上运行的 Windows 程序,它在主机 OS 上提供主机 COM 端口和命名管道之间的链接,允许您从 Ubuntu VM 使用主机 COM 端口。

您需要以管理员用户身份运行它。

https://github.com/tdhoward/COMpipe

相关内容