Configuração da Porta Serial do Hyper-V: Instruções Passo a Passo

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”.

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.

conector serial para ethernet - criar porta COM do servidor

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;

nome do tubo

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).

confirmar criação do pipe

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.

Configurações do Hyper-V

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:

PowerShell

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:

configurar um caminho de pipe

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.)

gerenciador de dispositivos com porta

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:

configuração do sistema

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.

ativar Inicialização Segura
  1. Utilize o msconfig mais uma vez para ativar a depuração do kernel (desta vez será bem-sucedido);
  2. Reinicie a VM;
  3. Conecte-se ao pipe via windbg da partição pai;
conectar ao pipe

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.