51 lines
1.4 KiB
Nix
51 lines
1.4 KiB
Nix
# Systemd-boot configuration for NixOS
|
|
{ pkgs, config, ... }:
|
|
{
|
|
boot = {
|
|
bootspec.enable = true;
|
|
loader = {
|
|
efi.canTouchEfiVariables = true;
|
|
systemd-boot = {
|
|
enable = true;
|
|
consoleMode = "auto";
|
|
configurationLimit = 5;
|
|
|
|
extraInstallCommands = ''
|
|
ENTRIES="${config.boot.loader.efi.efiSysMountPoint}/loader/entries"
|
|
PROFILES="/nix/var/nix/profiles"
|
|
|
|
for file in "$ENTRIES"/nixos-generation-*.conf; do
|
|
generation=$(${pkgs.coreutils}/bin/basename "$file" | ${pkgs.gnugrep}/bin/grep -o -E '[0-9]+')
|
|
timestamp=$(${pkgs.coreutils}/bin/stat -c %y "$PROFILES/system-$generation-link" 2>/dev/null | ${pkgs.coreutils}/bin/cut -d. -f1)
|
|
|
|
if [ -z "$timestamp" ]; then
|
|
timestamp="Unknown Date"
|
|
fi
|
|
|
|
${pkgs.gnused}/bin/sed -i "s/^version .*/version Generation $generation - $timestamp/" "$file"
|
|
done
|
|
'';
|
|
};
|
|
};
|
|
tmp.cleanOnBoot = true;
|
|
kernelPackages = pkgs.linuxPackages_latest; # _zen, _hardened, _rt, _rt_latest, etc.
|
|
|
|
# Silent boot
|
|
kernelParams = [
|
|
"quiet"
|
|
"splash"
|
|
"rd.systemd.show_status=false"
|
|
"rd.udev.log_level=3"
|
|
"udev.log_priority=3"
|
|
"boot.shell_on_fail"
|
|
];
|
|
consoleLogLevel = 0;
|
|
initrd.verbose = false;
|
|
};
|
|
|
|
# To avoid systemd services hanging on shutdown
|
|
systemd.settings.Manager = {
|
|
DefaultTimeoutStopSec = "10s";
|
|
};
|
|
}
|