summaryrefslogtreecommitdiff
path: root/modules/virtualisation/qemu.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/virtualisation/qemu.nix')
-rw-r--r--modules/virtualisation/qemu.nix45
1 files changed, 45 insertions, 0 deletions
diff --git a/modules/virtualisation/qemu.nix b/modules/virtualisation/qemu.nix
new file mode 100644
index 0000000..d59f482
--- /dev/null
+++ b/modules/virtualisation/qemu.nix
@@ -0,0 +1,45 @@
+{ pkgs, ... }:
+{
+ environment.systemPackages = with pkgs; [
+ qemu_kvm
+ qemu
+ ];
+
+ hardware.pulseaudio.extraConfig = ''
+ load-module module-native-protocol-unix auth-group=qemu-libvirtd socket=/tmp/pulse-socket
+ '';
+
+ boot.kernelModules = [ "vfio-pci" ];
+
+ networking.firewall.trustedInterfaces = [
+ "virbr0"
+ "br0"
+ ];
+
+ services.udev.extraRules = ''
+ SUBSYSTEM=="vfio", OWNER="root", GROUP="kvm"
+ '';
+
+ virtualisation.libvirtd.qemu = {
+ package = pkgs.qemu_kvm;
+ runAsRoot = false;
+ swtpm.enable = true;
+
+ ovmf = {
+ enable = true;
+
+ packages = [
+ (pkgs.OVMFFull.override {
+ secureBoot = true;
+ tpmSupport = true;
+ }).fd
+ ];
+ };
+
+ verbatimConfig = ''
+ namespaces = []
+
+ dynamic_ownership = 0
+ '';
+ };
+}