nixdots/system/shared/boot/generic.nix

59 lines
1.8 KiB
Nix

{ config, lib, ... }: let
inherit (lib) mkDefault optionals;
cfg = config.myOptions.system.boot;
in {
boot = {
# kernel console loglevel
consoleLogLevel = 3;
# The NixOS default is to use an lts kernel, which can be quite old.
# My configuration defaults to the latest kernel instead
kernelPackages = cfg.kernel;
loader = {
# if set to 0, space needs to be held to get the boot menu to appear
timeout = 2;
# whether to copy the necessary boot files into /boot
# so that /nix/store is not needed by the boot loader.
generationsDir.copyKernels = true;
# allow installation to modify EFI variables
efi.canTouchEfiVariables = true;
};
tmp = {
# /tmp on tmpfs, lets it live on your ram
# it defaults to false, which means you will use disk space instead of ram
# enable tmpfs tmp on anything where you have ram to spare
useTmpfs = cfg.tmpOnTmpfs;
# if not using tmpfs, which is naturally purged on reboot, we must clean
# /tmp ourselves. /tmp should be volatile storage!
cleanOnBoot = mkDefault (!cfg.tmpOnTmpfs);
# The size of the tmpfs, in percentage form
# this defaults to 50% of your ram, which is a good default
# but should be tweaked based on your systems capabilities
tmpfsSize = mkDefault "50%";
};
kernelParams = (optionals cfg.silentBoot [
# tell the kernel to not be verbose
"quiet"
"loglevel=3" # 1: system is unusable | 3: error condition | 7: very verbose
# udev log message level
# rd prefix means systemd-udev will be used instead of initrd
"udev.log_level=3"
"rd.udev.log_level=3"
# disable systemd status messages
"systemd.show_status=auto"
"rd.systemd.show_status=auto"
]);
};
}