30 lines
764 B
Nix
30 lines
764 B
Nix
{ lib, config, pkgs, ... }:
|
|
|
|
with lib;
|
|
let
|
|
cfg = config.modules.core.kernel;
|
|
in {
|
|
options.modules.core.kernel = {
|
|
zswap = mkEnableOption "Enable zswap, a compressed RAM cache for swap pages";
|
|
v4l2 = mkEnableOption "Enable support for v4l2 loopback devices";
|
|
};
|
|
|
|
config = mkMerge [
|
|
{
|
|
boot.kernelPackages = mkDefault pkgs.linuxPackages_latest;
|
|
}
|
|
(mkIf cfg.zswap {
|
|
boot.kernelParams = [
|
|
"zswap.enabled=1"
|
|
"zswap.shrinker_enabled=1"
|
|
"zswap.max_pool_percent=20"
|
|
"zswap.compressor=zstd"
|
|
"zswap.zpool=zsmalloc"
|
|
];
|
|
})
|
|
(mkIf cfg.v4l2 {
|
|
boot.kernelModules = ["v4l2loopback"];
|
|
boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
|
|
})
|
|
];
|
|
}
|