]> git.ipfire.org Git - people/ms/bricklayer.git/commitdiff
bootloader: Correctly configure the serial console for GRUB
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 14 Sep 2023 15:26:11 +0000 (15:26 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 14 Sep 2023 15:26:11 +0000 (15:26 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/python/__init__.py
src/python/bootloaders.py

index f3add6b668cf8cb160abbcc90b2cbc22fd95a0f6..339a67ab5669caf3cdfda263d09c40dfbace2dd7 100644 (file)
@@ -76,7 +76,7 @@ class Bricklayer(object):
                        "timezone" : "UTC",
 
                        # Kernel Commandline
-                       "kernel-cmdline" : "quiet splash",
+                       "kernel-cmdline" : ["quiet", "splash"],
 
                        # Serial Console
                        "serial-console"          : False,
index 6d2405e7dca7f6e5d2be8e1effb7e92914fa8b4e..13459b1b0728215b2c90093d120220ee79e6d074 100644 (file)
@@ -118,6 +118,9 @@ class Grub(Bootloader):
                """
                log.debug("Writing GRUB Configuration:")
 
+               # Fetch the kernel commandline
+               kernel_cmdline = self.bricklayer.settings.get("kernel-cmdline", []).copy()
+
                conf = {
                        # Tell GRUB who we are
                        "GRUB_DISTRIBUTOR" : "\"$(sed 's, release .*$,,g' /etc/system-release)\"",
@@ -148,14 +151,16 @@ class Grub(Bootloader):
                                "GRUB_SERIAL_COMMAND"  : "\"serial --unit=%s --speed=%s\"" % (unit, baudrate),
                        }
 
+                       # Append the serial console to the kernel commandline
+                       kernel_cmdline.append("console=%s,%sn8" % (device, baudrate))
+
                # Otherwise enable a generic VGA console
                else:
                        conf["GRUB_TERMINAL_OUTPUT"] = "\"console\""
 
                # Set the kernel commandline
-               kernel_cmdline = self.bricklayer.settings.get("kernel-cmdline")
                if kernel_cmdline:
-                       conf["GRUB_CMDLINE_LINUX"] = "\"%s\"" % kernel_cmdline
+                       conf["GRUB_CMDLINE_LINUX"] = "\"%s\"" % " ".join(kernel_cmdline)
 
                # Write everything to file
                with self.bricklayer.open("/etc/default/grub", "w") as f: