* [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).