uninsane: clarify kernelPkgs config value

This commit is contained in:
Colin 2022-06-02 17:02:36 -07:00
parent 3a937e7a15
commit 4300cbbf8a

View File

@ -6,18 +6,10 @@
# enables non-free firmware
hardware.enableRedistributableFirmware = true;
# XXX colin: these four statements were autogenerated and placed here: why?
# boot.initrd.availableKernelModules = [ "xhci_pci" "usbhid" "usb_storage" ];
# boot.initrd.kernelModules = [ ];
# boot.kernelModules = [ ];
# boot.extraModulePackages = [ ];
# default nixos-21.11 kernel of 5.10 doesn't have the rpi-400 device tree blob.
# turns out 5.15, 5.16, 5.17 are all unable to boot the pi from usb (they fail to "direct load" certain broadcom firmware).
# linuxPackages_rpi4 uses 5.10, but supplies the pi-400 dtb & boots fine.
# boot.kernelPackages = pkgs.linuxPackages_latest;
# boot.kernelPackages = pkgs.linuxPackages_5_15;
# boot.kernelPackages = pkgs.linuxPackages_5_16;
# i changed this becuse linux 5.10 didn't have rpi-400 device tree blob.
# nixos-22.05 linux 5.15 DOES have these now.
# it should be possible to remove this if desired, but i'm not sure how the rpi-specific kernel differs.
# see: https://github.com/raspberrypi/linux
boot.kernelPackages = pkgs.linuxPackages_rpi4;
# NixOS defaults to grub: we don't want that.
@ -70,33 +62,33 @@
# XXX colin: this allows one to `systemctl halt` and then not remove power until the HDD has spun down.
# however, it doesn't work with reboot because systemd will spin the drive up again to read its reboot bin.
# a better solution would be to put the drive behind a powered USB hub (or get a SSD).
systemd.services.diskguard = {
description = "Safely power off spinning media";
before = [ "shutdown.target" ];
wantedBy = [ "sysinit.target" ];
# old (creates dep loop, but works)
# before = [ "systemd-remount-fs.service" "shutdown.target" ];
# wantedBy = [ "systemd-remount-fs.service" ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
ExecStart = "${pkgs.coreutils}/bin/true";
ExecStop = with pkgs; writeScript "diskguard" ''
#!${bash}/bin/bash
if ${procps}/bin/pgrep nixos-rebuild ;
then
exit 0 # don't halt drives unless we're actually shutting down. maybe better way to do this (check script args?)
fi
# ${coreutils}/bin/sync
# ${util-linux}/bin/mount -o remount,ro /nix/store
# ${util-linux}/bin/mount -o remount,ro /
# -S 1 retracts the spindle after 5 seconds of idle
# -B 1 spins down the drive after <vendor specific duration>
${hdparm}/sbin/hdparm -S 1 -B 1 /dev/sda
# TODO: monitor smartmonctl until disk is idle? or try hdparm -Y
# ${coreutils}/bin/sleep 20
# exec ${util-linux}/bin/umount --all -t ext4,vfat,ext2
'';
};
};
# systemd.services.diskguard = {
# description = "Safely power off spinning media";
# before = [ "shutdown.target" ];
# wantedBy = [ "sysinit.target" ];
# # old (creates dep loop, but works)
# # before = [ "systemd-remount-fs.service" "shutdown.target" ];
# # wantedBy = [ "systemd-remount-fs.service" ];
# serviceConfig = {
# Type = "oneshot";
# RemainAfterExit = true;
# ExecStart = "${pkgs.coreutils}/bin/true";
# ExecStop = with pkgs; writeScript "diskguard" ''
# #!${bash}/bin/bash
# if ${procps}/bin/pgrep nixos-rebuild ;
# then
# exit 0 # don't halt drives unless we're actually shutting down. maybe better way to do this (check script args?)
# fi
# # ${coreutils}/bin/sync
# # ${util-linux}/bin/mount -o remount,ro /nix/store
# # ${util-linux}/bin/mount -o remount,ro /
# # -S 1 retracts the spindle after 5 seconds of idle
# # -B 1 spins down the drive after <vendor specific duration>
# ${hdparm}/sbin/hdparm -S 1 -B 1 /dev/sda
# # TODO: monitor smartmonctl until disk is idle? or try hdparm -Y
# # ${coreutils}/bin/sleep 20
# # exec ${util-linux}/bin/umount --all -t ext4,vfat,ext2
# '';
# };
# };
}