mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-11-05 20:35:44 +00:00
qemu-options.hx: Improve documentation of chardev multiplexing mode
The current documentation of chardev mux=on is rather brief and opaque; expand it to hopefully be a bit more helpful. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Message-Id: <1455643738-6068-1-git-send-email-peter.maydell@linaro.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
dd5e38b19d
commit
a40db1b36b
2 changed files with 63 additions and 12 deletions
|
@ -158,7 +158,8 @@ TODO (no longer available)
|
|||
* pcsys_introduction:: Introduction
|
||||
* pcsys_quickstart:: Quick Start
|
||||
* sec_invocation:: Invocation
|
||||
* pcsys_keys:: Keys
|
||||
* pcsys_keys:: Keys in the graphical frontends
|
||||
* mux_keys:: Keys in the character backend multiplexer
|
||||
* pcsys_monitor:: QEMU Monitor
|
||||
* disk_images:: Disk Images
|
||||
* pcsys_network:: Network emulation
|
||||
|
@ -272,7 +273,7 @@ targets do not need a disk image.
|
|||
@c man end
|
||||
|
||||
@node pcsys_keys
|
||||
@section Keys
|
||||
@section Keys in the graphical frontends
|
||||
|
||||
@c man begin OPTIONS
|
||||
|
||||
|
@ -322,15 +323,23 @@ Toggle mouse and keyboard grab.
|
|||
In the virtual consoles, you can use @key{Ctrl-Up}, @key{Ctrl-Down},
|
||||
@key{Ctrl-PageUp} and @key{Ctrl-PageDown} to move in the back log.
|
||||
|
||||
@kindex Ctrl-a h
|
||||
During emulation, if you are using the @option{-nographic} option, use
|
||||
@key{Ctrl-a h} to get terminal commands:
|
||||
@c man end
|
||||
|
||||
@node mux_keys
|
||||
@section Keys in the character backend multiplexer
|
||||
|
||||
@c man begin OPTIONS
|
||||
|
||||
During emulation, if you are using a character backend multiplexer
|
||||
(which is the default if you are using @option{-nographic}) then
|
||||
several commands are available via an escape sequence. These
|
||||
key sequences all start with an escape character, which is @key{Ctrl-a}
|
||||
by default, but can be changed with @option{-echr}. The list below assumes
|
||||
you're using the default.
|
||||
|
||||
@table @key
|
||||
@item Ctrl-a h
|
||||
@kindex Ctrl-a h
|
||||
@item Ctrl-a ?
|
||||
@kindex Ctrl-a ?
|
||||
Print this help
|
||||
@item Ctrl-a x
|
||||
@kindex Ctrl-a x
|
||||
|
@ -346,10 +355,11 @@ Toggle console timestamps
|
|||
Send break (magic sysrq in Linux)
|
||||
@item Ctrl-a c
|
||||
@kindex Ctrl-a c
|
||||
Switch between console and monitor
|
||||
Rotate between the frontends connected to the multiplexer (usually
|
||||
this switches between the monitor and the console)
|
||||
@item Ctrl-a Ctrl-a
|
||||
@kindex Ctrl-a a
|
||||
Send Ctrl-a
|
||||
@kindex Ctrl-a Ctrl-a
|
||||
Send the escape character to the frontend
|
||||
@end table
|
||||
@c man end
|
||||
|
||||
|
|
|
@ -2162,8 +2162,49 @@ 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.
|
||||
|
||||
A character device may be used in multiplexing mode by multiple front-ends.
|
||||
The key sequence of @key{Control-a} and @key{c} will rotate the input focus
|
||||
between attached front-ends. Specify @option{mux=on} to enable this mode.
|
||||
Specify @option{mux=on} to enable this mode.
|
||||
A multiplexer is a "1:N" device, and here the "1" end is your specified chardev
|
||||
backend, and the "N" end is the various parts of QEMU that can talk to a chardev.
|
||||
If you create a chardev with @option{id=myid} and @option{mux=on}, QEMU will
|
||||
create a multiplexer with your specified ID, and you can then configure multiple
|
||||
front ends to use that chardev ID for their input/output. Up to four different
|
||||
front ends can be connected to a single multiplexed chardev. (Without
|
||||
multiplexing enabled, a chardev can only be used by a single front end.)
|
||||
For instance you could use this to allow a single stdio chardev to be used by
|
||||
two serial ports and the QEMU monitor:
|
||||
|
||||
@example
|
||||
-chardev stdio,mux=on,id=char0 \
|
||||
-mon chardev=char0,mode=readline,default \
|
||||
-serial chardev:char0 \
|
||||
-serial chardev:char0
|
||||
@end example
|
||||
|
||||
You can have more than one multiplexer in a system configuration; for instance
|
||||
you could have a TCP port multiplexed between UART 0 and UART 1, and stdio
|
||||
multiplexed between the QEMU monitor and a parallel port:
|
||||
|
||||
@example
|
||||
-chardev stdio,mux=on,id=char0 \
|
||||
-mon chardev=char0,mode=readline,default \
|
||||
-parallel chardev:char0 \
|
||||
-chardev tcp,...,mux=on,id=char1 \
|
||||
-serial chardev:char1 \
|
||||
-serial chardev:char1
|
||||
@end example
|
||||
|
||||
When you're using a multiplexed character device, some escape sequences are
|
||||
interpreted in the input. @xref{mux_keys, Keys in the character backend
|
||||
multiplexer}.
|
||||
|
||||
Note that some other command line options may implicitly create multiplexed
|
||||
character backends; for instance @option{-serial mon:stdio} creates a
|
||||
multiplexed stdio backend connected to the serial port and the QEMU monitor,
|
||||
and @option{-nographic} also multiplexes the console and the monitor to
|
||||
stdio.
|
||||
|
||||
There is currently no support for multiplexing in the other direction
|
||||
(where a single QEMU front end takes input and output from multiple chardevs).
|
||||
|
||||
Every backend supports the @option{logfile} option, which supplies the path
|
||||
to a file to record all data transmitted via the backend. The @option{logappend}
|
||||
|
|
Loading…
Reference in a new issue