[Libguestfs] [PATCH v2] qemu: Upstream regression of -stdio serial option.

Richard W.M. Jones rjones at redhat.com
Thu Jan 7 13:37:44 UTC 2010


This is a better suggestion from Dan Berrange.

Also tested against both qemu from Fedora 12 and qemu from git.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming blog: http://rwmj.wordpress.com
Fedora now supports 80 OCaml packages (the OPEN alternative to F#)
http://cocan.org/getting_started_with_ocaml_on_red_hat_and_fedora
-------------- next part --------------
>From b4a4db522fed542f48aa60717e65061c5e83c919 Mon Sep 17 00:00:00 2001
From: Richard Jones <rjones at redhat.com>
Date: Thu, 7 Jan 2010 12:21:42 +0000
Subject: [PATCH] qemu: Upstream regression of -stdio serial option.

Best explained by the comment in the code:

    /* Newer versions of qemu (from around 2009/12) changed the
     * behaviour of monitors so that an implicit '-monitor stdio' is
     * assumed if we are in -nographic mode and there is no other
     * -monitor option.  Only a single stdio device is allowed, so
     * this broke the '-serial stdio' option.  There is a new flag
     * called -nodefaults which gets rid of all this default crud, so
     * let's use that to avoid this and any future surprises.
     */
---
 src/guestfs.c |   21 +++++++++++++++++----
 1 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/src/guestfs.c b/src/guestfs.c
index 7cc09ce..a3d2762 100644
--- a/src/guestfs.c
+++ b/src/guestfs.c
@@ -1091,15 +1091,28 @@ guestfs__launch (guestfs_h *g)
      */
     g->cmdline[0] = g->qemu;
 
-    snprintf (buf, sizeof buf, "%d", g->memsize);
-    add_cmdline (g, "-m");
-    add_cmdline (g, buf);
+    /* Newer versions of qemu (from around 2009/12) changed the
+     * behaviour of monitors so that an implicit '-monitor stdio' is
+     * assumed if we are in -nographic mode and there is no other
+     * -monitor option.  Only a single stdio device is allowed, so
+     * this broke the '-serial stdio' option.  There is a new flag
+     * called -nodefaults which gets rid of all this default crud, so
+     * let's use that to avoid this and any future surprises.
+     */
+    if (qemu_supports (g, "-nodefaults"))
+      add_cmdline (g, "-nodefaults");
 
-    add_cmdline (g, "-no-reboot"); /* Force exit instead of reboot on panic */
     add_cmdline (g, "-nographic");
     add_cmdline (g, "-serial");
     add_cmdline (g, "stdio");
 
+    snprintf (buf, sizeof buf, "%d", g->memsize);
+    add_cmdline (g, "-m");
+    add_cmdline (g, buf);
+
+    /* Force exit instead of reboot on panic */
+    add_cmdline (g, "-no-reboot");
+
     /* These options recommended by KVM developers to improve reliability. */
     if (qemu_supports (g, "-no-hpet"))
       add_cmdline (g, "-no-hpet");
-- 
1.6.5.2



More information about the Libguestfs mailing list