On Mon, 2023-11-20 at 12:42 +0000, Peter Maydell wrote:
> On Fri, 17 Nov 2023 at 14:35, <marcandre.lur...@redhat.com> wrote:
> > 
> > From: Marc-André Lureau <marcandre.lur...@redhat.com>
> > 
> > Commit 1bec1cc0d ("ui/console: allow to override the default VC")
> > changed
> > the behaviour of the "-display none" option, so that it now creates
> > a
> > QEMU monitor on the terminal. "-display none" should not be tangled
> > up
> > with whether we create a monitor or a serial terminal; it should
> > purely
> > and only disable the graphical window. Changing its behaviour like
> > this
> > breaks command lines which, for example, use semihosting for their
> > output and don't want a graphical window, as they now get a monitor
> > they
> > never asked for.
> > 
> > It also breaks the command line we document for Xen in
> > docs/system/i386/xen.html:
> > 
> >  $ ./qemu-system-x86_64 --accel kvm,xen-version=0x40011,kernel-
> > irqchip=split \
> >     -display none -chardev stdio,mux=on,id=char0,signal=off -mon
> > char0 \
> >     -device xen-console,chardev=char0  -drive
> > file=${GUEST_IMAGE},if=xen
> > 
> > qemu-system-x86_64: cannot use stdio by multiple character devices
> > qemu-system-x86_64: could not connect serial device to character
> > backend
> > 'stdio'
> > 
> > When qemu is compiled without PIXMAN, by default the serials aren't
> > muxed with the monitor anymore on stdio. The serials are redirected
> > to
> > "null" instead, and the monitor isn't set up.
> > 
> > Fixes: commit 1bec1cc0d ("ui/console: allow to override the default
> > VC")
> > Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com>
> > ---
> >  system/vl.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/system/vl.c b/system/vl.c
> > index 5af7ced2a1..14bf0cf0bf 100644
> > --- a/system/vl.c
> > +++ b/system/vl.c
> > @@ -1391,7 +1391,7 @@ static void qemu_create_default_devices(void)
> >          }
> >      }
> > 
> > -    if (nographic || (!vc && !is_daemonized() &&
> > isatty(STDOUT_FILENO))) {
> > +    if (nographic) {
> >          if (default_parallel) {
> >              add_device_config(DEV_PARALLEL, "null");
> >          }
> 
> This fixes the regression I was seeing with the semihosting
> use case. I haven't checked the Xen setup.

Should probably work, but we want the better fix for Xen anyway:
https://lore.kernel.org/qemu-devel/20231115172723.1161679-3-dw...@infradead.org/



Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to