Como conecto um terminal serial a uma instância KVM?


12

Talvez eu esteja entendendo mal do que o KVM é capaz, mas a capacidade de adicionar / remover hardware na VM parece implicar que eu possa adicionar uma porta serial que então 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 acesso o referido terminal do meu host Linux?

Respostas:


5

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 à configuração do host, desde que ele possua o dispositivo serial padrão apontando para pty.
  • Verifique se o parâmetro de inicialização para o seu kernel tem este anexado: serial=tty0 console=ttyS0,115200n8. Geralmente alcançado pela edição/boot/grub/menu.lst
  • Configure /etc/inittabe acrescente a linha T0:S12345:respawn:/sbin/getty -hL ttyS0 115200 vt100para 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=0como um parâmetro adicional porque o sistema em questão é o couro cru do fedora executando o SELinux MLS).

Acho que a partir daí eu provavelmente posso descobrir como fazer o mesmo no freebsd.

Obrigado Stefan!


Eu acho que serial=tty0é um erro e era para ser console=tty0. Não vejo um parâmetro "serial" em nenhum dos documentos do kernel. A especificação de vários consoles (nesse caso, o console virtual ativo mais o console serial) faz sentido para mim.
mattdm

2

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, serão necessárias as instruções seriais do carregador de inicialização. Se você já possui um console e deseja apenas ter acesso serial, siga as instruções seriais pós-instalação.

Série do carregador de inicialização

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

Isso deve permitir que o restante da instalação seja feito pela interface serial. Se você quiser continuar tendo acesso serial após a instalação do FreeBSD, antes de reiniciar no final da instalação, você será direcionado ao prompt de comando.

Serial pós-instalação

No console:

  • tipo echo 'console="comconsole"' >> /boot/loader.conf
  • carregar /etc/ttysno vi
  • Modifique a linha começando com ttyu0 (pode ser ttyd0 em outras versões do FreeBSD)
    • Nessa linha, mude dialuppara vt100e offparaon
  • após a reinicialização, o terminal serial deve mostrar o processo de inicialização e terminar com um prompt de login
    • Nota: definir console="comconsole"em /boot/loader.confpoderia fazer as mensagens de inicialização aparecer na interface serial somente. Apenas modifique /etc/ttysse você não deseja que o log de inicialização seja serial.

Referências

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

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


0

Bem, é necessário 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, pessoalmente, não tive que usá-lo dessa maneira. Principalmente, a porta serial emulada no sistema operacional convidado é usada para informações de depuração (o Haiku ainda a usa por padrão) e é capturada pelo emulador (como VMware) como um arquivo de texto simples para disponibilizar as informações de depuração. tentarei aqui executar algo no console serial emulado no qemu.


0

A resposta do OP funciona, mas quando tentei com meu env (host Linux, cliente Linux)

  1. serial=tty0 não era necessário
  2. usando o xterm, o vt100 /etc/inittabfunciona melhor (você obtém cores)
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.