summaryrefslogtreecommitdiff
path: root/hosts/toaster/zfs.nix
diff options
context:
space:
mode:
Diffstat (limited to 'hosts/toaster/zfs.nix')
-rw-r--r--hosts/toaster/zfs.nix16
1 files changed, 14 insertions, 2 deletions
diff --git a/hosts/toaster/zfs.nix b/hosts/toaster/zfs.nix
index f4bdeea..b14d910 100644
--- a/hosts/toaster/zfs.nix
+++ b/hosts/toaster/zfs.nix
@@ -1,4 +1,4 @@
-{ pkgs, ... }: {
+{ pkgs, lib, config, ... }: {
services.fstrim.enable = true;
services.zfs = {
autoSnapshot.enable = true;
@@ -10,7 +10,19 @@
};
networking.hostId = "dca22577";
boot = {
- kernelPackages = pkgs.zfs.latestCompatibleLinuxPackages;
+ kernelPackages = let
+ zfsCompatibleKernelPackages = lib.filterAttrs (
+ name: kernelPackages:
+ (builtins.match "linux_[0-9]+_[0-9]+" name) != null
+ && (builtins.tryEval kernelPackages).success
+ && (!kernelPackages.${config.boot.zfs.package.kernelModuleAttribute}.meta.broken)
+ ) pkgs.linuxKernel.packages;
+ latestKernelPackage = lib.last (
+ lib.sort (a: b: (lib.versionOlder a.kernel.version b.kernel.version)) (
+ builtins.attrValues zfsCompatibleKernelPackages
+ )
+ );
+in latestKernelPackage;
supportedFilesystems = [ "zfs" ];
kernelParams = [ "nohibernate" ];
plymouth.enable = false;