{ pkgs, config, ... }: { imports = [ ./kvmfr-options.nix ./libvirt.nix ./virtualisationmod.nix ./vfio.nix ]; virtualisation = { libvirtd = { enable = true; onBoot = "ignore"; onShutdown = "shutdown"; qemu = { package = pkgs.qemu_kvm; ovmf = { enable = true; }; swtpm.enable = true; runAsRoot = true; }; clearEmulationCapabilities = false; deviceACL = [ "/dev/ptmx" "/dev/kvm" "/dev/kvmfr0" "/dev/vfio/vfio" "/dev/vfio/30" ]; }; kvmfr = { enable = true; shm = { enable = true; size = 512; user = "alyx"; group = "qemu-libvirtd"; mode = "0666"; }; }; spiceUSBRedirection.enable = true; }; virtualisation.vfio = { enable = true; IOMMUType = "intel"; devices = [ "1002:67df" "1002:aaf0" "1b21:2142" "8086:8d26" "8086:8d2d" ]; ignoreMSRs = true; disablePCIeASPM = true; disableEFIfb = false; }; boot.kernelModules = [ "kvm-intel" "vhost_vsock" "vfio_virqfd" "vhost-net" ]; }