Na página de manual:
-chardev backend ,id=id [,mux=on|off] [,options]
Backend is one of: null, socket, udp, msmouse, vc, ringbuf, file, pipe, console, serial, pty, stdio, braille, tty, parallel, parport, spicevmc. spiceport. The specific backend will determine the applicable options.
All devices must have an id, which can be any string up to 127 characters long. It is used to uniquely identify this device in other command line directives.
E sobre o backend stdio em particular:
-chardev stdio ,id=id [,signal=on|off]
Connect to standard input and standard output of the QEMU process.
Portanto, este conecta o chardev virtiocon0
com o processo qemu 'stdin / out.
Os outros dois são:
-device driver[,prop[=value][,...]]
Add device driver. prop=value sets driver properties. Valid properties depend on the driver.
O primeiro driver, virtio-serial
, simplesmente cria um canal de comunicação entre o host e o convidado. Isso é necessário para o próximo driver.
O último, virtconsole
cria um dispositivo de console no convidado, anexado ao chardev criado antes, que foi anexado ao stdio / out do qemu.
O convidado pode usar esse dispositivo de console como qualquer outro tty (por exemplo, chamar getty
, etc.).
O dispositivo criado no guest dependerá do kernel e como ele foi compilado, no linux normalmente é / dev / hvc0.
Não há dispositivo criado no host nesse caso, ele simplesmente usa stdin e stdout. Leia a partir dele no stdin e escreva na stdout.
Você também pode redirecionar stdin e stdout para outra coisa ou usar um backend chardev
diferente. Tente soquete ou cano.