diff options
Diffstat (limited to 'modules/virtualization.nix')
| -rw-r--r-- | modules/virtualization.nix | 30 | 
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 = { | 
