Merge pull request #42877 from Infinisil/systemd-boot/consoleMode

nixos/systemd-boot: Add consoleMode option

Changed files
+35
nixos
modules
system
boot
+1
nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
···
f.write("default nixos-generation-%d\n" % (generation))
if not @editor@:
f.write("editor 0");
+
f.write("console-mode @consoleMode@\n");
os.rename("@efiSysMountPoint@/loader/loader.conf.tmp", "@efiSysMountPoint@/loader/loader.conf")
def profile_path(profile, generation, name):
+34
nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix
···
editor = if cfg.editor then "True" else "False";
+
inherit (cfg) consoleMode;
+
inherit (efi) efiSysMountPoint canTouchEfiVariables;
};
in {
···
gaining root access by passing init=/bin/sh as a kernel
parameter. However, it is enabled by default for backwards
compatibility.
+
'';
+
};
+
+
consoleMode = mkOption {
+
default = "keep";
+
+
type = types.enum [ "0" "1" "2" "auto" "max" "keep" ];
+
+
description = ''
+
The resolution of the console. The following values are valid:
+
</para>
+
<para>
+
<itemizedlist>
+
<listitem><para>
+
<literal>"0"</literal>: Standard UEFI 80x25 mode
+
</para></listitem>
+
<listitem><para>
+
<literal>"1"</literal>: 80x50 mode, not supported by all devices
+
</para></listitem>
+
<listitem><para>
+
<literal>"2"</literal>: The first non-standard mode provided by the device firmware, if any
+
</para></listitem>
+
<listitem><para>
+
<literal>"auto"</literal>: Pick a suitable mode automatically using heuristics
+
</para></listitem>
+
<listitem><para>
+
<literal>"max"</literal>: Pick the highest-numbered available mode
+
</para></listitem>
+
<listitem><para>
+
<literal>"keep"</literal>: Keep the mode selected by firmware (the default)
+
</para></listitem>
+
</itemizedlist>
'';
};
};