37 lines
1 KiB
Nix
37 lines
1 KiB
Nix
{ config, lib, pkgs, ... }: {
|
|
options.snowflake.virtualisation.kvm.enable =
|
|
lib.mkEnableOption "enable kvm vms";
|
|
options.snowflake.virtualisation.kvm.ovmf.enable =
|
|
lib.mkEnableOption "enable ovmf module for vms";
|
|
|
|
config = lib.mkIf config.snowflake.virtualisation.kvm.enable {
|
|
|
|
# to enable nested virtualization
|
|
boot.extraModprobeConfig = ''
|
|
options kvm_intel nested=1
|
|
options kvm_intel emulate_invalid_guest_state=0
|
|
options kvm ignore_msrs=1
|
|
'';
|
|
|
|
virtualisation = {
|
|
libvirtd = {
|
|
enable = true;
|
|
qemu = {
|
|
package = pkgs.qemu_kvm;
|
|
runAsRoot = true;
|
|
swtpm.enable = true;
|
|
ovmf = lib.mkIf config.snowflake.virtualisation.kvm.ovmf.enable {
|
|
enable = true;
|
|
packages = [
|
|
(pkgs.OVMF.override {
|
|
secureBoot = true;
|
|
tpmSupport = true;
|
|
}).fd
|
|
];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
programs.virt-manager.enable = true;
|
|
};
|
|
}
|