linux serial-port virtualization kvm qemu

Obtenga dos cajas Linux(virtuales) hablando por un puerto serie



serial-port virtualization (3)

El Linux Serial HOWTO tiene mucha información detallada acerca de la comunicación serial en general. El CÓDIGO de la consola en serie remota Linux más específico es lo que realmente está buscando si desea poder iniciar sesión en sus sistemas virtualizados utilizando el puerto serie como si estuviera en la consola. Como indicó Hein, necesitarás un cable de módem nulo y necesitas ejecutar minicom en la terminal remota.

La consola Linux se usa de dos maneras, cada una de las cuales debe configurarse por separado para uso en serie. Puede configurar el kernel para copiar sus mensajes a través del puerto serie, lo que a veces es interesante para ver el arranque del sistema y casi indispensable si está realizando la depuración del kernel. (Esto requiere compatibilidad con kernel y la actualización de los parámetros de arranque para que el kernel sepa que desea una salida en serie; consulte el capítulo 5 del segundo tutorial). Probablemente esté más interesado en iniciar sesión a través del puerto serie, que requiere ejecutar getty en el puerto serie después del arranque (al igual que su sistema ya ejecuta getty en los terminales virtuales después del arranque), que se describe en detalle en el capítulo 6 del tutorial.

¿Cuál es la mejor manera de configurar una caja Linux para escuchar en su puerto serie las conexiones entrantes? He hecho muchas búsquedas en Google, pero no encuentro la combinación correcta de comandos para lograr que hablen.

Mi objetivo principal es proporcionar una interfaz serial para ejecutar instancias de máquinas virtuales kvm / qemu. Actualmente solo tienen una interfaz VNC (están en servidores sin cabeza, no en X). Puedo hacer que la máquina virtual cree un dispositivo en serie empezándolo con el archivo -serial: marca, pero cómo hablar con él es otro problema. Ambas cajas ejecutan Ubuntu 8.04.


Digamos que estás haciendo esto en / dev / tty1.

en el caparazón

chown *youruser* /dev/tty1

luego en un script Perl llamado example.pl

open PORT, "</dev/tty1" || die "Can''t open port: $!"; while (defined ($_ = <PORT>)) { do_something($_); } close PORT;

Obviamente, hay más por hacer si desea que esto comience automáticamente y reaparezca por error, y así sucesivamente. Pero la idea básica es leer desde el puerto serie como un archivo.


Supongo que conectas los dos puertos seriales usando un cable de "módem nulo".

Use un programa como minicom para hablar con el sistema remoto; probablemente necesite configurar los parámetros de comunicación y posiblemente desactivar el control de flujo de hardware (si su cable no tiene las líneas de control de flujo conectadas).