qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2 1/2] trap signals for "-serial mon:stdio"
@ 2013-07-03  6:44 Michael Tokarev
  2013-07-03  6:44 ` [Qemu-devel] [PATCH v2 2/2] display: stop using DT_NOGRAPHIC, use DT_NONE Michael Tokarev
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Michael Tokarev @ 2013-07-03  6:44 UTC (permalink / raw)
  To: Anthony Liguori, qemu-devel; +Cc: Paolo Bonzini, mjt

From: Paolo Bonzini <pbonzini@redhat.com>

With mon:stdio you can exit the VM by switching to the monitor and
sending the "quit" command.  It is then useful to pass Ctrl-C to the
VM instead of exiting.

This in turn lets us stop tying the default signal handling behavior
to -nographic, removing gratuitous differences between "-display none"
and "-nographic".

This patch changes behavior for "-display none -serial mon:stdio", as
expected, but not for "-display none -serial stdio".

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
---
V2: added code comments and documentation fixes by mjt
  (hopefully the s-o-b stands still)

 qemu-char.c     |   13 +++++++++----
 qemu-options.hx |    8 +++++---
 2 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/qemu-char.c b/qemu-char.c
index 6cec5d7..18c42a3 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -926,7 +926,6 @@ static void qemu_chr_set_echo_stdio(CharDriverState *chr, bool echo)
         tty.c_cc[VMIN] = 1;
         tty.c_cc[VTIME] = 0;
     }
-    /* if graphical mode, we allow Ctrl-C handling */
     if (!stdio_allow_signal)
         tty.c_lflag &= ~ISIG;
 
@@ -955,7 +954,6 @@ static CharDriverState *qemu_chr_open_stdio(ChardevStdio *opts)
     chr = qemu_chr_open_fd(0, 1);
     chr->chr_close = qemu_chr_close_stdio;
     chr->chr_set_echo = qemu_chr_set_echo_stdio;
-    stdio_allow_signal = display_type != DT_NOGRAPHIC;
     if (opts->has_signal) {
         stdio_allow_signal = opts->signal;
     }
@@ -2932,6 +2930,14 @@ QemuOpts *qemu_chr_parse_compat(const char *label, const char *filename)
     if (strstart(filename, "mon:", &p)) {
         filename = p;
         qemu_opt_set(opts, "mux", "on");
+        if (strcmp(filename, "stdio") == 0) {
+            /* Monitor is muxed to stdio: do not exit on Ctrl+C by default
+             * but pass it to the guest.  Handle this only for compat syntax,
+             * for -chardev syntax we have special option for this.
+             * This is what -nographic did, redirecting+muxing serial+monitor
+             * to stdio causing Ctrl+C to be passed to guest. */
+            qemu_opt_set(opts, "signal", "off");
+        }
     }
 
     if (strcmp(filename, "null")    == 0 ||
@@ -3060,8 +3066,7 @@ static void qemu_chr_parse_stdio(QemuOpts *opts, ChardevBackend *backend,
 {
     backend->stdio = g_new0(ChardevStdio, 1);
     backend->stdio->has_signal = true;
-    backend->stdio->signal =
-        qemu_opt_get_bool(opts, "signal", display_type != DT_NOGRAPHIC);
+    backend->stdio->signal = qemu_opt_get_bool(opts, "signal", true);
 }
 
 static void qemu_chr_parse_serial(QemuOpts *opts, ChardevBackend *backend,
diff --git a/qemu-options.hx b/qemu-options.hx
index 137a39b..d676b03 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -842,7 +842,8 @@ STEXI
 Normally, QEMU uses SDL to display the VGA output. With this option,
 you can totally disable graphical output so that QEMU is a simple
 command line application. The emulated serial port is redirected on
-the console. Therefore, you can still use QEMU to debug a Linux kernel
+the console and muxed with the monitor (unless redirected elsewhere
+explicitly). Therefore, you can still use QEMU to debug a Linux kernel
 with a serial console.
 ETEXI
 
@@ -2485,14 +2486,15 @@ same as if you had specified @code{-serial tcp} except the unix domain socket
 @item mon:@var{dev_string}
 This is a special option to allow the monitor to be multiplexed onto
 another serial port.  The monitor is accessed with key sequence of
-@key{Control-a} and then pressing @key{c}. See monitor access
-@ref{pcsys_keys} in the -nographic section for more keys.
+@key{Control-a} and then pressing @key{c}.
 @var{dev_string} should be any one of the serial devices specified
 above.  An example to multiplex the monitor onto a telnet server
 listening on port 4444 would be:
 @table @code
 @item -serial mon:telnet::4444,server,nowait
 @end table
+When monitor is multiplexed to stdio this way, Ctrl+C will not terminate
+guest anymore but will be passed to the guest as is.
 
 @item braille
 Braille device.  This will use BrlAPI to display the braille output on a real
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PATCH v2 2/2] display: stop using DT_NOGRAPHIC, use DT_NONE
  2013-07-03  6:44 [Qemu-devel] [PATCH v2 1/2] trap signals for "-serial mon:stdio" Michael Tokarev
@ 2013-07-03  6:44 ` Michael Tokarev
  2013-07-03  7:08 ` [Qemu-devel] [PATCH v2 1/2] trap signals for "-serial mon:stdio" Paolo Bonzini
  2013-07-03  7:13 ` Paolo Bonzini
  2 siblings, 0 replies; 7+ messages in thread
