diff --git a/legacy/modules/kvm.nix b/legacy/modules/kvm.nix deleted file mode 100644 index da4e399..0000000 --- a/legacy/modules/kvm.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - boot.kernelModules = [ - "kvm-amd" - "kvm-intel" - ]; - virtualisation.libvirtd.enable = true; - - environment.systemPackages = with pkgs; [ - virtmanager - ]; -} diff --git a/machines/thinkman/configuration.nix b/machines/thinkman/configuration.nix index f806eec..71ba04a 100644 --- a/machines/thinkman/configuration.nix +++ b/machines/thinkman/configuration.nix @@ -14,7 +14,6 @@ ../../legacy/modules/gaming.nix ../../legacy/modules/hardware-base.nix ../../legacy/modules/intel-video.nix - ../../legacy/modules/kvm.nix ../../legacy/modules/location.nix ../../legacy/modules/media.nix ../../legacy/modules/meeting.nix diff --git a/machines/thinkman/system.nix b/machines/thinkman/system.nix index 5297db4..f24339b 100644 --- a/machines/thinkman/system.nix +++ b/machines/thinkman/system.nix @@ -7,5 +7,9 @@ in my.system = { avahi.enable = true; podman.enable = true; + virtualization = { + enable = true; + cpuFlavor = "intel"; + }; }; } diff --git a/modules/system/default.nix b/modules/system/default.nix index 59db7c8..8852d1e 100644 --- a/modules/system/default.nix +++ b/modules/system/default.nix @@ -4,6 +4,7 @@ ./avahi ./docker ./podman + ./virtualization ]; } diff --git a/modules/system/virtualization/default.nix b/modules/system/virtualization/default.nix new file mode 100644 index 0000000..c04d995 --- /dev/null +++ b/modules/system/virtualization/default.nix @@ -0,0 +1,40 @@ +{ config, lib, pkgs, ... }: +let + cfg = config.my.system.virtualization; +in +{ + options.my.system.virtualization = with lib; { + enable = mkEnableOption "virtualization configuration"; + + cpuFlavor = mkOption { + type = with types; nullOr (enum [ "intel" "amd" ]); + default = null; + example = "intel"; + description = "Which kind of CPU to activate kernelModules"; + }; + }; + + config = lib.mkIf cfg.enable (lib.mkMerge [ + { + virtualisation.libvirtd.enable = true; + + environment.systemPackages = with pkgs; [ + virtmanager + ]; + } + + # Intel CPU + (lib.mkIf (cfg.cpuFlavor == "intel") { + boot.kernelModules = [ + "kvm-intel" + ]; + }) + + # AMD CPU + (lib.mkIf (cfg.cpuFlavor == "amd") { + boot.kernelModules = [ + "kvm-amd" + ]; + }) + ]); +}