From: Daan De Meyer Date: Wed, 1 Apr 2026 20:52:59 +0000 (+0200) Subject: vmspawn: Pass extra cmdline via smbios when direct booting a UKI X-Git-Tag: v261-rc1~660 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ca347a9494dabc39b1a6900bae60571937a772f2;p=thirdparty%2Fsystemd.git vmspawn: Pass extra cmdline via smbios when direct booting a UKI -cmdline doesn't work when direct booting a UKI so use SMBIOS instead. --- diff --git a/src/vmspawn/vmspawn.c b/src/vmspawn/vmspawn.c index 02f2b0df2e0..a93fb0d4560 100644 --- a/src/vmspawn/vmspawn.c +++ b/src/vmspawn/vmspawn.c @@ -47,6 +47,7 @@ #include "hostname-setup.h" #include "hostname-util.h" #include "id128-util.h" +#include "kernel-image.h" #include "log.h" #include "machine-bind-user.h" #include "machine-credential.h" @@ -1373,11 +1374,24 @@ static int cmdline_add_kernel_cmdline(char ***cmdline, const char *kernel, const if (strv_isempty(arg_kernel_cmdline_extra)) return 0; + KernelImageType type = _KERNEL_IMAGE_TYPE_INVALID; + if (kernel) { + r = inspect_kernel( + AT_FDCWD, + kernel, + &type, + /* ret_cmdline= */ NULL, + /* ret_uname= */ NULL, + /* ret_pretty_name= */ NULL); + if (r < 0) + return log_error_errno(r, "Failed to determine '%s' kernel image type: %m", kernel); + } + _cleanup_free_ char *kcl = strv_join(arg_kernel_cmdline_extra, " "); if (!kcl) return log_oom(); - if (kernel) { + if (kernel && type != KERNEL_IMAGE_TYPE_UKI) { if (strv_extend_many(cmdline, "-append", kcl) < 0) return log_oom(); } else {