From: Michael Tokarev @ 2013-07-03  6:44 UTC (permalink / raw)
  To: Anthony Liguori, qemu-devel; +Cc: Todd T. Fries, Michael Tokarev

It looks like initially there was -nographic option to turn
off display, now there's another option of the same sort,
-display none.  But code in other places of qemu checks for
DT_NOGRAPHIC and does not work well with -display none.
Make DT_NOGRAPHIC an internal version which selects DT_NONE,
and check for that in all other places where previously we
checked for DT_NOGRAPHIC.

While at it, rename two private variants of display (DT_DEFAULT
and DT_NOGRAPHIC) to use two underscores and make them negative,
and set DT_NONE to 0.

This should fix the issue of non-working sun serial console
with the suggested replacement of -nographic which is
-display none.

Cc: Todd T. Fries <todd@fries.net>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
---
V2:
 - do not touch qemu-char, fixed differently as suggested by pbonzini
 - a bit more explicit comments about private DT__* constants
 - documentation additions and fixes to describe actual reality

 hw/lm32/milkymist-hw.h  |    2 +-
 hw/nvram/fw_cfg.c       |    2 +-
 hw/sparc/sun4m.c        |    2 +-
 include/sysemu/sysemu.h |    6 +++---
 qemu-options.hx         |   12 ++++++++++--
 vl.c                    |   15 +++++++--------
 6 files changed, 23 insertions(+), 16 deletions(-)

