2024-01-03 10:53:53 +01:00
|
|
|
{ config, lib, pkgs, ... }:
|
|
|
|
# incorperate a space-optimized version of zfs
|
|
|
|
let
|
|
|
|
zfs = pkgs.zfs.override {
|
|
|
|
# this overrides saves 10MB
|
|
|
|
samba = pkgs.coreutils;
|
|
|
|
};
|
2024-06-23 15:13:27 +02:00
|
|
|
hasZfs = lib.meta.availableOn pkgs.stdenv.hostPlatform config.boot.zfs.package;
|
2024-01-03 10:53:53 +01:00
|
|
|
in
|
2024-06-23 15:13:27 +02:00
|
|
|
lib.mkIf hasZfs {
|
2024-01-03 10:53:53 +01:00
|
|
|
services.udev.packages = [ zfs ]; # to hook zvol naming, etc.
|
|
|
|
# unsure if need this, but in future udev rules could potentially point to systemd services.
|
|
|
|
systemd.packages = [ zfs ];
|
|
|
|
environment.defaultPackages = lib.mkForce [ zfs ]; # this merges with outer noninteractive module.
|
|
|
|
|
|
|
|
boot.kernelModules = [ "zfs" ];
|
|
|
|
boot.extraModulePackages = [
|
|
|
|
(config.boot.kernelPackages.zfs.override {
|
|
|
|
inherit (config.boot.zfs) removeLinuxDRM;
|
|
|
|
})
|
|
|
|
];
|
|
|
|
|
|
|
|
boot.kernelPatches = lib.optional (config.boot.zfs.removeLinuxDRM && pkgs.stdenv.hostPlatform.system == "aarch64-linux") {
|
|
|
|
name = "export-neon-symbols-as-gpl";
|
|
|
|
patch = pkgs.fetchpatch {
|
|
|
|
url = "https://github.com/torvalds/linux/commit/aaeca98456431a8d9382ecf48ac4843e252c07b3.patch";
|
|
|
|
hash = "sha256-L2g4G1tlWPIi/QRckMuHDcdWBcKpObSWSRTvbHRIwIk=";
|
|
|
|
revert = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
networking.hostId = lib.mkDefault "8425e349";
|
|
|
|
}
|