mirror of
https://github.com/edgelesssys/constellation.git
synced 2025-03-19 05:26:12 -04:00
image: re-enable autologin for debug and console images (#3355)
* image: remove autologin via mkosi In mkosi v24 --autologin no longer works for ttyS consoles. Since the CSPs use those exclusively for their serial consoles, we need to replace this with another solution (see next commit) * image: add getty systemd unit for debug images This replaces the mkosi --autologin solution with a getty systemd unit for ttyS0. Note that both console and debug images hace their consoles enabled.
This commit is contained in:
parent
a295ecaffb
commit
1f887c7868
@ -70,8 +70,6 @@ def _mkosi_image_impl(ctx):
|
||||
args.add("--kernel-command-line", ctx.attr.kernel_command_line)
|
||||
for key, value in ctx.attr.kernel_command_line_dict.items():
|
||||
args.add("--kernel-command-line", "{}={}".format(key, value))
|
||||
if ctx.attr.autologin:
|
||||
args.add("--autologin", "yes")
|
||||
|
||||
info = ctx.toolchains["@constellation//bazel/mkosi:toolchain_type"].mkosi
|
||||
if not info.valid:
|
||||
@ -110,7 +108,6 @@ mkosi_image = rule(
|
||||
implementation = _mkosi_image_impl,
|
||||
attrs = {
|
||||
"architecture": attr.string(),
|
||||
"autologin": attr.bool(),
|
||||
"base_trees": attr.label_list(allow_files = True),
|
||||
"distribution": attr.string(),
|
||||
"env": attr.string_dict(),
|
||||
|
@ -2,6 +2,7 @@ enable systemd-timesyncd.service
|
||||
enable systemd-networkd.service
|
||||
enable systemd-networkd-wait-online.service
|
||||
enable configure-constel-csp.service
|
||||
enable serial-getty@tty0.service
|
||||
enable dbus.service
|
||||
enable dbus-broker.service
|
||||
enable dbus-daemon.service
|
||||
|
@ -0,0 +1,12 @@
|
||||
[Unit]
|
||||
Description=autologin
|
||||
ConditionPathExists=/proc/cmdline
|
||||
ConditionKernelCommandLine=|constellation.console
|
||||
ConditionKernelCommandLine=|constellation.debug
|
||||
|
||||
[Service]
|
||||
ExecStart=
|
||||
ExecStart=-/sbin/agetty -o '-p -f -- \\u' --keep-baud --autologin root 115200,57600,38400,9600 - $TERM
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
@ -1,6 +1,6 @@
|
||||
load("//bazel/mkosi:mkosi_image.bzl", "mkosi_image")
|
||||
load("//bazel/osimage:upload_os_images.bzl", "upload_os_images")
|
||||
load(":variants.bzl", "CSPS", "STREAMS", "VARIANTS", "autologin", "base_image", "constellation_packages", "images_for_csp", "images_for_csp_and_stream", "images_for_stream", "kernel_command_line", "kernel_command_line_dict")
|
||||
load(":variants.bzl", "CSPS", "STREAMS", "VARIANTS", "base_image", "constellation_packages", "images_for_csp", "images_for_csp_and_stream", "images_for_stream", "kernel_command_line", "kernel_command_line_dict")
|
||||
|
||||
[
|
||||
mkosi_image(
|
||||
@ -10,11 +10,6 @@ load(":variants.bzl", "CSPS", "STREAMS", "VARIANTS", "autologin", "base_image",
|
||||
] + glob([
|
||||
"mkosi.repart/**",
|
||||
]),
|
||||
autologin = autologin(
|
||||
variant["csp"],
|
||||
variant["attestation_variant"],
|
||||
stream,
|
||||
),
|
||||
base_trees = [
|
||||
base_image(
|
||||
variant["csp"],
|
||||
|
@ -86,7 +86,7 @@ csp_settings = {
|
||||
},
|
||||
},
|
||||
"qemu": {
|
||||
"autologin": True,
|
||||
"kernel_command_line": "constellation.console", # All qemu images have console enabled independent of stream
|
||||
"kernel_command_line_dict": {
|
||||
"console": "ttyS0",
|
||||
"constel.csp": "qemu",
|
||||
@ -136,10 +136,9 @@ attestation_variant_settings = {
|
||||
|
||||
stream_settings = {
|
||||
"console": {
|
||||
"autologin": True,
|
||||
"kernel_command_line": "constellation.console",
|
||||
},
|
||||
"debug": {
|
||||
"autologin": True,
|
||||
"kernel_command_line": "constellation.debug",
|
||||
},
|
||||
"nightly": {},
|
||||
@ -181,26 +180,6 @@ def constellation_packages(stream):
|
||||
"//bootstrapper/cmd/bootstrapper:bootstrapper-package",
|
||||
] + base_packages
|
||||
|
||||
def autologin(csp, attestation_variant, stream):
|
||||
"""Generates a boolean indicating whether autologin should be enabled for the given csp, attestation_variant and stream.
|
||||
|
||||
Args:
|
||||
csp: The cloud service provider to use.
|
||||
attestation_variant: The attestation variant to use.
|
||||
stream: The stream to use.
|
||||
|
||||
Returns:
|
||||
A boolean indicating whether autologin should be enabled.
|
||||
"""
|
||||
out = None
|
||||
for settings in from_settings(csp, attestation_variant, stream):
|
||||
if not "autologin" in settings:
|
||||
continue
|
||||
if out != None and out != settings["autologin"]:
|
||||
fail("Inconsistent autologin settings")
|
||||
out = settings["autologin"]
|
||||
return out
|
||||
|
||||
def kernel_command_line(csp, attestation_variant, stream):
|
||||
cmdline = base_cmdline
|
||||
for settings in from_settings(csp, attestation_variant, stream, default = {}):
|
||||
|
Loading…
x
Reference in New Issue
Block a user