ti-enxame.com

Como faço para conectar um terminal serial a uma instância KVM?

Talvez eu não esteja entendendo do que KVM é capaz, mas a capacidade de adicionar/remover hardware no VM parece implicar que posso adicionar uma porta serial que em seguida, atua como um terminal.

Então, minhas perguntas são:

  1. Quais configurações são melhores para a distribuição do FreeBSD convidado? (Há muitos!)
  2. Como faço para acessar o referido terminal do meu host Linux?
12
user119

Agora posso responder minha própria pergunta com base no comentário de Stefan e nos dois artigos vinculados:

Aqui está a solução:

  • Você não precisa editar nada relacionado com a configuração do Host, desde que tenha o dispositivo serial padrão apontando para pty.
  • Certifique-se de que o parâmetro de inicialização para o seu kernel tenha este anexo: serial=tty0 console=ttyS0,115200n8. Normalmente obtido editando /boot/grub/menu.lst
  • Configurar /etc/inittab e acrescente a linha T0:S12345:respawn:/sbin/getty -hL ttyS0 115200 vt100 para iniciar um getty e fornecer o prompt de login.

Posso confirmar que isso funciona para mim usando um sistema Fedora (embora eu tenha que definir enforcing=0 como um parâmetro adicional porque o sistema em questão é Fedora rawhide executando SELinux MLS).

Acho que a partir daí provavelmente poderei descobrir como fazer o mesmo para o freebsd.

Obrigado Stefan!

5
user119

Em resposta a como configurar sua máquina FreeBSD, existem dois casos principais para obter serial. Se você estiver instalando o FreeBSD apenas com serial, as instruções serial do carregador de inicialização serão necessárias. Se você já tem um console e também deseja ter acesso serial, siga as instruções seriais pós-instalação.

Bootloader serial

  • Pressione 2 na tela de opções de inicialização do FreeBSD para escapar para o prompt do carregador
  • tipo set console=comconsole
    • se você perder interatividade neste ponto, verifique se a taxa de transmissão de tty virtual é 9600
  • tipo autoboot

Isso deve permitir que o restante da instalação seja feito pela interface serial. Se você deseja continuar a ter acesso serial após a instalação do FreeBSD, antes de reinicializar no final da instalação, vá para o prompt de comando.

Série pós-instalação

No console:

  • tipo echo 'console="comconsole"' >> /boot/loader.conf
  • carga /etc/ttys em vi
  • Modifique a linha começando com ttyu0 (pode ser ttyd0 em outras versões do FreeBSD)
    • Nessa linha, altere dialup para vt100 e off a on
  • após a reinicialização, o terminal serial deve mostrar o processo de inicialização e terminar com um prompt de login
    • Nota: configuração console="comconsole" no /boot/loader.conf pode fazer com que as mensagens de inicialização apareçam apenas na interface serial. Basta modificar /etc/ttys se você não quiser o log de inicialização via serial.

Referências

http://www.freebsd.org/doc/handbook/serialconsole-setup.html

http://www.freebsd.org/doc/handbook/term.html

2
Peter Olson

Bem, você tem que emular uma porta serial dentro do emulador, é claro, e ter isso acessível no Host. O sistema operacional convidado deve colocar algo em sua 'porta serial de hardware' como um prompt de login via, por exemplo, getty_ps. Agora, eu pessoalmente não tive que usar dessa forma. Principalmente a porta serial emulada no sistema operacional convidado é usada para informações de depuração (o Haiku ainda usa isso por padrão) e então é capturada pelo emulador (como VMware) como um arquivo de texto simples para ter as informações de depuração disponíveis. Tentarei aqui fazer algo rodando no console serial emulado dentro do qemu.

0
reiche

A resposta do OP funciona, mas quando tentei com meu env (Linux Host, Linux client)

  1. serial=tty0 não era necessário
  2. usando xterm em vez de vt100 em /etc/inittab funciona melhor (você ganha cor)
0
Andy Song