[Libguestfs] [PATCH] lib: direct: Remove use of sga

Richard W.M. Jones rjones at redhat.com
Wed Sep 8 15:42:05 UTC 2021


sga (or "sgabios" or "Serial Graphics Adapter") is an option ROM for
seabios which directs output to the serial adapter.  This is very
useful for debugging BIOS problems during boot.

RHEL wants to deprecate this feature (in fact, they just deprecated it
without telling us).  However there is an equivalent feature now in
seabios which can be enabled using either -nographic or
-machine graphics=off

This commit removes sga and enables -machine graphics=off in the
direct backend.

(We cannot do the same for the libvirt backend because libvirt has no
feature to implement this yet).
---
 lib/launch-direct.c | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/lib/launch-direct.c b/lib/launch-direct.c
index 972e77e13..e5b9a5611 100644
--- a/lib/launch-direct.c
+++ b/lib/launch-direct.c
@@ -544,6 +544,13 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
       append_list ("gic-version=host");
 #endif
     append_list_format ("accel=%s", accel_val);
+#if defined(__i386__) || defined(__x86_64__)
+    /* Tell seabios to send debug messages to the serial port.
+     * This used to be done by sgabios.
+     */
+    if (g->verbose)
+      append_list ("graphics=off");
+#endif
   } end_list ();
 
   cpu_model = guestfs_int_get_cpu_model (has_kvm && !force_tcg);
@@ -665,18 +672,6 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
   } end_list ();
 #endif
 
-  if (g->verbose &&
-      guestfs_int_qemu_supports_device (g, data->qemu_data,
-                                        "Serial Graphics Adapter")) {
-    /* Use sgabios instead of vgabios.  This means we'll see BIOS
-     * messages on the serial port, and also works around this bug
-     * in qemu 1.1.0:
-     * https://bugs.launchpad.net/qemu/+bug/1021649
-     * QEmu has included sgabios upstream since just before 1.0.
-     */
-    arg ("-device", "sga");
-  }
-
   /* Set up virtio-serial for the communications channel. */
   start_list ("-chardev") {
     append_list ("socket");
-- 
2.32.0




More information about the Libguestfs mailing list