derivation that produces /boot

This commit is contained in:
Daniel Barlow 2023-12-02 15:31:55 +00:00
parent 395f624338
commit bb335050fd
2 changed files with 38 additions and 0 deletions

View file

@ -12,6 +12,7 @@ in
imports = [ imports = [
./squashfs.nix ./squashfs.nix
./outputs/vmroot.nix ./outputs/vmroot.nix
./outputs/extlinux.nix
]; ];
options = { options = {
system.outputs = { system.outputs = {

View file

@ -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
'';
};
}