qemu-options.hx: describe hub chardev and aggregation of several backends
This adds a few lines describing `hub` aggregator configuration for aggregation of several backend devices with a single frontend device. Signed-off-by: Roman Penyaev <r.peniaev@gmail.com> Reviewed-by: "Marc-André Lureau" <marcandre.lureau@redhat.com> Cc: qemu-devel@nongnu.org Message-ID: <20250123085327.965501-5-r.peniaev@gmail.com>
This commit is contained in:
parent
c9c05ed525
commit
aeb6b818c1
@ -3733,7 +3733,7 @@ SRST
|
|||||||
The general form of a character device option is:
|
The general form of a character device option is:
|
||||||
|
|
||||||
``-chardev backend,id=id[,mux=on|off][,options]``
|
``-chardev backend,id=id[,mux=on|off][,options]``
|
||||||
Backend is one of: ``null``, ``socket``, ``udp``, ``msmouse``,
|
Backend is one of: ``null``, ``socket``, ``udp``, ``msmouse``, ``hub``,
|
||||||
``vc``, ``ringbuf``, ``file``, ``pipe``, ``console``, ``serial``,
|
``vc``, ``ringbuf``, ``file``, ``pipe``, ``console``, ``serial``,
|
||||||
``pty``, ``stdio``, ``braille``, ``parallel``,
|
``pty``, ``stdio``, ``braille``, ``parallel``,
|
||||||
``spicevmc``, ``spiceport``. The specific backend will determine the
|
``spicevmc``, ``spiceport``. The specific backend will determine the
|
||||||
@ -3790,9 +3790,10 @@ The general form of a character device option is:
|
|||||||
the QEMU monitor, and ``-nographic`` also multiplexes the console
|
the QEMU monitor, and ``-nographic`` also multiplexes the console
|
||||||
and the monitor to stdio.
|
and the monitor to stdio.
|
||||||
|
|
||||||
There is currently no support for multiplexing in the other
|
If you need to aggregate data in the opposite direction (where one
|
||||||
direction (where a single QEMU front end takes input and output from
|
QEMU frontend interface receives input and output from multiple
|
||||||
multiple chardevs).
|
backend chardev devices), please refer to the paragraph below
|
||||||
|
regarding chardev ``hub`` aggregator device configuration.
|
||||||
|
|
||||||
Every backend supports the ``logfile`` option, which supplies the
|
Every backend supports the ``logfile`` option, which supplies the
|
||||||
path to a file to record all data transmitted via the backend. The
|
path to a file to record all data transmitted via the backend. The
|
||||||
@ -3892,6 +3893,46 @@ The available backends are:
|
|||||||
Forward QEMU's emulated msmouse events to the guest. ``msmouse``
|
Forward QEMU's emulated msmouse events to the guest. ``msmouse``
|
||||||
does not take any options.
|
does not take any options.
|
||||||
|
|
||||||
|
``-chardev hub,id=id,chardevs.0=id[,chardevs.N=id]``
|
||||||
|
Explicitly create chardev backend hub device with the possibility
|
||||||
|
to aggregate input from multiple backend devices and forward it to
|
||||||
|
a single frontend device. Additionally, ``hub`` device takes the
|
||||||
|
output from the frontend device and sends it back to all the
|
||||||
|
connected backend devices. This allows for seamless interaction
|
||||||
|
between different backend devices and a single frontend
|
||||||
|
interface. Aggregation supported for up to 4 chardev
|
||||||
|
devices. (Since 10.0)
|
||||||
|
|
||||||
|
For example, the following is a use case of 2 backend devices:
|
||||||
|
virtual console ``vc0`` and a pseudo TTY ``pty0`` connected to
|
||||||
|
a single virtio hvc console frontend device with a hub ``hub0``
|
||||||
|
help. Virtual console renders text to an image, which can be
|
||||||
|
shared over the VNC protocol. In turn, pty backend provides
|
||||||
|
bidirectional communication to the virtio hvc console over the
|
||||||
|
pseudo TTY file. The example configuration can be as follows:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
-chardev pty,path=/tmp/pty,id=pty0 \
|
||||||
|
-chardev vc,id=vc0 \
|
||||||
|
-chardev hub,id=hub0,chardevs.0=pty0,chardevs.1=vc0 \
|
||||||
|
-device virtconsole,chardev=hub0 \
|
||||||
|
-vnc 0.0.0.0:0
|
||||||
|
|
||||||
|
Once QEMU starts VNC client and any TTY emulator can be used to
|
||||||
|
control a single hvc console:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
# Start TTY emulator
|
||||||
|
tio /tmp/pty
|
||||||
|
|
||||||
|
# Start VNC client and switch to virtual console Ctrl-Alt-2
|
||||||
|
vncviewer :0
|
||||||
|
|
||||||
|
Several frontend devices is not supported. Stacking of multiplexers
|
||||||
|
and hub devices is not supported as well.
|
||||||
|
|
||||||
``-chardev vc,id=id[[,width=width][,height=height]][[,cols=cols][,rows=rows]]``
|
``-chardev vc,id=id[[,width=width][,height=height]][[,cols=cols][,rows=rows]]``
|
||||||
Connect to a QEMU text console. ``vc`` may optionally be given a
|
Connect to a QEMU text console. ``vc`` may optionally be given a
|
||||||
specific size.
|
specific size.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user