Ya nos hemos tomado el tiempo de repasar las formas de acceder a los COM en una máquina virtual (puedes encontrar el artículo aquí). Si bien Serial to Ethernet Connector es una gran solución para COM en el passthrough del puerto serie de Hyper-V, vale la pena revisar algunas otras opciones para agregar un puerto COM al puerto serie de Hyper-V, las cuales veremos a continuación.
Cómo acceder al puerto serie en Hyper-V
Si necesita conectarse al puerto serie de una máquina virtual, necesitará el Redirector de puerto serie. Siga estos pasos para aprender a usar esta herramienta y utilizarla para acceder al puerto virtual:
1. Obtenga el Conector de Serie a Ethernet tanto en la máquina virtual como en el sistema operativo host.
2. Comienza abriendo la aplicación en la VM. Abre el menú “Conexiones” y selecciona “Nueva conexión de servidor”.
3. Rellena la información necesaria sobre el puerto que vas a compartir, incluido su número y el puerto TCP utilizado para conectarte a él.
Nota: marca la casilla para que el puerto sea virtual.
4. Pulse “Crear”.
5. Ahora, cambie a Serial a Ethernet en la máquina host. Abra “Conexiones remotas”.
6. Si todo se configuró correctamente, el puerto de la máquina virtual debería aparecer en la lista. Selecciónalo.
7. Configure las opciones de conexión del cliente, como el puerto que se utilizará para recibir los datos.
8. Pulsa “Crear” una vez más, y ya has terminado.
Tutorial en video:
Cómo conectar hardware serial a una máquina virtual con PipeDream
Para los usuarios de Máquinas Virtuales que quieren añadir un puerto COM a los puertos serie de Hyper-V, PipeDream es una opción ideal. Esta herramienta de puertos serie en Hyper-V funciona a través del mismo servidor que aloja Hyper-V (que es un host de virtualización), tendiendo un puente entre las máquinas virtuales y los puertos serie.
PipeDream funciona transmitiendo los datos recibidos del hardware serie (lo que sea que esté conectado al puerto COM), y ayuda a la Máquina Virtual a reconocerlo y acceder a él (y viceversa).
Además, PipeDream no necesita un componente del lado del cliente para ejecutarse en un servidor, lo que hace que el passthrough de soporte serie de Hyper-V sea aún más práctico. PipeDream no requiere ninguna instalación (dispositivo, software u otra) en la(s) máquina(s) virtual(es) participante(s), lo que maximiza la compatibilidad con sistemas operativos/software heredados y un soporte fiable para los sistemas operativos XP (y anteriores).
PipeDream permite que las máquinas virtuales invitadas controlen puertos serie en el host de virtualización (u otras máquinas). Esta herramienta funciona gracias al soporte de canalización con nombre de Hyper-V, lo que significa que no es necesaria una conexión de red para la comunicación. Solo crea un nombre de canalización en Hyper-V, y PipeDream se conectará al dispositivo serie de la VM invitada una vez que inicies el programa PipeDream.
Descargo de responsabilidad: El software PipeDream de puerto serie en Hyper-V es compatible con Hyper-V de Microsoft, pero es una herramienta de terceros sin afiliación con Microsoft. Nuestro uso del término “Hyper-V” no pretende respaldar ni afiliarse con Microsoft Corporation.
Para aquellos con una máquina virtual Hyper-V de Gen 1
Sigue la guía paso a paso a continuación para aprender cómo agregar un puerto COM a Hyper-V.
1. Ejecute el Administrador de Hyper-V y abra la Configuración de la máquina invitada (la VM que desea establecer);
2. Elija COM1 o COM2 en la nueva ventana (ubicada en la lista de hardware de la izquierda);
3. Este es el puerto serie que permite a la máquina virtual acceder al dispositivo serie de tu elección (también conocido como el puerto que aparece en la VM puede diferir del puerto serie físico del host);
4. Conecte la tubería llamada “PipeDream” al puerto serie del invitado (hágalo haciendo clic en Tubería con nombre y escriba “PipeDream” como el nombre de la tubería—vea la imagen a continuación como referencia);
5. Para quienes tengan un dispositivo serie en un equipo remoto, asegúrese de que la casilla “Equipo remoto” esté marcada e introduzca el nombre de la máquina;
6. Haga clic en Aceptar;
Cómo configurar para máquinas virtuales de Gen-2
Para quienes ejecutan máquinas virtuales Gen-2, la configuración de canalización mostrada arriba no es configurable mediante la GUI; por lo tanto, los usuarios deben implementar comandos de PowerShell.
1. Abra una sesión de Powershell;
2. Ejecutar Get-VM;
3. Copie el nombre de la máquina virtual con el puerto serie deseado;
4. Ejecute Set-VMComPort -Number < 1 o 2, para el puerto serie COM1 o COM2 > -Path \.pipePipeDream
5. Use Get-VMComPort para confirmar la creación de la canalización (consulte la captura de pantalla que se muestra a continuación usando una VM llamada “SillyRabbit” a modo de ejemplo).
Pero no hay puertos COM para las VM de Gen 2, ¿verdad…?
Francamente, la respuesta es una mezcla de sí y no (con el “no” centrado principalmente en las capacidades predeterminadas de paso a través del puerto serie de Hyper-V). ¡La buena noticia es que esto se puede ajustar!
Las capturas de pantalla a continuación son de una VM de Windows 8 (utilizando específicamente medios creados en la sección anterior donde se agregó el controlador para el teclado basado en software.)
En el ejemplo a continuación, verás que la configuración de una máquina virtual gen-2 básica carece de opciones de puerto COM.
La razón es que, independientemente de si los puertos serie están disponibles o no, el Administrador de Hyper-V de Gen-2 nunca muestra puertos COM.
A continuación echaremos un vistazo a lo que PowerShell tiene que decir:
¿Te das cuenta de cómo PowerShell muestra dos puertos COM disponibles? Sin embargo, si abres el Administrador de dispositivos de la máquina invitada, no habrá ningún puerto COM listado para la VM.
Mira el ejemplo a continuación (usando COM1) para configurar una ruta de canalización para los puertos COM mientras una máquina virtual está en ejecución:
Como se mencionó anteriormente, al comprobar el Administrador de dispositivos de la máquina invitada, COM1 no se muestra, pero una vez que la VM se apaga y se reinicia, el puerto COM deseado ahora estará disponible en la lista (véase abajo).
Para quienes tienen experiencia con la depuración del kernal, el proceso restante es bastante simple y directo, con solo una pequeña excepción específica de las VM de Gen-2 (aún más específicamente, equipos basados en UEFI que usan Secure Boot).
A través de msconfig, hemos habilitado la depuración del kernel para la VM en COM1. Sin embargo, una vez que hicimos clic en OK, aparece el siguiente mensaje de error:
¿Por qué? Porque la política de Window establece que el Arranque seguro y la depuración del kernel no son compatibles. Esto significa que los usuarios deben apagar la máquina virtual y luego deshabilitar el Arranque seguro desde la configuración del firmware.
- Utilice msconfig una vez más para habilitar la depuración del kernel (esta vez tendrá éxito);
- Reinicie la VM;
- Conéctese a la canalización mediante windbg de la partición primaria;
Conclusión
En resumen, aunque Hyper-V no proporciona un paso directo de puertos COM físicos a las máquinas virtuales, la comunicación serial aún puede lograrse mediante canalizaciones con nombre, configuración de PowerShell y herramientas especializadas de redirección. Estos métodos hacen posible trabajar tanto con máquinas virtuales Gen 1 como Gen 2 para tareas como compatibilidad con software heredado, integración de hardware o depuración.
En escenarios donde el acceso serial directo no es práctico, un Conector de Serial a Ethernet puede ser una alternativa eficaz. Al convertir los datos seriales en tráfico de red, estos dispositivos permiten que equipos basados en COM se accedan a través de TCP/IP y se compartan fácilmente con máquinas virtuales. Combinado con software de redirección de puertos seriales, este enfoque ofrece mayor flexibilidad y simplifica el acceso a dispositivos seriales físicos en entornos Hyper-V virtualizados.