Architecture.s390x : "ttysclp0",
}.get(self, "ttyS0")
- def supports_smbios(self) -> bool:
- return self in (Architecture.x86, Architecture.x86_64, Architecture.arm, Architecture.arm64)
+ def supports_smbios(self, firmware: QemuFirmware) -> bool:
+ if self in (Architecture.x86, Architecture.x86_64):
+ return True
+
+ return self in (Architecture.arm, Architecture.arm64) and firmware == QemuFirmware.uefi
def supports_fw_cfg(self) -> bool:
return self in (Architecture.x86, Architecture.x86_64, Architecture.arm, Architecture.arm64)
for k, v in config.credentials.items():
payload = base64.b64encode(v.encode()).decode()
- if config.architecture.supports_smbios() and firmware == QemuFirmware.uefi:
+ if config.architecture.supports_smbios(firmware):
cmdline += ["-smbios", f"type=11,value=io.systemd.credential.binary:{k}={payload}"]
elif config.architecture.supports_fw_cfg():
f = stack.enter_context(tempfile.NamedTemporaryFile(prefix="mkosi-fw-cfg", mode="w"))
"--offline=yes",
fname])
- if kernel and (KernelType.identify(kernel) != KernelType.uki or not config.architecture.supports_smbios()):
+ if (
+ kernel and
+ (KernelType.identify(kernel) != KernelType.uki or not config.architecture.supports_smbios(firmware))
+ ):
kcl = config.kernel_command_line + config.kernel_command_line_extra
else:
kcl = config.kernel_command_line_extra
target = Path("/root/src") / (tree.target or tree.source.name)
kcl += [f"systemd.mount-extra={sock.name}:{target}:virtiofs"]
- if kernel and (KernelType.identify(kernel) != KernelType.uki or not config.architecture.supports_smbios()):
+ if (
+ kernel and
+ (KernelType.identify(kernel) != KernelType.uki or not config.architecture.supports_smbios(firmware))
+ ):
cmdline += ["-append", " ".join(kcl)]
- elif config.architecture.supports_smbios():
+ elif config.architecture.supports_smbios(firmware):
cmdline += [
"-smbios",
f"type=11,value=io.systemd.stub.kernel-cmdline-extra={' '.join(kcl)}"
elif config.architecture == Architecture.arm64:
cmdline += ["-device", "tpm-tis-device,tpmdev=tpm0"]
- if QemuDeviceNode.vhost_vsock in qemu_device_fds and config.architecture.supports_smbios():
+ if QemuDeviceNode.vhost_vsock in qemu_device_fds and config.architecture.supports_smbios(firmware):
addr, notifications = stack.enter_context(vsock_notify_handler())
cmdline += ["-smbios", f"type=11,value=io.systemd.credential:vmm.notify_socket={addr}"]