33 lines
900 B
Nix
33 lines
900 B
Nix
|
{ config, pkgs, lib, ... }:
|
||
|
{
|
||
|
|
||
|
# Enable libvirt and QEMU
|
||
|
virtualisation.libvirtd.enable = true;
|
||
|
virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
|
||
|
|
||
|
boot.kernelModules = [ "kvm-intel" "vfio_pci" "drm" "drm_kms_helper"];
|
||
|
|
||
|
# Add the relevant packages for virtualization, including secure boot and TPM support
|
||
|
virtualisation.libvirtd.qemu = {
|
||
|
runAsRoot = true;
|
||
|
swtpm.enable = true;
|
||
|
ovmf = {
|
||
|
enable = true;
|
||
|
packages = [(pkgs.OVMF.override {
|
||
|
secureBoot = true;
|
||
|
tpmSupport = true;
|
||
|
}).fd];
|
||
|
};
|
||
|
};
|
||
|
|
||
|
# Add your user to the libvirt group to allow managing VMs without sudo
|
||
|
users.users.gunalx.extraGroups = [ "libvirtd" ];
|
||
|
|
||
|
# Enable nested virtualization if needed
|
||
|
boot.extraModprobeConfig = "options kvm_intel nested=1";
|
||
|
|
||
|
# (Optional) Enable the virt-manager graphical tool for managing VMs
|
||
|
programs.virt-manager.enable = true;
|
||
|
|
||
|
}
|