¿Cómo conecto un terminal serie a una instancia KVM?

¿Cómo conecto un terminal serie a una instancia KVM?

Quizás no entiendo de qué es capaz KVM, pero la capacidad de agregar o quitar hardware en la VM parece implicar que puedo agregar un puerto serie que luego actúa como terminal.

Entonces, mis preguntas son:

  1. ¿Qué configuraciones son mejores para la distribución invitada de FreeBSD? (¡Hay muchos!)
  2. ¿Cómo accedo a dicha terminal desde mi host Linux?

Respuesta1

Ahora puedo responder mi propia pregunta basada enEstebanEl comentario de y los dos artículos vinculados:

Aquí está la solución:

  • No necesita editar nada relacionado con la configuración del host siempre que tenga el dispositivo serie predeterminado apuntando a pty allí.
  • Asegúrese de que el parámetro de arranque de su kernel tenga esto adjunto: serial=tty0 console=ttyS0,115200n8. Generalmente se logra editando/boot/grub/menu.lst
  • Configure /etc/inittaby agregue la línea T0:S12345:respawn:/sbin/getty -hL ttyS0 115200 vt100para iniciar un getty y brindarle el mensaje de inicio de sesión.

Puedo confirmar que esto funciona para mí usando un sistema Fedora (aunque tuve que configurarlo enforcing=0como un parámetro adicional porque el sistema en cuestión es Fedora Rawhide que ejecuta SELinux MLS).

Creo que a partir de ahí probablemente pueda descubrir cómo hacer lo mismo con freebsd.

Gracias Esteban!

Respuesta2

En respuesta a cómo configurar su máquina FreeBSD, hay dos casos principales para obtener el número de serie. Si está instalando FreeBSD solo con el puerto serie, necesitará las instrucciones del cargador de arranque en serie. Si ya tiene una consola y solo desea tener acceso en serie también, siga las instrucciones en serie posteriores a la instalación.

Serie del cargador de arranque

  • Presione 2en la pantalla de opciones de inicio de FreeBSD para escapar al indicador del cargador
  • tiposet console=comconsole
    • Si pierde interactividad en este punto, verifique si la velocidad en baudios del tty virtual es 9600
  • tipoautoboot

Esto debería permitir que el resto de la instalación se realice a través de la interfaz serie. Si desea seguir teniendo acceso en serie después de instalar FreeBSD, antes de reiniciar al final de la instalación, deberá acceder al símbolo del sistema.

Serie posterior a la instalación

En la consola:

  • tipoecho 'console="comconsole"' >> /boot/loader.conf
  • cargar /etc/ttysen vi
  • Modifique la línea que comienza con ttyu0 (podría ser ttyd0 en otras versiones de FreeBSD)
    • En esa línea cambie dialuphacia vt100y offhaciaon
  • Después del reinicio, el terminal serie debería mostrar el proceso de inicio y finalizar con un mensaje de inicio de sesión.
    • Nota: la configuración console="comconsole"podría /boot/loader.confhacer que los mensajes de inicio aparezcan solo en la interfaz serie. Simplemente modifíquelo /etc/ttyssi no desea que el registro de inicio se realice en serie.

Referencias

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

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

Respuesta3

Bueno, por supuesto, debes emular un puerto serie dentro del emulador y tener acceso a él en el host. El sistema operativo invitado debería poner algo en su 'puerto serie de hardware' como un mensaje de inicio de sesión a través de, por ejemplo, getty_ps. Ahora personalmente no he tenido que usarlo de esta manera. Principalmente, el puerto serie emulado en el sistema operativo invitado se usa para depurar información (Haiku todavía lo usa de forma predeterminada) y luego el emulador (como VMware) lo captura como un simple archivo de texto para tener la información de depuración disponible. Intentaremos aquí ejecutar algo en la consola serie emulada dentro de qemu.

Respuesta4

La respuesta de OP funciona, pero cuando probé con mi entorno (host Linux, cliente Linux)

  1. serial=tty0no era necesario
  2. usar xterm en lugar de vt100 /etc/inittabfunciona mejor (obtienes color)

información relacionada