commit bb335050fd91446c0ab5a8319619e825495e37f4
parent 395f624338a49ee14b8abbec73d5b64b64245db9
Author: Daniel Barlow <dan@telent.net>
Date: Sat, 2 Dec 2023 15:31:55 +0000
derivation that produces /boot
Diffstat:
2 files changed, 38 insertions(+), 0 deletions(-)
diff --git a/modules/outputs.nix b/modules/outputs.nix
@@ -12,6 +12,7 @@ in
imports = [
./squashfs.nix
./outputs/vmroot.nix
+ ./outputs/extlinux.nix
];
options = {
system.outputs = {
diff --git a/modules/outputs/extlinux.nix b/modules/outputs/extlinux.nix
@@ -0,0 +1,37 @@
+{
+ config
+, pkgs
+, lib
+, ...
+}:
+let
+ inherit (lib) mkIf mkEnableOption mkOption types concatStringsSep;
+ cfg = config.boot.loader.extlinux;
+ o = config.system.outputs;
+ cmdline = concatStringsSep " " config.boot.commandLine;
+in {
+ options.system.outputs.extlinux = mkOption {
+ type = types.package;
+ # description = "";
+ };
+ options.boot.loader.extlinux.enable = mkEnableOption "extlinux";
+
+ config = { # mkIf cfg.enable {
+ system.outputs.extlinux = pkgs.runCommand "extlinux" {} ''
+ mkdir $out
+ cd $out
+ ln -s ${o.dtb} dtb
+ ln -s ${o.initramfs} initramfs
+ gzip -9f < ${o.kernel} > kernel.gz
+ cat > extlinux.conf << _EOF
+ menu title Liminix
+ timeout 100
+ label Liminix
+ kernel kernel.gz
+ initrd initramfs
+ fdt dtb
+ append ${cmdline}
+ _EOF
+ '';
+ };
+}