vmspawn: supply a serial TTY to the kernel by default
This commit is contained in:
@@ -10,6 +10,16 @@
|
||||
#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;
|
||||
|
||||
+16
-14
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user