diff --git a/modules/hosts/yggdrasil/hardware.nix b/modules/hosts/yggdrasil/hardware.nix index 3d27e5f..8aab4b7 100644 --- a/modules/hosts/yggdrasil/hardware.nix +++ b/modules/hosts/yggdrasil/hardware.nix @@ -6,11 +6,24 @@ pkgs, ... }: + 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 { boot = { zfs.package = pkgs.zfs_2_4; - kernelPackages = pkgs.linuxPackages_latest; + kernelPackages = latestKernelPackage; extraModulePackages = with config.boot.kernelPackages; [ r8125 ]; blacklistedKernelModules = [ "r8169" ];