Files
nixos-dots/system/boot.nix

60 lines
1.3 KiB
Nix
Executable File

{
config,
lib,
pkgs,
systemName,
...
}:
let
isLaptop = systemName == "laptop";
isPc = systemName == "pc";
initrdBaseModules = [ "btusb" ];
initrdLPModules = [ "kvm" ]; # for laptop & pc
kernelBaseModules = [ "v4l2loopback" ];
kernelBaseParams = [ ];
kernelLPParams = [ "ipv6e=1" ]; # for laptop & pc
kernelLaptopOnly = [ "i915.force_probe=46a6" ];
kernelPcOnly = [ "video=2560x1440x32" ];
in
{
boot = {
loader = {
systemd-boot = {
enable = true;
extraInstallCommands = ''
${lib.getExe pkgs.gnused} -i 's/default .*/default *-specialisation-00-main-system.conf/' /boot/loader/loader.conf
'';
#sortKey = "z-normal";
};
efi.canTouchEfiVariables = true;
};
initrd.kernelModules = lib.mkMerge [
initrdBaseModules
(lib.mkIf (isLaptop || isPc) initrdLPModules)
];
kernelPackages = pkgs.linuxPackages_latest;
kernelModules = kernelBaseModules;
extraModulePackages = [
pkgs.linuxPackages_latest.v4l2loopback
];
kernelParams = lib.mkMerge [
(lib.mkIf (isLaptop || isPc) kernelLPParams)
(lib.mkIf isLaptop kernelLaptopOnly)
(lib.mkIf isPc kernelPcOnly)
];
extraModprobeConfig = ''
options v4l2loopback devices=2 video_nr=1,0 card_label="OBS Cam","phone cam" exclusive_caps=1,1
'';
};
}