Files
dotfiles/system-modules/boot.nix
Lennart J. Kurzweg (Nx2) d6d4a1f3b5 refactor
2025-06-18 15:31:01 +02:00

71 lines
2.3 KiB
Nix

{ pkgs, ... }@all: with all;
let
grub-theme-ascii-diana = (pkgs.fetchFromGitea {
domain = "git.${hyper.domain}";
owner = "nx2";
repo = "grub-theme-ascii-diana";
rev = "0.5.0";
hash = "sha256-e+55NYsSsWY6GPbYUtdVEB9krueuCAWT3Ce/Ghops1g=";
});
device-boot = if hyper.host == "NxNORTH" then {
kernelPackages = pkgs.linuxPackages_zen;
environment.systemPackages = with pkgs; [ sbctl ];
lanzaboote = {
enable = true;
pkiBundle = "/var/lib/sbctl";
};
loader.systemd-boot = {
enable = false; # let lanzaboote install systemd-boot
consoleMode = "max";
configurationLimit = 10;
};
} else if hyper.host == "NxXPS" then {
kernelPackages = pkgs.linuxPackages_latest;
extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
kernelModules = [ "v4l2loopback" ];
extraModprobeConfig = ''options v4l2loopback devices=1 video_nr=1 card_label="OBS VCam" exclusive_caps=1'';
loader = {
efi.canTouchEfiVariables = true;
grub = {
enable = true;
configurationLimit = 30;
device = "nodev";
# useOSProber = true;
efiSupport = true;
theme = grub-theme-ascii-diana;
font = "${grub-theme-ascii-diana}/unicode.pf2";
fontSize = 50;
extraEntries = ''
menuentry 'Windows 11' --class windows --class os $menuentry_id_option 'osprober-efi-0A97-7A2D' {
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root 0A97-7A2D
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
'';
};
};
} else if hyper.host == "NxACE" then {
kernelPackages = pkgs.linuxPackages_6_12;
loader = {
efi.canTouchEfiVariables = true;
grub = {
enable = true;
device = "nodev";
devices = [];
efiSupport = true;
};
};
} else assert 1 == "Unknown host"; {};
in {
imports = if hyper.host == "NxNORTH" then [
inputs.lanzaboote.nixosModules.lanzaboote
] else [];
config.boot = {
extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
kernelModules = [ "v4l2loopback" ];
extraModprobeConfig = ''options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1'';
tmp.useTmpfs = false;
} // device-boot;
}