]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
vmspawn: supply a serial TTY to the kernel by default 30944/head
authorSam Leonard <sam.leonard@codethink.co.uk>
Mon, 15 Jan 2024 17:02:35 +0000 (17:02 +0000)
committerSam Leonard <sam.leonard@codethink.co.uk>
Tue, 16 Jan 2024 10:08:35 +0000 (10:08 +0000)
src/vmspawn/vmspawn-util.h
src/vmspawn/vmspawn.c

index 53ad7dd3d271363bb705e71c4e8a5a195b967b3c..c931e66aacddf996fe1eadb15e7a7da6bcceaea5 100644 (file)
 #define ARCHITECTURE_SUPPORTS_SMBIOS 0
 #endif
 
+#if defined(__arm__) || defined(__aarch64__)
+#define DEFAULT_SERIAL_TTY "ttyAMA0"
+#elif defined(__s390__) || defined(__s390x__)
+#define DEFAULT_SERIAL_TTY "ttysclp0"
+#elif defined(__powerpc__) || defined(__powerpc64__)
+#define DEFAULT_SERIAL_TTY "hvc0"
+#else
+#define DEFAULT_SERIAL_TTY "ttyS0"
+#endif
+
 typedef struct OvmfConfig {
         char *path;
         char *vars;
index b4cc6dddc6eb3f306de76315118a638c4056c553..74732988d921c176092174da770c7fc6e70d3e37 100644 (file)
@@ -616,22 +616,24 @@ static int run_virtual_machine(void) {
         if (r < 0)
                 return log_oom();
 
-        if (!strv_isempty(arg_parameters)) {
-                if (ARCHITECTURE_SUPPORTS_SMBIOS) {
-                        _cleanup_free_ char *kcl = strv_join(arg_parameters, " ");
-                        if (!kcl)
-                                return log_oom();
+        r = strv_prepend(&arg_parameters, "console=" DEFAULT_SERIAL_TTY);
+        if (r < 0)
+                return log_oom();
 
-                        r = strv_extend(&cmdline, "-smbios");
-                        if (r < 0)
-                                return log_oom();
+        if (ARCHITECTURE_SUPPORTS_SMBIOS) {
+                _cleanup_free_ char *kcl = strv_join(arg_parameters, " ");
+                if (!kcl)
+                        return log_oom();
 
-                        r = strv_extendf(&cmdline, "type=11,value=io.systemd.stub.kernel-cmdline-extra=%s", kcl);
-                        if (r < 0)
-                                return log_oom();
-                } else
-                        log_warning("Cannot append extra args to kernel cmdline, native architecture doesn't support SMBIOS");
-        }
+                r = strv_extend(&cmdline, "-smbios");
+                if (r < 0)
+                        return log_oom();
+
+                r = strv_extendf(&cmdline, "type=11,value=io.systemd.stub.kernel-cmdline-extra=%s", kcl);
+                if (r < 0)
+                        return log_oom();
+        } else
+                log_warning("Cannot append extra args to kernel cmdline, native architecture doesn't support SMBIOS");
 
         if (use_vsock) {
                 vsock_fd = open_vsock();