it-swarm-es.tech

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

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

Entonces, mis preguntas son:

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

Ahora puedo responder a mi propia pregunta en función del comentario de Stefan y los dos artículos vinculados:

Esta es la solucion:

  • No necesita editar nada que tenga que ver con la configuración del Host siempre que tenga el dispositivo serial predeterminado apuntando a pty allí.
  • Asegúrese de que el parámetro de arranque de su kernel tenga esto anexado: serial=tty0 console=ttyS0,115200n8. Generalmente se logra editando /boot/grub/menu.lst
  • Configurar /etc/inittab y agregue la línea T0:S12345:respawn:/sbin/getty -hL ttyS0 115200 vt100 para iniciar un getty y darle el aviso de inicio de sesión.

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

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

¡Gracias Stefan!

5
user119

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

Serie del cargador de arranque

  • Prensa 2 en la pantalla de opciones de arranque de FreeBSD para escapar al indicador del cargador
  • tipo set console=comconsole
    • si pierde interactividad en este punto, verifique si la velocidad en baudios de tty virtual es 9600
  • escriba autoboot

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

Serie posterior a la instalación

En la consola:

  • tipo echo 'console="comconsole"' >> /boot/loader.conf
  • carga /etc/ttys en vi
  • Modifique la línea que comienza con ttyu0 (podría ser ttyd0 en otras versiones de FreeBSD)
    • En esa línea cambie dialup a vt100 y off a on
  • después del reinicio, la terminal serial debería mostrar el proceso de inicio y terminar con un mensaje de inicio de sesión
    • Nota: configuración console="comconsole" en /boot/loader.conf podría hacer que los mensajes de arranque aparezcan solo en la interfaz serial. Simplemente modifique /etc/ttys si no desea que el registro de arranque sea en serie.

Referencias

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

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

2
Peter Olson

Bueno, tienes que emular un puerto serie dentro del emulador, por supuesto, y tenerlo accesible en el Host. El sistema operativo invitado debe poner algo en su 'puerto serie de hardware', como un indicador de inicio de sesión, por ejemplo, getty_ps. Ahora, personalmente, no he tenido que usarlo de esta manera. En su mayoría, 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. Intentaré aquí hacer que algo se ejecute en la consola serie emulada dentro de qemu.

0
reiche

La respuesta de OP funciona, pero cuando lo intenté con mi env (host Linux, cliente Linux)

  1. serial=tty0 no era necesario
  2. usando xterm en lugar de vt100 en /etc/inittab funciona mejor (obtienes color)
0
Andy Song