Já dedicámos tempo para analisar as formas de aceder a COMs numa máquina virtual (pode encontrar o artigo aqui.) Embora o Serial to Ethernet Connector seja uma ótima solução para COM no passthrough de porta série do Hyper-V, vale a pena conhecer algumas outras opções para adicionar uma porta COM à porta série do Hyper-V — que abordaremos abaixo.
Como acessar a porta serial no Hyper-V
Se precisar se conectar à porta serial de uma máquina virtual, você precisará do Redirecionador de Porta Serial. Siga estas etapas para aprender a usar esta ferramenta e usá-la para acessar a porta virtual:
1. Obtenha o Conector Serial para Ethernet tanto na máquina virtual quanto no sistema operacional host.
2. Comece abrindo o aplicativo na VM. Abra o menu “Conexões” e selecione “Nova Conexão de Servidor”.
3. Preencha as informações necessárias sobre a porta que você vai compartilhar, incluindo o número dela e a porta TCP usada para conectá-la.
Observação: marque a caixa de seleção para tornar a porta virtual.
4. Pressione “Criar”.
5. Agora, mude para Serial para Ethernet na máquina host. Abra “Conexões Remotas”.
6. Se tudo foi configurado corretamente, a porta da máquina virtual deverá aparecer na lista. Selecione-a.
7. Defina as opções de ligação do cliente, como a porta que será utilizada para receber os dados.
8. Pressione “Criar” mais uma vez, e está tudo pronto.
Tutorial em vídeo:
Como conectar hardware serial a uma máquina virtual com PipeDream
Para usuários de Máquina Virtual que desejam adicionar uma porta COM às portas seriais do Hyper-V, o PipeDream é uma opção ideal. Esta ferramenta de porta serial no Hyper-V funciona por meio do mesmo servidor que hospeda o Hyper-V (que é um host de virtualização), reduzindo a distância entre máquinas virtuais e portas seriais.
PipeDream funciona transmitindo dados recebidos do hardware serial (o que quer que esteja conectado à porta COM) e ajuda a Máquina Virtual a reconhecê-lo e acessá-lo (e vice-versa).
Além disso, o PipeDream não precisa de um elemento do lado do cliente para ser executado em um servidor, o que torna o passthrough do suporte serial do Hyper-V ainda mais conveniente. O PipeDream não requer nenhuma instalação (dispositivo, software ou outra) na(s) máquina(s) virtual(is) participante(s) — maximizando assim a compatibilidade com SO/software legado e o suporte confiável para sistemas operacionais XP (e mais antigos).
O PipeDream permite que máquinas virtuais convidadas controlem portas seriais no host de virtualização (ou em outras máquinas). Esta ferramenta funciona graças ao suporte a pipes nomeados do Hyper-V, o que significa que uma ligação de rede não é necessária para a comunicação. Basta criar um nome de pipe no Hyper-V, e o PipeDream irá ligar-se ao dispositivo serial da VM convidada assim que iniciar o programa PipeDream.
Aviso: O software de porta serial PipeDream no Hyper-V é compatível com o Hyper-V da Microsoft, mas é uma ferramenta de terceiros sem qualquer afiliação à Microsoft. O nosso uso do termo “Hyper-V” não tem a intenção de endossar ou afiliar-se à Microsoft Corporation.
Para aqueles com uma máquina virtual Hyper-V de Geração 1
Siga o guia passo a passo abaixo para aprender como adicionar uma porta COM ao Hyper-V.
1. Execute o Gerenciador do Hyper-V e abra as Configurações da Máquina Convidada (a VM que você deseja configurar);
2. Escolha COM1 ou COM2 na nova janela (localizada na lista de hardware à esquerda);
3. Esta é a porta serial que permite que a máquina virtual aceda ao dispositivo serial da sua escolha (também conhecido como a porta que aparece na VM pode ser diferente da porta serial física do anfitrião);
4. Conecte o pipe chamado “PipeDream” à porta serial do convidado (faça isto clicando em Named pipe e digite “PipeDream” como o nome do pipe — veja a imagem abaixo como referência);
5. Para aqueles com um dispositivo serial em um computador remoto, certifique-se de que a caixa de seleção “Computador remoto” esteja marcada e insira o nome da máquina;
6. Clique em OK;
Como configurar para máquinas virtuais de Gen-2
Para aqueles que executam máquinas virtuais Gen-2, as definições de pipe apresentadas acima não são configuráveis através da GUI; assim, os utilizadores devem implementar comandos PowerShell.
1. Abra uma sessão do Powershell;
2. Execute Get-VM;
3. Copie o nome da máquina virtual com a porta serial desejada;
4. Execute Set-VMComPort -Number < 1 ou 2, para a porta serial COM1 ou COM2 > -Path \.pipePipeDream
5. Use Get-VMComPort para confirmar a criação do pipe (veja a captura de tela exibida abaixo usando uma VM chamada “SillyRabbit” para fins de exemplo).
Mas não há portas COM para VMs de Geração 2, certo…?
Francamente, a resposta é uma mistura de sim e não (com o “não” principalmente centrado nas capacidades de passagem de porta serial padrão do Hyper-V.) A notícia empolgante é que isso é ajustável!
As capturas de tela abaixo são de uma VM Windows 8 (utilizando especificamente a mídia criada na seção anterior, onde o driver para o teclado baseado em software foi adicionado.)
No exemplo abaixo, você verá que as configurações de uma máquina virtual gen-2 básica não possuem opções de porta COM.
A razão é que, independentemente de as portas seriais estarem disponíveis ou não, o Gerenciador do Hyper-V Gen-2 nunca exibe portas COM.
Abaixo, vamos dar uma olhada no que o PowerShell tem a dizer:
Repare como o PowerShell mostra duas portas COM disponíveis? No entanto, se abrir o Gestor de Dispositivos da máquina convidada, não haverá quaisquer portas COM listadas para a VM.
Veja o exemplo abaixo (usando a COM1) para configurar um caminho de pipe para portas COM enquanto uma máquina virtual está em execução:
Como mencionado anteriormente, ao verificar o Gerenciador de Dispositivos da máquina convidada, a COM1 não é exibida — mas, assim que a VM for desligada e reiniciada, a porta COM desejada agora estará disponível na lista (veja abaixo.)
Para aqueles com experiência em depuração de kernel, o processo restante é bastante simples e direto — com apenas uma pequena exceção específica para VMs de 2ª geração (ainda mais especificamente computadores baseados em UEFI usando Inicialização Segura.)
Via msconfig, habilitámos a depuração do kernel para a VM na COM1. No entanto, assim que clicámos em OK, aparece a seguinte mensagem de erro:
Por quê? Porque a política do Window afirma que o Secure Boot e a depuração do kernel não são compatíveis. Isso significa que os usuários devem desligar a máquina virtual e, em seguida, desativar o Secure Boot nas configurações do firmware.
- Utilize o msconfig mais uma vez para ativar a depuração do kernel (desta vez será bem-sucedido);
- Reinicie a VM;
- Conecte-se ao pipe via windbg da partição pai;
Conclusão
Em resumo, embora o Hyper-V não forneça passthrough direto de portas COM físicas para máquinas virtuais, a comunicação serial ainda pode ser obtida usando pipes nomeados, configuração via PowerShell e ferramentas especializadas de redirecionamento. Esses métodos tornam possível trabalhar com VMs Gen 1 e Gen 2 para tarefas como suporte a software legado, integração de hardware ou depuração.
Em cenários em que o acesso serial direto não é prático, o Serial to Ethernet Connector pode ser uma alternativa eficaz. Ao converter dados seriais em tráfego de rede, esses dispositivos permitem que equipamentos baseados em COM sejam acessados via TCP/IP e facilmente compartilhados com máquinas virtuais. Combinada com software de redirecionamento de porta serial, essa abordagem oferece maior flexibilidade e simplifica o acesso a dispositivos seriais físicos em ambientes Hyper-V virtualizados.