summaryrefslogtreecommitdiff
path: root/modules/virtualization.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/virtualization.nix')
-rw-r--r--modules/virtualization.nix30
1 files changed, 30 insertions, 0 deletions
diff --git a/modules/virtualization.nix b/modules/virtualization.nix
index a92ffb9..02d5d93 100644
--- a/modules/virtualization.nix
+++ b/modules/virtualization.nix
@@ -51,6 +51,36 @@ in
systemctl set-property --runtime -- system.slice AllowedCPUs=""
systemctl set-property --runtime -- init.scope AllowedCPUs=""
'')
+
+ (pkgs.writeShellScriptBin "vfio-bind" ''
+ sudo modprobe -r nvidia_drm nvidia_modeset nvidia_uvm i2c_nvidia_gpu nvidia
+
+ sudo modprobe vfio
+ sudo modprobe vfio_iommu_type1
+ sudo modprobe vfio_pci
+
+ systemctl --user -M compromyse@ stop pipewire.service pipewire.socket
+
+ sudo virsh nodedev-detach pci_0000_01_00_0
+ sudo virsh nodedev-detach pci_0000_01_00_1
+
+ systemctl --user -M compromyse@ restart pipewire.service pipewire.socket
+ '')
+
+ (pkgs.writeShellScriptBin "vfio-unbind" ''
+ systemctl --user -M compromyse@ stop pipewire.service pipewire.socket
+
+ sudo virsh nodedev-reattach pci_0000_01_00_0
+ sudo virsh nodedev-reattach pci_0000_01_00_1
+
+ systemctl --user -M compromyse@ restart pipewire.service pipewire.socket
+
+ sudo modprobe -r vfio_pci
+ sudo modprobe -r vfio_iommu_type1
+ sudo modprobe -r vfio
+
+ sudo modprobe nvidia_drm nvidia_modeset nvidia_uvm i2c_nvidia_gpu nvidia
+ '')
];
boot = {