nixos/modules/system/kvm/default.nix

38 lines
788 B
Nix
Raw Normal View History

2024-05-05 13:07:24 +02:00
{ config, lib, ... }:
let
2023-03-27 00:33:31 +02:00
cfg = config.my.system.kvm;
in
{
2025-09-21 18:40:36 +02:00
options.my.system.kvm = {
enable = lib.mkEnableOption "kvm configuration";
2025-09-21 18:40:36 +02:00
cpuFlavor = lib.mkOption {
type = lib.types.nullOr (
lib.types.enum [
2024-07-28 21:08:02 +02:00
"intel"
"amd"
2025-09-21 18:40:36 +02:00
]
);
default = null;
example = "intel";
description = "Which kind of CPU to activate kernelModules";
};
};
2024-07-28 21:08:02 +02:00
config = lib.mkIf cfg.enable (
lib.mkMerge [
{
virtualisation.libvirtd.enable = true;
2024-07-28 21:08:02 +02:00
programs.virt-manager.enable = true;
}
2024-07-28 21:08:02 +02:00
# Intel CPU
(lib.mkIf (cfg.cpuFlavor == "intel") { boot.kernelModules = [ "kvm-intel" ]; })
2024-07-28 21:08:02 +02:00
# AMD CPU
(lib.mkIf (cfg.cpuFlavor == "amd") { boot.kernelModules = [ "kvm-amd" ]; })
]
);
}