diff --git a/hw/lm32/milkymist-hw.h b/hw/lm32/milkymist-hw.h
index 5317ce6..59af720 100644
--- a/hw/lm32/milkymist-hw.h
+++ b/hw/lm32/milkymist-hw.h
@@ -107,7 +107,7 @@ static inline DeviceState *milkymist_tmu2_create(hwaddr base,
     int nelements;
     int ver_major, ver_minor;
 
-    if (display_type == DT_NOGRAPHIC) {
+    if (display_type == DT_NONE) {
         return NULL;
     }
 
diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c
index 3c255ce..b3d163a 100644
--- a/hw/nvram/fw_cfg.c
+++ b/hw/nvram/fw_cfg.c
@@ -510,7 +510,7 @@ FWCfgState *fw_cfg_init(uint32_t ctl_port, uint32_t data_port,
     }
     fw_cfg_add_bytes(s, FW_CFG_SIGNATURE, (char *)"QEMU", 4);
     fw_cfg_add_bytes(s, FW_CFG_UUID, qemu_uuid, 16);
-    fw_cfg_add_i16(s, FW_CFG_NOGRAPHIC, (uint16_t)(display_type == DT_NOGRAPHIC));
+    fw_cfg_add_i16(s, FW_CFG_NOGRAPHIC, (uint16_t)(display_type == DT_NONE));
     fw_cfg_add_i16(s, FW_CFG_NB_CPUS, (uint16_t)smp_cpus);
     fw_cfg_add_i16(s, FW_CFG_BOOT_MENU, (uint16_t)boot_menu);
     fw_cfg_bootsplash(s);
diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c
index 0e86ca7..c1d42ec 100644
--- a/hw/sparc/sun4m.c
+++ b/hw/sparc/sun4m.c
@@ -919,7 +919,7 @@ static void sun4m_hw_init(const struct sun4m_hwdef *hwdef, ram_addr_t RAM_size,
     slavio_timer_init_all(hwdef->counter_base, slavio_irq[19], slavio_cpu_irq, smp_cpus);
 
     slavio_serial_ms_kbd_init(hwdef->ms_kb_base, slavio_irq[14],
-                              display_type == DT_NOGRAPHIC, ESCC_CLOCK, 1);
+                              display_type == DT_NONE, ESCC_CLOCK, 1);
     /* Slavio TTYA (base+4, Linux ttyS0) is the first QEMU serial device
        Slavio TTYB (base+0, Linux ttyS1) is the second QEMU serial device */
     escc_init(hwdef->serial_base, slavio_irq[15], slavio_irq[15],
diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h
index 2fb71af..d1b7bd7 100644
--- a/include/sysemu/sysemu.h
+++ b/include/sysemu/sysemu.h
@@ -87,12 +87,12 @@ void do_info_slirp(Monitor *mon);
 
 typedef enum DisplayType
 {
-    DT_DEFAULT,
+    DT__DEFAULT = -1,   /* used internally in vl.c */
+    DT__NOGRAPHIC = -2, /* used internally in vl.c */
+    DT_NONE = 0,
     DT_CURSES,
     DT_SDL,
     DT_GTK,
-    DT_NOGRAPHIC,
-    DT_NONE,
 } DisplayType;
 
 extern int autostart;
diff --git a/qemu-options.hx b/qemu-options.hx
index d676b03..4669138 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -825,7 +825,11 @@ a text mode. Generally only the VGA device models support text mode.
 @item none
 Do not display video output. The guest will still see an emulated
 graphics card, but its output will not be displayed to the QEMU
-user. This option differs from the -nographic option in that it
+user.  The fact that we have no display is passed to firmware and
+affects a few other places depending on the target architecture,
+like switching console output to serial console or disabling keyboard
+input.
+This option differs from the -nographic option in that it
 only affects what is done with video output; -nographic also changes
 the destination of the serial and parallel port data.
 @item vnc
@@ -844,7 +848,11 @@ you can totally disable graphical output so that QEMU is a simple
 command line application. The emulated serial port is redirected on
 the console and muxed with the monitor (unless redirected elsewhere
 explicitly). Therefore, you can still use QEMU to debug a Linux kernel
-with a serial console.
+with a serial console.  This option is equivalent for
+@example
+-display none -serial mon:stdio -parallel none
+@end example
+unless serial, parallel and/or monitor were also specified.
 ETEXI
 
 DEF("curses", 0, QEMU_OPTION_curses,
diff --git a/vl.c b/vl.c
index 6d9fd7d..98d3e62 100644
--- a/vl.c
+++ b/vl.c
@@ -183,7 +183,7 @@ static const char *data_dir[16];
 static int data_dir_idx;
 const char *bios_name = NULL;
 enum vga_retrace_method vga_retrace_method = VGA_RETRACE_DUMB;
-DisplayType display_type = DT_DEFAULT;
+DisplayType display_type = DT__DEFAULT;
 static int display_remote;
 const char* keyboard_layout = NULL;
 ram_addr_t ram_size;
@@ -2183,7 +2183,7 @@ static void select_vgahw (const char *p)
 static DisplayType select_display(const char *p)
 {
     const char *opts;
-    DisplayType display = DT_DEFAULT;
+    DisplayType display = DT__DEFAULT;
 
     if (strstart(p, "sdl", &opts)) {
 #ifdef CONFIG_SDL
@@ -3125,7 +3125,7 @@ int main(int argc, char **argv, char **envp)
                 display_type = select_display(optarg);
                 break;
             case QEMU_OPTION_nographic:
-                display_type = DT_NOGRAPHIC;
+                display_type = DT__NOGRAPHIC;
                 break;
             case QEMU_OPTION_curses:
 #ifdef CONFIG_CURSES
@@ -3971,7 +3971,7 @@ int main(int argc, char **argv, char **envp)
          * -nographic _and_ redirects all ports explicitly - this is valid
          * usage, -nographic is just a no-op in this case.
          */
-        if (display_type == DT_NOGRAPHIC
+        if (display_type == DT__NOGRAPHIC
             && (default_parallel || default_serial
                 || default_monitor || default_virtcon)) {
             fprintf(stderr, "-nographic can not be used with -daemonize\n");
@@ -3985,7 +3985,8 @@ int main(int argc, char **argv, char **envp)
 #endif
     }
 
-    if (display_type == DT_NOGRAPHIC) {
+    if (display_type == DT__NOGRAPHIC) {
+        display_type = DT_NONE;
         if (default_parallel)
             add_device_config(DEV_PARALLEL, "null");
         if (default_serial && default_monitor) {
@@ -4019,7 +4020,7 @@ int main(int argc, char **argv, char **envp)
         }
     }
 
-    if (display_type == DT_DEFAULT && !display_remote) {
+    if (display_type == DT__DEFAULT && !display_remote) {
 #if defined(CONFIG_GTK)
         display_type = DT_GTK;
 #elif defined(CONFIG_SDL) || defined(CONFIG_COCOA)
@@ -4309,8 +4310,6 @@ int main(int argc, char **argv, char **envp)
 
     /* init local displays */
     switch (display_type) {
-    case DT_NOGRAPHIC:
-        break;
 #if defined(CONFIG_CURSES)
     case DT_CURSES:
         curses_display_init(ds, full_screen);
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] [PATCH v2 1/2] trap signals for "-serial mon:stdio"
  2013-07-03  6:44 [Qemu-devel] [PATCH v2 1/2] trap signals for "-serial mon:stdio" Michael Tokarev
  2013-07-03  6:44 ` [Qemu-devel] [PATCH v2 2/2] display: stop using DT_NOGRAPHIC, use DT_NONE Michael Tokarev
@ 2013-07-03  7:08 ` Paolo Bonzini
  2013-07-03  7:13 ` Paolo Bonzini
  2 siblings, 0 replies; 7+ messages in thread
From: Paolo Bonzini @ 2013-07-03  7:08 UTC (permalink / raw)
  To: Michael Tokarev; +Cc: Anthony Liguori, qemu-devel

Il 03/07/2013 08:44, Michael Tokarev ha scritto:
> V2: added code comments and documentation fixes by mjt
>   (hopefully the s-o-b stands still)

Yes, s-o-b means I effectively donate the patch to the community.

Paolo

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] [PATCH v2 1/2] trap signals for "-serial mon:stdio"
  2013-07-03  6:44 [Qemu-devel] [PATCH v2 1/2] trap signals for "-serial mon:stdio" Michael Tokarev
  2013-07-03  6:44 ` [Qemu-devel] [PATCH v2 2/2] display: stop using DT_NOGRAPHIC, use DT_NONE Michael Tokarev
  2013-07-03  7:08 ` [Qemu-devel] [PATCH v2 1/2] trap signals for "-serial mon:stdio" Paolo Bonzini
@ 2013-07-03  7:13 ` Paolo Bonzini
  2013-07-03  8:09   ` Michael Tokarev
  2 siblings, 1 reply; 7+ messages in thread
From: Paolo Bonzini @ 2013-07-03  7:13 UTC (permalink / raw)
  To: Michael Tokarev; +Cc: Anthony Liguori, qemu-devel

Il 03/07/2013 08:44, Michael Tokarev ha scritto:
> From: Paolo Bonzini <pbonzini@redhat.com>
> 
> With mon:stdio you can exit the VM by switching to the monitor and
> sending the "quit" command.  It is then useful to pass Ctrl-C to the
> VM instead of exiting.
> 
> This in turn lets us stop tying the default signal handling behavior
> to -nographic, removing gratuitous differences between "-display none"
> and "-nographic".
> 
> This patch changes behavior for "-display none -serial mon:stdio", as
> expected, but not for "-display none -serial stdio".
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
> ---
> V2: added code comments and documentation fixes by mjt
>   (hopefully the s-o-b stands still)
> 
>  qemu-char.c     |   13 +++++++++----
>  qemu-options.hx |    8 +++++---
>  2 files changed, 14 insertions(+), 7 deletions(-)
> 
> diff --git a/qemu-char.c b/qemu-char.c
> index 6cec5d7..18c42a3 100644
> --- a/qemu-char.c
> +++ b/qemu-char.c
> @@ -926,7 +926,6 @@ static void qemu_chr_set_echo_stdio(CharDriverState *chr, bool echo)
>          tty.c_cc[VMIN] = 1;
>          tty.c_cc[VTIME] = 0;
>      }
> -    /* if graphical mode, we allow Ctrl-C handling */
>      if (!stdio_allow_signal)
>          tty.c_lflag &= ~ISIG;
>  
> @@ -955,7 +954,6 @@ static CharDriverState *qemu_chr_open_stdio(ChardevStdio *opts)
>      chr = qemu_chr_open_fd(0, 1);
>      chr->chr_close = qemu_chr_close_stdio;
>      chr->chr_set_echo = qemu_chr_set_echo_stdio;
> -    stdio_allow_signal = display_type != DT_NOGRAPHIC;
>      if (opts->has_signal) {
>          stdio_allow_signal = opts->signal;
>      }
> @@ -2932,6 +2930,14 @@ QemuOpts *qemu_chr_parse_compat(const char *label, const char *filename)
>      if (strstart(filename, "mon:", &p)) {
>          filename = p;
>          qemu_opt_set(opts, "mux", "on");
> +        if (strcmp(filename, "stdio") == 0) {
> +            /* Monitor is muxed to stdio: do not exit on Ctrl+C by default
> +             * but pass it to the guest.  Handle this only for compat syntax,
> +             * for -chardev syntax we have special option for this.
> +             * This is what -nographic did, redirecting+muxing serial+monitor
> +             * to stdio causing Ctrl+C to be passed to guest. */
> +            qemu_opt_set(opts, "signal", "off");
> +        }
>      }
>  
>      if (strcmp(filename, "null")    == 0 ||
> @@ -3060,8 +3066,7 @@ static void qemu_chr_parse_stdio(QemuOpts *opts, ChardevBackend *backend,
>  {
>      backend->stdio = g_new0(ChardevStdio, 1);
>      backend->stdio->has_signal = true;
> -    backend->stdio->signal =
> -        qemu_opt_get_bool(opts, "signal", display_type != DT_NOGRAPHIC);
> +    backend->stdio->signal = qemu_opt_get_bool(opts, "signal", true);
>  }
>  
>  static void qemu_chr_parse_serial(QemuOpts *opts, ChardevBackend *backend,
> diff --git a/qemu-options.hx b/qemu-options.hx
> index 137a39b..d676b03 100644
> --- a/qemu-options.hx
> +++ b/qemu-options.hx
> @@ -842,7 +842,8 @@ STEXI
>  Normally, QEMU uses SDL to display the VGA output. With this option,
>  you can totally disable graphical output so that QEMU is a simple
>  command line application. The emulated serial port is redirected on
> -the console. Therefore, you can still use QEMU to debug a Linux kernel
> +the console and muxed with the monitor (unless redirected elsewhere
> +explicitly).

By default, the emulated serial port and the monitor are multiplexed on
the console; @option{-serial} and @option{-monitor} can be used to
change this default.

 Therefore, you can still use QEMU to debug a Linux kernel
>  with a serial console.
>  ETEXI
>  
> @@ -2485,14 +2486,15 @@ same as if you had specified @code{-serial tcp} except the unix domain socket
>  @item mon:@var{dev_string}
>  This is a special option to allow the monitor to be multiplexed onto
>  another serial port.  The monitor is accessed with key sequence of
> -@key{Control-a} and then pressing @key{c}. See monitor access
> -@ref{pcsys_keys} in the -nographic section for more keys.
> +@key{Control-a} and then pressing @key{c}.
>  @var{dev_string} should be any one of the serial devices specified
>  above.  An example to multiplex the monitor onto a telnet server
>  listening on port 4444 would be:
>  @table @code
>  @item -serial mon:telnet::4444,server,nowait
>  @end table
> +When monitor is multiplexed to stdio this way, Ctrl+C will not terminate
> +guest anymore but will be passed to the guest as is.

will not terminate QEMU anymore...
>  
>  @item braille
>  Braille device.  This will use BrlAPI to display the braille output on a real
> 

Also, there is another reference to -nographic here:

@item -echr @var{numeric_ascii_value}
@findex -echr
Change the escape character used for switching to the monitor when using
monitor and serial sharing.  The default is @code{0x01} when using the
@code{-nographic} option.  @code{0x01} is equal to pressing
@code{Control-a}.  You can select a different character from the ascii
control keys where 1 through 26 map to Control-a through Control-z.  For
instance you could use the either of the following to change the escape
character to Control-t.

You could remove "when using the @code{-nographic} option" from this
paragraph.

Paolo

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] [PATCH v2 1/2] trap signals for "-serial mon:stdio"
  2013-07-03  7:13 ` Paolo Bonzini
@ 2013-07-03  8:09   ` Michael Tokarev
  2013-07-03  8:13     ` Michael Tokarev
  2013-07-03  8:21     ` Paolo Bonzini
  0 siblings, 2 replies; 7+ messages in thread
From: Michael Tokarev @ 2013-07-03  8:09 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: Anthony Liguori, qemu-devel

03.07.2013 11:13, Paolo Bonzini wrote:
...
>> --- a/qemu-options.hx
>> +++ b/qemu-options.hx
>> @@ -842,7 +842,8 @@ STEXI
>>  Normally, QEMU uses SDL to display the VGA output. With this option,
>>  you can totally disable graphical output so that QEMU is a simple
>>  command line application. The emulated serial port is redirected on
>> -the console. Therefore, you can still use QEMU to debug a Linux kernel
>> +the console and muxed with the monitor (unless redirected elsewhere
>> +explicitly).
> 
> By default, the emulated serial port and the monitor are multiplexed on
> the console; @option{-serial} and @option{-monitor} can be used to
> change this default.
> 
>  Therefore, you can still use QEMU to debug a Linux kernel
>>  with a serial console.
>>  ETEXI
>>  
>> @@ -2485,14 +2486,15 @@ same as if you had specified @code{-serial tcp} except the unix domain socket
>>  @item mon:@var{dev_string}
>>  This is a special option to allow the monitor to be multiplexed onto
>>  another serial port.  The monitor is accessed with key sequence of
>> -@key{Control-a} and then pressing @key{c}. See monitor access
>> -@ref{pcsys_keys} in the -nographic section for more keys.
>> +@key{Control-a} and then pressing @key{c}.
>>  @var{dev_string} should be any one of the serial devices specified
>>  above.  An example to multiplex the monitor onto a telnet server
>>  listening on port 4444 would be:
>>  @table @code
>>  @item -serial mon:telnet::4444,server,nowait
>>  @end table
>> +When monitor is multiplexed to stdio this way, Ctrl+C will not terminate
>> +guest anymore but will be passed to the guest as is.
> 
> will not terminate QEMU anymore...
>>  
>>  @item braille
>>  Braille device.  This will use BrlAPI to display the braille output on a real
>>
> 
> Also, there is another reference to -nographic here:
> 
> @item -echr @var{numeric_ascii_value}
> @findex -echr
> Change the escape character used for switching to the monitor when using
> monitor and serial sharing.  The default is @code{0x01} when using the
> @code{-nographic} option.  @code{0x01} is equal to pressing
> @code{Control-a}.  You can select a different character from the ascii
> control keys where 1 through 26 map to Control-a through Control-z.  For
> instance you could use the either of the following to change the escape
> character to Control-t.
> 
> You could remove "when using the @code{-nographic} option" from this
> paragraph.


Ok.  Thank you for the review.  English isn't my native language so extra
eyes on my wording is always apprecated.  Here's a new diff just for the
documentation part, based on your suggestions.  I changed the wording
a bit further, to make it all fit better with the surrounding text.

I'll resend a v3 with this change.  The first 1/2 patch (trap signals)
and the actual code did not change.

/mjt

--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -825,7 +825,11 @@ a text mode. Generally only the VGA device models support text mode.
 @item none
 Do not display video output. The guest will still see an emulated
 graphics card, but its output will not be displayed to the QEMU
-user. This option differs from the -nographic option in that it
+user.  The fact that we have no display is passed to firmware and
+affects a few other places depending on the target architecture,
+like switching console output to serial console or disabling keyboard
+input.
+This option differs from the -nographic option in that it
 only affects what is done with video output; -nographic also changes
 the destination of the serial and parallel port data.
 @item vnc
@@ -841,10 +845,15 @@ STEXI
 @findex -nographic
 Normally, QEMU uses SDL to display the VGA output. With this option,
 you can totally disable graphical output so that QEMU is a simple
-command line application. The emulated serial port is redirected on
-the console and muxed with the monitor (unless redirected elsewhere
-explicitly). Therefore, you can still use QEMU to debug a Linux kernel
-with a serial console.
+command line application.  When this option is specified, unless
+redirected explicitly, the emulated serial port and the monitor
+are multiplexed on the console (stdio).
+This option is equivalent for
+@example
+-display none -serial mon:stdio -parallel none
+@end example
+Since even with no display, emulated serial port is still available,
+you can use QEMU to debug a Linux kernel with a serial console.
 ETEXI

 DEF("curses", 0, QEMU_OPTION_curses,
@@ -2494,7 +2503,7 @@ listening on port 4444 would be:
 @item -serial mon:telnet::4444,server,nowait
 @end table
 When monitor is multiplexed to stdio this way, Ctrl+C will not terminate
-guest anymore but will be passed to the guest as is.
+QEMU anymore but will be passed to the guest instead.

 @item braille
 Braille device.  This will use BrlAPI to display the braille output on a real
@@ -2867,12 +2876,11 @@ STEXI
 @item -echr @var{numeric_ascii_value}
 @findex -echr
 Change the escape character used for switching to the monitor when using
-monitor and serial sharing.  The default is @code{0x01} when using the
-@code{-nographic} option.  @code{0x01} is equal to pressing
-@code{Control-a}.  You can select a different character from the ascii
-control keys where 1 through 26 map to Control-a through Control-z.  For
-instance you could use the either of the following to change the escape
-character to Control-t.
+monitor and serial sharing.  The default is @code{0x01}, which is equivalent
+to pressing @code{Control-a}.
+You can select a different character from the ascii control keys where
+1 through 26 map to Control-a through Control-z.  For instance you could
+use the either of the following to change the escape character to Control-t.
 @table @code
 @item -echr 0x14
 @item -echr 20

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] [PATCH v2 1/2] trap signals for "-serial mon:stdio"
  2013-07-03  8:09   ` Michael Tokarev
@ 2013-07-03  8:13     ` Michael Tokarev
  2013-07-03  8:21     ` Paolo Bonzini
  1 sibling, 0 replies; 7+ messages in thread
From: Michael Tokarev @ 2013-07-03  8:13 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: Anthony Liguori, qemu-devel

03.07.2013 12:09, Michael Tokarev wrote:
...
> I'll resend a v3 with this change.  The first 1/2 patch (trap signals)
> and the actual code did not change.
...
> @@ -2494,7 +2503,7 @@ listening on port 4444 would be:
>  @item -serial mon:telnet::4444,server,nowait
>  @end table
>  When monitor is multiplexed to stdio this way, Ctrl+C will not terminate
> -guest anymore but will be passed to the guest as is.
> +QEMU anymore but will be passed to the guest instead.

This should go to the 1/2 patch ofcourse.. ;)

/mjt

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] [PATCH v2 1/2] trap signals for "-serial mon:stdio"
  2013-07-03  8:09   ` Michael Tokarev
  2013-07-03  8:13     ` Michael Tokarev
@ 2013-07-03  8:21     ` Paolo Bonzini
  1 sibling, 0 replies; 7+ messages in thread
From: Paolo Bonzini @ 2013-07-03  8:21 UTC (permalink / raw)
  To: Michael Tokarev; +Cc: Anthony Liguori, qemu-devel

Just a couple more suggestions.

> /mjt
> 
> --- a/qemu-options.hx
> +++ b/qemu-options.hx
> @@ -825,7 +825,11 @@ a text mode. Generally only the VGA device models support text mode.
>  @item none
>  Do not display video output. The guest will still see an emulated
>  graphics card, but its output will not be displayed to the QEMU
> -user. This option differs from the -nographic option in that it
> +user.  The fact that we have no display is passed to firmware and
> +affects a few other places depending on the target architecture,
> +like switching console output to serial console or disabling keyboard
> +input.

Add an empty line here.

> +This option differs from the -nographic option in that it
>  only affects what is done with video output; -nographic also changes
>  the destination of the serial and parallel port data.
>  @item vnc
> @@ -841,10 +845,15 @@ STEXI
>  @findex -nographic
>  Normally, QEMU uses SDL to display the VGA output. With this option,
>  you can totally disable graphical output so that QEMU is a simple
> -command line application. The emulated serial port is redirected on
> -the console and muxed with the monitor (unless redirected elsewhere
> -explicitly). Therefore, you can still use QEMU to debug a Linux kernel
> -with a serial console.
> +command line application.  When this option is specified, unless
> +redirected explicitly, the emulated serial port and the monitor
> +are multiplexed on the console (stdio).

When this option is specified, the emulated serial port and the monitor
are by default multiplexed on the console (stdio).

> +This option is equivalent for

equivalent to

> +@example
> +-display none -serial mon:stdio -parallel none
> +@end example
> +Since even with no display, emulated serial port is still available,
> +you can use QEMU to debug a Linux kernel with a serial console.

I would just remove these two lines.

Paolo

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2013-07-03  8:22 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-03  6:44 [Qemu-devel] [PATCH v2 1/2] trap signals for "-serial mon:stdio" Michael Tokarev
2013-07-03  6:44 ` [Qemu-devel] [PATCH v2 2/2] display: stop using DT_NOGRAPHIC, use DT_NONE Michael Tokarev
2013-07-03  7:08 ` [Qemu-devel] [PATCH v2 1/2] trap signals for "-serial mon:stdio" Paolo Bonzini
2013-07-03  7:13 ` Paolo Bonzini
2013-07-03  8:09   ` Michael Tokarev
2013-07-03  8:13     ` Michael Tokarev
2013-07-03  8:21     ` Paolo Bonzini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).