diff --git a/hosts/tachibana/default.nix b/hosts/tachibana/default.nix index 965bcd2..2447dcf 100644 --- a/hosts/tachibana/default.nix +++ b/hosts/tachibana/default.nix @@ -8,6 +8,7 @@ ../../system ./hardware-configuration.nix ./disk.nix + ./virt.nix inputs.disko.nixosModules.disko ]; diff --git a/hosts/tachibana/virt.nix b/hosts/tachibana/virt.nix new file mode 100644 index 0000000..73cc589 --- /dev/null +++ b/hosts/tachibana/virt.nix @@ -0,0 +1,31 @@ +{ + pkgs, + config, + ... +}: { + virtualisation.libvirtd.qemu.verbatimConfig = '' + namespaces = [] + user = "+1000" + cgroup_device_acl = [ + "/dev/null", "/dev/full", "/dev/zero", + "/dev/random", "/dev/urandom", + "/dev/ptmx", "/dev/kvm", "/dev/kqemu", + "/dev/rtc","/dev/hpet", "/dev/vfio/vfio", + "/dev/kvmfr0", + ] + ''; + boot = { + initrd.kernelModules = ["vfio_pci" "vfio_iommu_type1" "vfio"]; + kernelModules = ["kvmfr"]; + kernelParams = ["amd_iommu=on" "amd_iommu=pt" "kvm.ignore_msrs=1"]; + extraModulePackages = [config.boot.kernelPackages.kvmfr]; + extraModprobeConfig = '' + options vfio-pci ids=10de:2b85,10de:22e8 + options kvmfr static_size_mb=64 + ''; + }; + services.udev.extraRules = '' + SUBSYSTEM=="kvmfr", GROUP="kvm", MODE="0660" + ''; + environment.systemPackages = [pkgs.looking-glass-client]; +}